diff options
author | liruifengv <liruifeng1024@gmail.com> | 2023-12-02 01:45:51 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-01 18:45:51 +0100 |
commit | fc8f060ee3e87c81a2073279a2720b423965d68f (patch) | |
tree | d01dd784d87fcf74287c6986e50bfbcda7fd481c | |
parent | eae82b34d49166a4adca8f09b96d75a6414f69a8 (diff) |
fix(permissions): fix panics when revoking net permission (#21388)
fix #21385
-rw-r--r-- | cli/tests/integration/run_tests.rs | 5 | ||||
-rw-r--r-- | cli/tests/testdata/run/065_permissions_revoke_net.ts | 6 | ||||
-rw-r--r-- | cli/tests/testdata/run/065_permissions_revoke_net.ts.out | 3 | ||||
-rw-r--r-- | runtime/permissions/mod.rs | 2 |
4 files changed, 15 insertions, 1 deletions
diff --git a/cli/tests/integration/run_tests.rs b/cli/tests/integration/run_tests.rs index 4ac18cd50..2e950a0f8 100644 --- a/cli/tests/integration/run_tests.rs +++ b/cli/tests/integration/run_tests.rs @@ -2703,6 +2703,11 @@ mod permissions { output: "run/064_permissions_revoke_global.ts.out", }); + itest!(_065_permissions_revoke_net { + args: "run --allow-net run/065_permissions_revoke_net.ts", + output: "run/065_permissions_revoke_net.ts.out", + }); + #[test] fn _066_prompt() { TestContext::default() diff --git a/cli/tests/testdata/run/065_permissions_revoke_net.ts b/cli/tests/testdata/run/065_permissions_revoke_net.ts new file mode 100644 index 000000000..40c9d413a --- /dev/null +++ b/cli/tests/testdata/run/065_permissions_revoke_net.ts @@ -0,0 +1,6 @@ +const status1 = await Deno.permissions.query({ name: "net" }); +console.log(status1); +const status2 = await Deno.permissions.revoke({ name: "net" }); +console.log(status2); +const status3 = await Deno.permissions.query({ name: "net" }); +console.log(status3); diff --git a/cli/tests/testdata/run/065_permissions_revoke_net.ts.out b/cli/tests/testdata/run/065_permissions_revoke_net.ts.out new file mode 100644 index 000000000..a9c941ecd --- /dev/null +++ b/cli/tests/testdata/run/065_permissions_revoke_net.ts.out @@ -0,0 +1,3 @@ +PermissionStatus { state: "granted", onchange: null } +PermissionStatus { state: "prompt", onchange: null } +PermissionStatus { state: "prompt", onchange: null } diff --git a/runtime/permissions/mod.rs b/runtime/permissions/mod.rs index 34d7f0a1b..cb1af7619 100644 --- a/runtime/permissions/mod.rs +++ b/runtime/permissions/mod.rs @@ -856,7 +856,7 @@ impl UnaryPermission<NetDescriptor> { &mut self, host: Option<&(T, Option<u16>)>, ) -> PermissionState { - self.revoke_desc(&Some(NetDescriptor::new(&host.unwrap()))) + self.revoke_desc(&host.map(|h| NetDescriptor::new(&h))) } pub fn check<T: AsRef<str>>( |