diff options
Diffstat (limited to 'cli/tools')
-rw-r--r-- | cli/tools/bench.rs | 13 | ||||
-rw-r--r-- | cli/tools/repl/mod.rs | 7 | ||||
-rw-r--r-- | cli/tools/run.rs | 20 | ||||
-rw-r--r-- | cli/tools/standalone.rs | 4 | ||||
-rw-r--r-- | cli/tools/test.rs | 26 |
5 files changed, 45 insertions, 25 deletions
diff --git a/cli/tools/bench.rs b/cli/tools/bench.rs index 24fb07919..2d54b260d 100644 --- a/cli/tools/bench.rs +++ b/cli/tools/bench.rs @@ -28,6 +28,7 @@ use deno_core::futures::StreamExt; use deno_core::ModuleSpecifier; use deno_graph::ModuleKind; use deno_runtime::permissions::Permissions; +use deno_runtime::permissions::PermissionsContainer; use deno_runtime::tokio_util::run_local; use indexmap::IndexMap; use log::Level; @@ -337,8 +338,8 @@ async fn check_specifiers( specifiers, false, lib, - Permissions::allow_all(), - permissions, + PermissionsContainer::allow_all(), + PermissionsContainer::new(permissions), true, ) .await?; @@ -358,7 +359,7 @@ async fn bench_specifier( let mut worker = create_main_worker_for_test_or_bench( &ps, specifier.clone(), - permissions, + PermissionsContainer::new(permissions), vec![ops::bench::init(channel.clone(), filter)], Default::default(), ) @@ -490,6 +491,9 @@ pub async fn run_benchmarks( bench_flags: BenchFlags, ) -> Result<(), AnyError> { let ps = ProcState::build(flags).await?; + // Various bench files should not share the same permissions in terms of + // `PermissionsContainer` - otherwise granting/revoking permissions in one + // file would have impact on other files, which is undesirable. let permissions = Permissions::from_options(&ps.options.permissions_options())?; @@ -527,6 +531,9 @@ pub async fn run_benchmarks_with_watch( bench_flags: BenchFlags, ) -> Result<(), AnyError> { let ps = ProcState::build(flags).await?; + // Various bench files should not share the same permissions in terms of + // `PermissionsContainer` - otherwise granting/revoking permissions in one + // file would have impact on other files, which is undesirable. let permissions = Permissions::from_options(&ps.options.permissions_options())?; diff --git a/cli/tools/repl/mod.rs b/cli/tools/repl/mod.rs index fc03dee2f..00f10b7d6 100644 --- a/cli/tools/repl/mod.rs +++ b/cli/tools/repl/mod.rs @@ -8,6 +8,7 @@ use crate::worker::create_main_worker; use deno_core::error::AnyError; use deno_core::resolve_url_or_path; use deno_runtime::permissions::Permissions; +use deno_runtime::permissions::PermissionsContainer; use rustyline::error::ReadlineError; mod cdp; @@ -72,7 +73,7 @@ async fn read_eval_file( let file = ps .file_fetcher - .fetch(&specifier, &mut Permissions::allow_all()) + .fetch(&specifier, PermissionsContainer::allow_all()) .await?; Ok((*file.source).to_string()) @@ -84,7 +85,9 @@ pub async fn run(flags: Flags, repl_flags: ReplFlags) -> Result<i32, AnyError> { let mut worker = create_main_worker( &ps, main_module.clone(), - Permissions::from_options(&ps.options.permissions_options())?, + PermissionsContainer::new(Permissions::from_options( + &ps.options.permissions_options(), + )?), ) .await?; worker.setup_repl().await?; diff --git a/cli/tools/run.rs b/cli/tools/run.rs index af982e483..3830affed 100644 --- a/cli/tools/run.rs +++ b/cli/tools/run.rs @@ -9,6 +9,7 @@ use deno_ast::ModuleSpecifier; use deno_core::error::AnyError; use deno_core::resolve_url_or_path; use deno_runtime::permissions::Permissions; +use deno_runtime::permissions::PermissionsContainer; use crate::args::EvalFlags; use crate::args::Flags; @@ -56,8 +57,9 @@ To grant permissions, set them before the script argument. For example: } else { resolve_url_or_path(&run_flags.script)? }; - let permissions = - Permissions::from_options(&ps.options.permissions_options())?; + let permissions = PermissionsContainer::new(Permissions::from_options( + &ps.options.permissions_options(), + )?); let mut worker = create_main_worker(&ps, main_module.clone(), permissions).await?; @@ -71,7 +73,9 @@ pub async fn run_from_stdin(flags: Flags) -> Result<i32, AnyError> { let mut worker = create_main_worker( &ps.clone(), main_module.clone(), - Permissions::from_options(&ps.options.permissions_options())?, + PermissionsContainer::new(Permissions::from_options( + &ps.options.permissions_options(), + )?), ) .await?; @@ -110,8 +114,9 @@ async fn run_with_watch(flags: Flags, script: String) -> Result<i32, AnyError> { let ps = ProcState::build_for_file_watcher((*flags).clone(), sender.clone()) .await?; - let permissions = - Permissions::from_options(&ps.options.permissions_options())?; + let permissions = PermissionsContainer::new(Permissions::from_options( + &ps.options.permissions_options(), + )?); let worker = create_main_worker(&ps, main_module.clone(), permissions).await?; worker.run_for_watcher().await?; @@ -143,8 +148,9 @@ pub async fn eval_command( let main_module = resolve_url_or_path(&format!("./$deno$eval.{}", eval_flags.ext))?; let ps = ProcState::build(flags).await?; - let permissions = - Permissions::from_options(&ps.options.permissions_options())?; + let permissions = PermissionsContainer::new(Permissions::from_options( + &ps.options.permissions_options(), + )?); let mut worker = create_main_worker(&ps, main_module.clone(), permissions).await?; // Create a dummy source file. diff --git a/cli/tools/standalone.rs b/cli/tools/standalone.rs index 471c9605d..07baecc05 100644 --- a/cli/tools/standalone.rs +++ b/cli/tools/standalone.rs @@ -21,7 +21,7 @@ use deno_core::serde_json; use deno_core::url::Url; use deno_graph::ModuleSpecifier; use deno_runtime::colors; -use deno_runtime::permissions::Permissions; +use deno_runtime::permissions::PermissionsContainer; use std::env; use std::fs; use std::fs::File; @@ -170,7 +170,7 @@ async fn create_standalone_binary( Some(import_map_specifier) => { let file = ps .file_fetcher - .fetch(&import_map_specifier, &mut Permissions::allow_all()) + .fetch(&import_map_specifier, PermissionsContainer::allow_all()) .await .context(format!( "Unable to load '{}' import map", diff --git a/cli/tools/test.rs b/cli/tools/test.rs index 35c0ea079..9d1774fff 100644 --- a/cli/tools/test.rs +++ b/cli/tools/test.rs @@ -37,6 +37,7 @@ use deno_runtime::fmt_errors::format_js_error; use deno_runtime::ops::io::Stdio; use deno_runtime::ops::io::StdioPipe; use deno_runtime::permissions::Permissions; +use deno_runtime::permissions::PermissionsContainer; use deno_runtime::tokio_util::run_local; use indexmap::IndexMap; use log::Level; @@ -723,7 +724,7 @@ async fn test_specifier( let mut worker = create_main_worker_for_test_or_bench( &ps, specifier.clone(), - permissions, + PermissionsContainer::new(permissions), vec![ops::testing::init( sender, fail_fast_tracker, @@ -895,11 +896,8 @@ async fn fetch_inline_files( ) -> Result<Vec<File>, AnyError> { let mut files = Vec::new(); for specifier in specifiers { - let mut fetch_permissions = Permissions::allow_all(); - let file = ps - .file_fetcher - .fetch(&specifier, &mut fetch_permissions) - .await?; + let fetch_permissions = PermissionsContainer::allow_all(); + let file = ps.file_fetcher.fetch(&specifier, fetch_permissions).await?; let inline_files = if file.media_type == MediaType::Unknown { extract_files_from_fenced_blocks( @@ -957,8 +955,8 @@ pub async fn check_specifiers( specifiers, false, lib, - Permissions::allow_all(), - permissions.clone(), + PermissionsContainer::new(Permissions::allow_all()), + PermissionsContainer::new(permissions.clone()), false, ) .await?; @@ -979,8 +977,8 @@ pub async fn check_specifiers( module_specifiers, false, lib, - Permissions::allow_all(), - permissions, + PermissionsContainer::allow_all(), + PermissionsContainer::new(permissions), true, ) .await?; @@ -1324,7 +1322,7 @@ async fn fetch_specifiers_with_test_mode( for (specifier, mode) in &mut specifiers_with_mode { let file = ps .file_fetcher - .fetch(specifier, &mut Permissions::allow_all()) + .fetch(specifier, PermissionsContainer::allow_all()) .await?; if file.media_type == MediaType::Unknown @@ -1342,6 +1340,9 @@ pub async fn run_tests( test_flags: TestFlags, ) -> Result<(), AnyError> { let ps = ProcState::build(flags).await?; + // Various test files should not share the same permissions in terms of + // `PermissionsContainer` - otherwise granting/revoking permissions in one + // file would have impact on other files, which is undesirable. let permissions = Permissions::from_options(&ps.options.permissions_options())?; let specifiers_with_mode = fetch_specifiers_with_test_mode( @@ -1383,6 +1384,9 @@ pub async fn run_tests_with_watch( test_flags: TestFlags, ) -> Result<(), AnyError> { let ps = ProcState::build(flags).await?; + // Various test files should not share the same permissions in terms of + // `PermissionsContainer` - otherwise granting/revoking permissions in one + // file would have impact on other files, which is undesirable. let permissions = Permissions::from_options(&ps.options.permissions_options())?; |