|  | // Copyright (c) 2017, 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.io; | 
|  |  | 
|  | /// Embedder-specific, fine-grained dart:io configuration. | 
|  | /// | 
|  | /// This class contains per-Isolate flags that an embedder can set to put | 
|  | /// fine-grained limitations on what process-visible operations Isolates are | 
|  | /// permitted to use (e.g. exit()). By default, the whole dart:io API is | 
|  | /// enabled. When a disallowed operation is attempted, an `UnsupportedError` is | 
|  | /// thrown. | 
|  | @pragma('vm:entry-point') | 
|  | abstract class _EmbedderConfig { | 
|  | /// The Isolate may set Directory.current. | 
|  | static bool _mayChdir = true; | 
|  |  | 
|  | /// The Isolate may call exit(). | 
|  | @pragma("vm:entry-point") | 
|  | static bool _mayExit = true; | 
|  |  | 
|  | // The Isolate may set Stdin.echoMode. | 
|  | @pragma('vm:entry-point') | 
|  | static bool _maySetEchoMode = true; | 
|  |  | 
|  | // The Isolate may set Stdin.lineMode. | 
|  | @pragma('vm:entry-point') | 
|  | static bool _maySetLineMode = true; | 
|  |  | 
|  | /// The Isolate may call sleep(). | 
|  | @pragma('vm:entry-point') | 
|  | static bool _maySleep = true; | 
|  |  | 
|  | /// The Isolate may establish insecure socket connections to all domains. | 
|  | /// | 
|  | /// This setting can be overridden by per-domain policies. | 
|  | @pragma('vm:entry-point') | 
|  | static bool _mayInsecurelyConnectToAllDomains = true; | 
|  |  | 
|  | /// Domain network policies set by embedder. | 
|  | @pragma('vm:entry-point') | 
|  | static void _setDomainPolicies(String domainNetworkPolicyJson) { | 
|  | _domainPolicies = _constructDomainPolicies(domainNetworkPolicyJson); | 
|  | } | 
|  |  | 
|  | // TODO(zra): Consider adding: | 
|  | // - an option to disallow modifying SecurityContext.defaultContext | 
|  | // - an option to disallow closing stdout and stderr. | 
|  | } |