|  | // 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 { | 
|  | /// Whether the isolate may set [Directory.current]. | 
|  | static bool _mayChdir = true; | 
|  |  | 
|  | /// Whether the isolate may call [exit]. | 
|  | @pragma("vm:entry-point") | 
|  | static bool _mayExit = true; | 
|  |  | 
|  | // Whether the isolate may set [Stdin.echoMode]. | 
|  | @pragma('vm:entry-point') | 
|  | static bool _maySetEchoMode = true; | 
|  |  | 
|  | // Whether the isolate may set [Stdin.echoNewlineMode]. | 
|  | @pragma('vm:entry-point') | 
|  | static bool _maySetEchoNewlineMode = true; | 
|  |  | 
|  | // Whether the isolate may set [Stdin.lineMode]. | 
|  | @pragma('vm:entry-point') | 
|  | static bool _maySetLineMode = true; | 
|  |  | 
|  | /// Whether the isolate may call [sleep]. | 
|  | @pragma('vm:entry-point') | 
|  | static bool _maySleep = true; | 
|  |  | 
|  | // TODO(zra): Consider adding: | 
|  | // - an option to disallow modifying SecurityContext.defaultContext | 
|  | // - an option to disallow closing stdout and stderr. | 
|  | } |