From fefe93c91b63e35bf88f5f432f0cca09948d0623 Mon Sep 17 00:00:00 2001 From: crowlKats <13135287+crowlKats@users.noreply.github.com> Date: Mon, 12 Apr 2021 04:15:43 +0200 Subject: feat(runtime/permissions): prompt fallback (#9376) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Yoshiya Hinosawa Co-authored-by: Bartek IwaƄczuk --- op_crates/fetch/lib.rs | 12 ++++++------ op_crates/websocket/lib.rs | 10 +++++----- 2 files changed, 11 insertions(+), 11 deletions(-) (limited to 'op_crates') diff --git a/op_crates/fetch/lib.rs b/op_crates/fetch/lib.rs index 69c0c46ad..ae716af41 100644 --- a/op_crates/fetch/lib.rs +++ b/op_crates/fetch/lib.rs @@ -86,19 +86,19 @@ pub struct HttpClientDefaults { } pub trait FetchPermissions { - fn check_net_url(&self, _url: &Url) -> Result<(), AnyError>; - fn check_read(&self, _p: &Path) -> Result<(), AnyError>; + fn check_net_url(&mut self, _url: &Url) -> Result<(), AnyError>; + fn check_read(&mut self, _p: &Path) -> Result<(), AnyError>; } /// For use with `op_fetch` when the user does not want permissions. pub struct NoFetchPermissions; impl FetchPermissions for NoFetchPermissions { - fn check_net_url(&self, _url: &Url) -> Result<(), AnyError> { + fn check_net_url(&mut self, _url: &Url) -> Result<(), AnyError> { Ok(()) } - fn check_read(&self, _p: &Path) -> Result<(), AnyError> { + fn check_read(&mut self, _p: &Path) -> Result<(), AnyError> { Ok(()) } } @@ -161,7 +161,7 @@ where let scheme = url.scheme(); let (request_rid, request_body_rid) = match scheme { "http" | "https" => { - let permissions = state.borrow::(); + let permissions = state.borrow_mut::(); permissions.check_net_url(&url)?; let mut request = client.request(method, url); @@ -442,7 +442,7 @@ where FP: FetchPermissions + 'static, { if let Some(ca_file) = args.ca_file.clone() { - let permissions = state.borrow::(); + let permissions = state.borrow_mut::(); permissions.check_read(&PathBuf::from(ca_file))?; } diff --git a/op_crates/websocket/lib.rs b/op_crates/websocket/lib.rs index 59fa5acdb..930424aab 100644 --- a/op_crates/websocket/lib.rs +++ b/op_crates/websocket/lib.rs @@ -49,14 +49,14 @@ pub struct WsCaData(pub Vec); pub struct WsUserAgent(pub String); pub trait WebSocketPermissions { - fn check_net_url(&self, _url: &url::Url) -> Result<(), AnyError>; + fn check_net_url(&mut self, _url: &url::Url) -> Result<(), AnyError>; } /// For use with `op_websocket_*` when the user does not want permissions. pub struct NoWebSocketPermissions; impl WebSocketPermissions for NoWebSocketPermissions { - fn check_net_url(&self, _url: &url::Url) -> Result<(), AnyError> { + fn check_net_url(&mut self, _url: &url::Url) -> Result<(), AnyError> { Ok(()) } } @@ -91,7 +91,7 @@ where WP: WebSocketPermissions + 'static, { state - .borrow::() + .borrow_mut::() .check_net_url(&url::Url::parse(&url)?)?; Ok(()) @@ -113,8 +113,8 @@ where WP: WebSocketPermissions + 'static, { { - let s = state.borrow(); - s.borrow::() + let mut s = state.borrow_mut(); + s.borrow_mut::() .check_net_url(&url::Url::parse(&args.url)?) .expect( "Permission check should have been done in op_ws_check_permission", -- cgit v1.2.3