mirror of
https://github.com/dart-lang/sdk
synced 2024-09-19 21:11:40 +00:00
1bfd01c1f7
This reverts commit 62bc61b367
.
R=floitsch@google.com
Review-Url: https://codereview.chromium.org/2968413002 .
35 lines
1.2 KiB
Dart
35 lines
1.2 KiB
Dart
// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
|
|
// for details. All rights reserved. Use of this source code is governed by a
|
|
// BSD-style license that can be found in the LICENSE file.
|
|
|
|
part of dart.isolate;
|
|
|
|
/**
|
|
* An unforgeable object that comes back as equal when passed through other
|
|
* isolates.
|
|
*
|
|
* Sending a capability object to another isolate, and getting it back,
|
|
* will produce an object that is equal to the original.
|
|
* There is no other way to create objects equal to a capability object.
|
|
*
|
|
* Capabilities can be used as access guards: A remote isolate can send
|
|
* a request for an operation, but it is only allowed if the request contains
|
|
* the correct capability object.
|
|
*
|
|
* This allows exposing the same interface to multiple clients,
|
|
* but restricting some operations to only those clients
|
|
* that have also been given the corresponding capability.
|
|
*
|
|
* Capabilities can be used inside a single isolate,
|
|
* but they have no advantage over
|
|
* just using `new Object` to create a unique object,
|
|
* and it offers no real security against other code
|
|
* running in the same isolate.
|
|
*/
|
|
class Capability {
|
|
/**
|
|
* Create a new unforgeable capability object.
|
|
*/
|
|
external factory Capability();
|
|
}
|