summaryrefslogtreecommitdiff
path: root/runtime/ops/worker_host.rs
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/ops/worker_host.rs')
-rw-r--r--runtime/ops/worker_host.rs15
1 files changed, 11 insertions, 4 deletions
diff --git a/runtime/ops/worker_host.rs b/runtime/ops/worker_host.rs
index 19475fedf..3c0035645 100644
--- a/runtime/ops/worker_host.rs
+++ b/runtime/ops/worker_host.rs
@@ -19,6 +19,7 @@ use deno_core::ModuleSpecifier;
use deno_core::OpState;
use deno_permissions::create_child_permissions;
use deno_permissions::ChildPermissionsArg;
+use deno_permissions::PermissionDescriptorParser;
use deno_permissions::PermissionsContainer;
use deno_web::deserialize_js_transferables;
use deno_web::JsMessageData;
@@ -153,13 +154,19 @@ fn op_create_worker(
"Worker.deno.permissions",
);
}
+ let permission_desc_parser = state
+ .borrow::<Arc<dyn PermissionDescriptorParser>>()
+ .clone();
let parent_permissions = state.borrow_mut::<PermissionsContainer>();
let worker_permissions = if let Some(child_permissions_arg) = args.permissions
{
- let mut parent_permissions = parent_permissions.0.lock();
- let perms =
- create_child_permissions(&mut parent_permissions, child_permissions_arg)?;
- PermissionsContainer::new(perms)
+ let mut parent_permissions = parent_permissions.inner.lock();
+ let perms = create_child_permissions(
+ permission_desc_parser.as_ref(),
+ &mut parent_permissions,
+ child_permissions_arg,
+ )?;
+ PermissionsContainer::new(permission_desc_parser, perms)
} else {
parent_permissions.clone()
};