diff options
Diffstat (limited to 'components/script')
-rw-r--r-- | components/script/Cargo.toml | 1 | ||||
-rw-r--r-- | components/script/dom/bindings/cell.rs | 4 | ||||
-rw-r--r-- | components/script/dom/element.rs | 7 | ||||
-rw-r--r-- | components/script/dom/htmlcanvaselement.rs | 4 | ||||
-rw-r--r-- | components/script/dom/htmliframeelement.rs | 9 | ||||
-rw-r--r-- | components/script/dom/offscreencanvas.rs | 4 | ||||
-rw-r--r-- | components/script/dom/vertexarrayobject.rs | 5 | ||||
-rw-r--r-- | components/script/navigation.rs | 4 |
8 files changed, 19 insertions, 19 deletions
diff --git a/components/script/Cargo.toml b/components/script/Cargo.toml index f41ef733c5f..6d588a3984e 100644 --- a/components/script/Cargo.toml +++ b/components/script/Cargo.toml @@ -100,7 +100,6 @@ phf = "0.11" pixels = { path = "../pixels" } profile_traits = { workspace = true } range = { path = "../range" } -ref_filter_map = "1.0.1" regex = { workspace = true } script_bindings = { path = "../script_bindings" } script_layout_interface = { workspace = true } diff --git a/components/script/dom/bindings/cell.rs b/components/script/dom/bindings/cell.rs index 7e7e752bc0c..805ab28224f 100644 --- a/components/script/dom/bindings/cell.rs +++ b/components/script/dom/bindings/cell.rs @@ -9,10 +9,8 @@ use std::cell::{BorrowError, BorrowMutError}; pub(crate) use std::cell::{Ref, RefCell, RefMut}; #[cfg(feature = "refcell_backtrace")] -pub(crate) use accountable_refcell::{Ref, RefCell, RefMut, ref_filter_map}; +pub(crate) use accountable_refcell::{Ref, RefCell, RefMut}; use malloc_size_of::{MallocConditionalSizeOf, MallocSizeOfOps}; -#[cfg(not(feature = "refcell_backtrace"))] -pub(crate) use ref_filter_map::ref_filter_map; use crate::dom::bindings::root::{assert_in_layout, assert_in_script}; diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs index ed58548a3e5..dbf0f14ab68 100644 --- a/components/script/dom/element.rs +++ b/components/script/dom/element.rs @@ -66,7 +66,7 @@ use xml5ever::serialize::TraversalScope::{ use crate::conversions::Convert; use crate::dom::activation::Activatable; use crate::dom::attr::{Attr, AttrHelpersForLayout, is_relevant_attribute}; -use crate::dom::bindings::cell::{DomRefCell, Ref, RefMut, ref_filter_map}; +use crate::dom::bindings::cell::{DomRefCell, Ref, RefMut}; use crate::dom::bindings::codegen::Bindings::AttrBinding::AttrMethods; use crate::dom::bindings::codegen::Bindings::DocumentBinding::DocumentMethods; use crate::dom::bindings::codegen::Bindings::ElementBinding::{ @@ -1480,7 +1480,7 @@ impl Element { // is "xmlns", and local name is prefix, or if prefix is null and it has an attribute // whose namespace is the XMLNS namespace, namespace prefix is null, and local name is // "xmlns", then return its value if it is not the empty string, and null otherwise." - let attr = ref_filter_map(self.attrs(), |attrs| { + let attr = Ref::filter_map(self.attrs(), |attrs| { attrs.iter().find(|attr| { if attr.namespace() != &ns!(xmlns) { return false; @@ -1493,7 +1493,8 @@ impl Element { _ => false, } }) - }); + }) + .ok(); if let Some(attr) = attr { return (**attr.value()).into(); diff --git a/components/script/dom/htmlcanvaselement.rs b/components/script/dom/htmlcanvaselement.rs index c2bfc9c2d7f..27da9f2b537 100644 --- a/components/script/dom/htmlcanvaselement.rs +++ b/components/script/dom/htmlcanvaselement.rs @@ -31,7 +31,7 @@ pub(crate) use crate::canvas_context::*; use crate::conversions::Convert; use crate::dom::attr::Attr; use crate::dom::bindings::callback::ExceptionHandling; -use crate::dom::bindings::cell::{DomRefCell, Ref, ref_filter_map}; +use crate::dom::bindings::cell::{DomRefCell, Ref}; use crate::dom::bindings::codegen::Bindings::HTMLCanvasElementBinding::{ BlobCallback, HTMLCanvasElementMethods, RenderingContext as RootedRenderingContext, }; @@ -225,7 +225,7 @@ impl LayoutHTMLCanvasElementHelpers for LayoutDom<'_, HTMLCanvasElement> { impl HTMLCanvasElement { pub(crate) fn context(&self) -> Option<Ref<RenderingContext>> { - ref_filter_map(self.context_mode.borrow(), |ctx| ctx.as_ref()) + Ref::filter_map(self.context_mode.borrow(), |ctx| ctx.as_ref()).ok() } fn get_or_init_2d_context(&self, can_gc: CanGc) -> Option<DomRoot<CanvasRenderingContext2D>> { diff --git a/components/script/dom/htmliframeelement.rs b/components/script/dom/htmliframeelement.rs index 18116eee8ae..7de3d4977b1 100644 --- a/components/script/dom/htmliframeelement.rs +++ b/components/script/dom/htmliframeelement.rs @@ -16,6 +16,7 @@ use embedder_traits::ViewportDetails; use html5ever::{LocalName, Prefix, local_name, ns}; use js::rust::HandleObject; use net_traits::ReferrerPolicy; +use net_traits::request::Destination; use profile_traits::ipc as ProfiledIpc; use script_traits::{NewLayoutInfo, UpdatePipelineIdReason}; use servo_url::ServoUrl; @@ -282,6 +283,7 @@ impl HTMLIFrameElement { Some(document.insecure_requests_policy()), document.has_trustworthy_ancestor_or_current_origin(), ); + load_data.destination = Destination::IFrame; load_data.policy_container = Some(window.as_global_scope().policy_container()); let element = self.upcast::<Element>(); load_data.srcdoc = String::from(element.get_string_attribute(&local_name!("srcdoc"))); @@ -375,6 +377,8 @@ impl HTMLIFrameElement { Some(document.insecure_requests_policy()), document.has_trustworthy_ancestor_or_current_origin(), ); + load_data.destination = Destination::IFrame; + load_data.policy_container = Some(window.as_global_scope().policy_container()); let pipeline_id = self.pipeline_id(); // If the initial `about:blank` page is the current page, load with replacement enabled, @@ -382,10 +386,6 @@ impl HTMLIFrameElement { let is_about_blank = pipeline_id.is_some() && pipeline_id == self.about_blank_pipeline_id.get(); - if is_about_blank { - load_data.policy_container = Some(window.as_global_scope().policy_container()); - } - let history_handling = if is_about_blank { NavigationHistoryBehavior::Replace } else { @@ -425,6 +425,7 @@ impl HTMLIFrameElement { Some(document.insecure_requests_policy()), document.has_trustworthy_ancestor_or_current_origin(), ); + load_data.destination = Destination::IFrame; load_data.policy_container = Some(window.as_global_scope().policy_container()); let browsing_context_id = BrowsingContextId::new(); let webview_id = window.window_proxy().webview_id(); diff --git a/components/script/dom/offscreencanvas.rs b/components/script/dom/offscreencanvas.rs index bceed49ac7d..b4323ef6b54 100644 --- a/components/script/dom/offscreencanvas.rs +++ b/components/script/dom/offscreencanvas.rs @@ -10,7 +10,7 @@ use js::rust::{HandleObject, HandleValue}; use snapshot::Snapshot; use crate::canvas_context::{CanvasContext, OffscreenRenderingContext}; -use crate::dom::bindings::cell::{DomRefCell, Ref, ref_filter_map}; +use crate::dom::bindings::cell::{DomRefCell, Ref}; use crate::dom::bindings::codegen::Bindings::OffscreenCanvasBinding::{ OffscreenCanvasMethods, OffscreenRenderingContext as RootedOffscreenRenderingContext, }; @@ -84,7 +84,7 @@ impl OffscreenCanvas { } pub(crate) fn context(&self) -> Option<Ref<OffscreenRenderingContext>> { - ref_filter_map(self.context.borrow(), |ctx| ctx.as_ref()) + Ref::filter_map(self.context.borrow(), |ctx| ctx.as_ref()).ok() } pub(crate) fn get_image_data(&self) -> Option<Snapshot> { diff --git a/components/script/dom/vertexarrayobject.rs b/components/script/dom/vertexarrayobject.rs index 7da5cf7195b..27f65bde7ee 100644 --- a/components/script/dom/vertexarrayobject.rs +++ b/components/script/dom/vertexarrayobject.rs @@ -8,7 +8,7 @@ use canvas_traits::webgl::{ ActiveAttribInfo, WebGLCommand, WebGLError, WebGLResult, WebGLVersion, WebGLVertexArrayId, }; -use crate::dom::bindings::cell::{DomRefCell, Ref, ref_filter_map}; +use crate::dom::bindings::cell::{DomRefCell, Ref}; use crate::dom::bindings::codegen::Bindings::WebGL2RenderingContextBinding::WebGL2RenderingContextConstants as constants2; use crate::dom::bindings::codegen::Bindings::WebGLRenderingContextBinding::WebGLRenderingContextConstants as constants; use crate::dom::bindings::root::{Dom, MutNullableDom}; @@ -83,9 +83,10 @@ impl VertexArrayObject { } pub(crate) fn get_vertex_attrib(&self, index: u32) -> Option<Ref<VertexAttribData>> { - ref_filter_map(self.vertex_attribs.borrow(), |attribs| { + Ref::filter_map(self.vertex_attribs.borrow(), |attribs| { attribs.get(index as usize) }) + .ok() } pub(crate) fn set_vertex_attrib_type(&self, index: u32, type_: u32) { diff --git a/components/script/navigation.rs b/components/script/navigation.rs index 5aa71abb74a..17cff5bab4a 100644 --- a/components/script/navigation.rs +++ b/components/script/navigation.rs @@ -11,7 +11,6 @@ use std::cell::Cell; use base::cross_process_instant::CrossProcessInstant; use base::id::{BrowsingContextId, PipelineId, WebViewId}; use constellation_traits::LoadData; -use content_security_policy::Destination; use crossbeam_channel::Sender; use embedder_traits::ViewportDetails; use http::header; @@ -202,12 +201,13 @@ impl InProgressLoad { self.load_data.referrer.clone(), ) .method(self.load_data.method.clone()) - .destination(Destination::Document) + .destination(self.load_data.destination) .mode(RequestMode::Navigate) .credentials_mode(CredentialsMode::Include) .use_url_credentials(true) .pipeline_id(Some(id)) .referrer_policy(self.load_data.referrer_policy) + .policy_container(self.load_data.policy_container.clone().unwrap_or_default()) .insecure_requests_policy( self.load_data .inherited_insecure_requests_policy |