diff --git a/forkme.lock b/forkme.lock index bce1cce..bb0d384 100644 --- a/forkme.lock +++ b/forkme.lock @@ -1 +1 @@ -34c644d5b85b98332bebfb948707bb6dc0b524ab +68fa945f3824afd11c28340f9af7ff26d205c833 diff --git a/patches/components/constellation/constellation.rs.patch b/patches/components/constellation/constellation.rs.patch index 5234d39..fd41fb7 100644 --- a/patches/components/constellation/constellation.rs.patch +++ b/patches/components/constellation/constellation.rs.patch @@ -27,7 +27,7 @@ }; use euclid::Size2D; use euclid::default::Size2D as UntypedSize2D; -@@ -509,6 +510,19 @@ +@@ -507,6 +508,19 @@ /// to the `UserContents` need to be forwared to all the `ScriptThread`s that host /// the relevant `WebView`. pub(crate) user_contents_for_manager_id: FxHashMap, @@ -47,7 +47,7 @@ } /// State needed to construct a constellation. -@@ -727,6 +741,9 @@ +@@ -725,6 +739,9 @@ pending_viewport_changes: Default::default(), screenshot_readiness_requests: Vec::new(), user_contents_for_manager_id: Default::default(), @@ -57,7 +57,7 @@ }; constellation.run(); -@@ -752,6 +769,18 @@ +@@ -750,6 +767,18 @@ fn clean_up_finished_script_event_loops(&mut self) { self.event_loop_join_handles .retain(|join_handle| !join_handle.is_finished()); @@ -76,7 +76,7 @@ self.event_loops .retain(|event_loop| event_loop.upgrade().is_some()); } -@@ -1043,6 +1072,11 @@ +@@ -1041,6 +1070,11 @@ .get(&webview_id) .and_then(|webview| webview.user_content_manager_id); @@ -88,7 +88,7 @@ let new_pipeline_info = NewPipelineInfo { parent_info: parent_pipeline_id, new_pipeline_id, -@@ -1053,6 +1087,8 @@ +@@ -1051,6 +1085,8 @@ viewport_details: initial_viewport_details, user_content_manager_id, theme, @@ -97,7 +97,7 @@ }; let pipeline = match Pipeline::spawn(new_pipeline_info, event_loop, self, throttled) { Ok(pipeline) => pipeline, -@@ -1524,11 +1560,7 @@ +@@ -1522,11 +1558,7 @@ } }, EmbedderToConstellationMessage::PreferencesUpdated(updates) => { @@ -110,7 +110,7 @@ let _ = event_loop.send(ScriptThreadMessage::PreferencesUpdated( updates .iter() -@@ -1552,6 +1584,18 @@ +@@ -1550,6 +1582,18 @@ EmbedderToConstellationMessage::UpdatePinchZoomInfos(pipeline_id, pinch_zoom) => { self.handle_update_pinch_zoom_infos(pipeline_id, pinch_zoom); }, @@ -129,7 +129,7 @@ } } -@@ -1734,6 +1778,12 @@ +@@ -1732,6 +1776,12 @@ self.broadcast_channels .remove_broadcast_channel_router(router_id); }, @@ -142,7 +142,7 @@ ScriptToConstellationMessage::ScheduleBroadcast(router_id, message) => { if self .check_origin_against_pipeline(&source_pipeline_id, &message.origin) -@@ -1764,6 +1814,12 @@ +@@ -1762,6 +1812,12 @@ ScriptToConstellationMessage::CreateAuxiliaryWebView(load_info) => { self.handle_script_new_auxiliary(load_info); }, @@ -155,7 +155,7 @@ ScriptToConstellationMessage::ChangeRunningAnimationsState(animation_state) => { self.handle_change_running_animations_state(source_pipeline_id, animation_state) }, -@@ -1930,6 +1986,23 @@ +@@ -1928,6 +1984,23 @@ new_value, ); }, @@ -179,7 +179,7 @@ ScriptToConstellationMessage::MediaSessionEvent(pipeline_id, event) => { // Unlikely at this point, but we may receive events coming from // different media sessions, so we set the active media session based -@@ -1998,6 +2071,129 @@ +@@ -1996,6 +2069,129 @@ ScriptToConstellationMessage::RespondToScreenshotReadinessRequest(response) => { self.handle_screenshot_readiness_response(source_pipeline_id, response); }, @@ -309,7 +309,7 @@ } } -@@ -3096,6 +3292,13 @@ +@@ -3094,6 +3290,13 @@ /// fn handle_close_top_level_browsing_context(&mut self, webview_id: WebViewId) { debug!("{webview_id}: Closing"); @@ -323,7 +323,7 @@ let browsing_context_id = BrowsingContextId::from(webview_id); // Step 5. Remove traversable from the user agent's top-level traversable set. let browsing_context = -@@ -3372,8 +3575,27 @@ +@@ -3370,8 +3573,27 @@ opener_webview_id, opener_pipeline_id, response_sender, @@ -351,7 +351,7 @@ let Some((webview_id_sender, webview_id_receiver)) = generic_channel::channel() else { warn!("Failed to create channel"); let _ = response_sender.send(None); -@@ -3471,6 +3693,359 @@ +@@ -3469,6 +3691,359 @@ }); } @@ -711,7 +711,7 @@ #[servo_tracing::instrument(skip_all)] fn handle_refresh_cursor(&self, pipeline_id: PipelineId) { let Some(pipeline) = self.pipelines.get(&pipeline_id) else { -@@ -4570,7 +5145,7 @@ +@@ -4591,7 +5166,7 @@ } #[servo_tracing::instrument(skip_all)] @@ -720,7 +720,7 @@ // Send a flat projection of the history to embedder. // The final vector is a concatenation of the URLs of the past // entries, the current entry and the future entries. -@@ -4673,9 +5248,23 @@ +@@ -4694,9 +5269,23 @@ ); self.embedder_proxy.send(EmbedderMsg::HistoryChanged( webview_id, diff --git a/patches/components/script/dom/notification.rs.patch b/patches/components/script/dom/notification.rs.patch index 771abef..96c8ec3 100644 --- a/patches/components/script/dom/notification.rs.patch +++ b/patches/components/script/dom/notification.rs.patch @@ -1,6 +1,6 @@ --- original +++ modified -@@ -7,6 +7,7 @@ +@@ -6,6 +6,7 @@ use std::sync::Arc; use std::time::{SystemTime, UNIX_EPOCH}; diff --git a/patches/components/script/dom/windowproxy.rs.patch b/patches/components/script/dom/windowproxy.rs.patch index b5df006..ff427db 100644 --- a/patches/components/script/dom/windowproxy.rs.patch +++ b/patches/components/script/dom/windowproxy.rs.patch @@ -9,7 +9,7 @@ use base::id::{BrowsingContextId, PipelineId, WebViewId}; use constellation_traits::{ AuxiliaryWebViewCreationRequest, LoadData, LoadOrigin, NavigationHistoryBehavior, -@@ -293,8 +293,9 @@ +@@ -304,8 +304,9 @@ &self, name: DOMString, noopener: bool, @@ -20,7 +20,7 @@ let window = self .currently_active .get() -@@ -328,6 +329,7 @@ +@@ -339,6 +340,7 @@ opener_webview_id: window.webview_id(), opener_pipeline_id: self.currently_active.get().unwrap(), response_sender, @@ -28,7 +28,7 @@ }; let constellation_msg = ScriptToConstellationMessage::CreateAuxiliaryWebView(load_info); window.send_to_constellation(constellation_msg); -@@ -346,6 +348,8 @@ +@@ -357,6 +359,8 @@ // Use the current `WebView`'s theme initially, but the embedder may // change this later. theme: window.theme(), @@ -37,7 +37,7 @@ }; with_script_thread(|script_thread| { -@@ -504,14 +508,32 @@ +@@ -515,14 +519,32 @@ // (TODO) Step 11. Let referrerPolicy be the empty string. // (TODO) Step 12. If noreferrer is true, then set referrerPolicy to "no-referrer". @@ -74,7 +74,7 @@ // TODO Step 15.2, Set up browsing context features for targetNavigable's // active browsing context given tokenizedFeatures. let target_document = match chosen.document() { -@@ -526,16 +548,12 @@ +@@ -537,16 +559,12 @@ let target_window = target_document.window(); // Step 15.3 and 15.4 will have happened elsewhere, // since we've created a new browsing context and loaded it with about:blank. @@ -92,7 +92,7 @@ let referrer = if noreferrer { Referrer::NoReferrer } else { -@@ -599,6 +617,7 @@ +@@ -610,6 +628,7 @@ &self, name: DOMString, noopener: bool, @@ -100,7 +100,7 @@ ) -> (Option>, bool) { match name.to_lowercase().as_ref() { "" | "_self" => { -@@ -616,7 +635,10 @@ +@@ -627,7 +646,10 @@ // Step 5 (Some(DomRoot::from_ref(self.top())), false) }, @@ -112,7 +112,7 @@ _ => { // Step 6. // TODO: expand the search to all 'familiar' bc, -@@ -624,7 +646,10 @@ +@@ -635,7 +657,10 @@ // See https://html.spec.whatwg.org/multipage/#familiar-with match ScriptThread::find_window_proxy_by_name(&name) { Some(proxy) => (Some(proxy), false), diff --git a/patches/components/script_bindings/codegen/Bindings.conf.patch b/patches/components/script_bindings/codegen/Bindings.conf.patch index cf2d2fb..ae36dc7 100644 --- a/patches/components/script_bindings/codegen/Bindings.conf.patch +++ b/patches/components/script_bindings/codegen/Bindings.conf.patch @@ -1,6 +1,6 @@ --- original +++ modified -@@ -249,6 +249,10 @@ +@@ -250,6 +250,10 @@ 'canGc': ['CheckValidity', 'GetLabels', 'GetValidity', 'SetValidity', 'ReportValidity', 'States'], },