Rewild Your Web
web browser dweb
16
fork

Configure Feed

Select the types of activity you want to include in your feed.

chore: update to Servo be6a2f99a1e80060228f41280fd7d2178983e7ed

webbeef 2687b867 a15623ad

+84 -58
+29 -9
Cargo.lock
··· 254 254 255 255 [[package]] 256 256 name = "anyhow" 257 - version = "1.0.100" 257 + version = "1.0.101" 258 258 source = "registry+https://github.com/rust-lang/crates.io-index" 259 - checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" 259 + checksum = "5f0e0fee31ef5ed1ba1316088939cea399010ed7731dba877ed44aeb407a75ea" 260 260 261 261 [[package]] 262 262 name = "app_units" ··· 2522 2522 "bitflags 2.10.0", 2523 2523 "byteorder", 2524 2524 "content-security-policy", 2525 - "core-foundation 0.9.4", 2526 - "core-graphics", 2527 - "core-text", 2528 2525 "dwrote", 2529 2526 "euclid", 2530 2527 "fonts_traits", ··· 2538 2535 "memmap2", 2539 2536 "net_traits", 2540 2537 "num-traits", 2538 + "objc2 0.6.3", 2539 + "objc2-core-foundation", 2540 + "objc2-core-graphics", 2541 + "objc2-core-text", 2541 2542 "paint_api", 2542 2543 "parking_lot", 2543 2544 "profile_traits", ··· 6016 6017 checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" 6017 6018 dependencies = [ 6018 6019 "bitflags 2.10.0", 6020 + "block2 0.6.2", 6019 6021 "dispatch2", 6022 + "libc", 6020 6023 "objc2 0.6.3", 6021 6024 ] 6022 6025 ··· 6027 6030 checksum = "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807" 6028 6031 dependencies = [ 6029 6032 "bitflags 2.10.0", 6033 + "block2 0.6.2", 6030 6034 "dispatch2", 6035 + "libc", 6031 6036 "objc2 0.6.3", 6032 6037 "objc2-core-foundation", 6033 6038 "objc2-io-surface", 6039 + "objc2-metal 0.3.2", 6034 6040 ] 6035 6041 6036 6042 [[package]] ··· 6058 6064 ] 6059 6065 6060 6066 [[package]] 6067 + name = "objc2-core-text" 6068 + version = "0.3.2" 6069 + source = "registry+https://github.com/rust-lang/crates.io-index" 6070 + checksum = "0cde0dfb48d25d2b4862161a4d5fcc0e3c24367869ad306b0c9ec0073bfed92d" 6071 + dependencies = [ 6072 + "bitflags 2.10.0", 6073 + "block2 0.6.2", 6074 + "libc", 6075 + "objc2 0.6.3", 6076 + "objc2-core-foundation", 6077 + "objc2-core-graphics", 6078 + ] 6079 + 6080 + [[package]] 6061 6081 name = "objc2-core-video" 6062 6082 version = "0.3.2" 6063 6083 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 11452 11472 11453 11473 [[package]] 11454 11474 name = "zerocopy" 11455 - version = "0.8.38" 11475 + version = "0.8.39" 11456 11476 source = "registry+https://github.com/rust-lang/crates.io-index" 11457 - checksum = "57cf3aa6855b23711ee9852dfc97dfaa51c45feaba5b645d0c777414d494a961" 11477 + checksum = "db6d35d663eadb6c932438e763b262fe1a70987f9ae936e60158176d710cae4a" 11458 11478 dependencies = [ 11459 11479 "zerocopy-derive", 11460 11480 ] 11461 11481 11462 11482 [[package]] 11463 11483 name = "zerocopy-derive" 11464 - version = "0.8.38" 11484 + version = "0.8.39" 11465 11485 source = "registry+https://github.com/rust-lang/crates.io-index" 11466 - checksum = "8a616990af1a287837c4fe6596ad77ef57948f787e46ce28e166facc0cc1cb75" 11486 + checksum = "4122cd3169e94605190e77839c9a40d40ed048d305bfdc146e7df40ab0f3e517" 11467 11487 dependencies = [ 11468 11488 "proc-macro2", 11469 11489 "quote",
+4
Cargo.toml
··· 121 121 num-traits = "0.2" 122 122 num_cpus = "1.17.0" 123 123 ocb3 = "0.1.0" 124 + objc2 = "0.6.3" 125 + objc2-core-foundation = "0.3.2" 126 + objc2-core-graphics = "0.3.2" 127 + objc2-core-text = "0.3.2" 124 128 openxr = "0.20" 125 129 paint_api = { path = "source/components/shared/paint" } 126 130 p256 = { version = "0.13", features = ["ecdh"] }
+1 -1
forkme.lock
··· 1 - b7afca1214e76024ca465c5dba1b07fc98a839c0 1 + be6a2f99a1e80060228f41280fd7d2178983e7ed
+9 -9
patches/components/constellation/constellation.rs.patch
··· 129 129 } 130 130 } 131 131 132 - @@ -1732,6 +1776,12 @@ 132 + @@ -1773,6 +1817,12 @@ 133 133 self.broadcast_channels 134 134 .remove_broadcast_channel_router(router_id); 135 135 }, ··· 142 142 ScriptToConstellationMessage::ScheduleBroadcast(router_id, message) => { 143 143 if self 144 144 .check_origin_against_pipeline(&source_pipeline_id, &message.origin) 145 - @@ -1762,6 +1812,12 @@ 145 + @@ -1803,6 +1853,12 @@ 146 146 ScriptToConstellationMessage::CreateAuxiliaryWebView(load_info) => { 147 147 self.handle_script_new_auxiliary(load_info); 148 148 }, ··· 155 155 ScriptToConstellationMessage::ChangeRunningAnimationsState(animation_state) => { 156 156 self.handle_change_running_animations_state(source_pipeline_id, animation_state) 157 157 }, 158 - @@ -1928,6 +1984,23 @@ 158 + @@ -1969,6 +2025,23 @@ 159 159 new_value, 160 160 ); 161 161 }, ··· 179 179 ScriptToConstellationMessage::MediaSessionEvent(pipeline_id, event) => { 180 180 // Unlikely at this point, but we may receive events coming from 181 181 // different media sessions, so we set the active media session based 182 - @@ -1996,6 +2069,129 @@ 182 + @@ -2037,6 +2110,129 @@ 183 183 ScriptToConstellationMessage::RespondToScreenshotReadinessRequest(response) => { 184 184 self.handle_screenshot_readiness_response(source_pipeline_id, response); 185 185 }, ··· 309 309 } 310 310 } 311 311 312 - @@ -3094,6 +3290,13 @@ 312 + @@ -3135,6 +3331,13 @@ 313 313 /// <https://html.spec.whatwg.org/multipage/#destroy-a-top-level-traversable> 314 314 fn handle_close_top_level_browsing_context(&mut self, webview_id: WebViewId) { 315 315 debug!("{webview_id}: Closing"); ··· 323 323 let browsing_context_id = BrowsingContextId::from(webview_id); 324 324 // Step 5. Remove traversable from the user agent's top-level traversable set. 325 325 let browsing_context = 326 - @@ -3370,8 +3573,27 @@ 326 + @@ -3411,8 +3614,27 @@ 327 327 opener_webview_id, 328 328 opener_pipeline_id, 329 329 response_sender, ··· 351 351 let Some((webview_id_sender, webview_id_receiver)) = generic_channel::channel() else { 352 352 warn!("Failed to create channel"); 353 353 let _ = response_sender.send(None); 354 - @@ -3469,6 +3691,359 @@ 354 + @@ -3510,6 +3732,359 @@ 355 355 }); 356 356 } 357 357 ··· 711 711 #[servo_tracing::instrument(skip_all)] 712 712 fn handle_refresh_cursor(&self, pipeline_id: PipelineId) { 713 713 let Some(pipeline) = self.pipelines.get(&pipeline_id) else { 714 - @@ -4591,7 +5166,7 @@ 714 + @@ -4632,7 +5207,7 @@ 715 715 } 716 716 717 717 #[servo_tracing::instrument(skip_all)] ··· 720 720 // Send a flat projection of the history to embedder. 721 721 // The final vector is a concatenation of the URLs of the past 722 722 // entries, the current entry and the future entries. 723 - @@ -4694,9 +5269,23 @@ 723 + @@ -4735,9 +5310,23 @@ 724 724 ); 725 725 self.embedder_proxy.send(EmbedderMsg::HistoryChanged( 726 726 webview_id,
+4 -4
patches/components/layout/layout_impl.rs.patch
··· 1 1 --- original 2 2 +++ modified 3 - @@ -206,6 +206,10 @@ 3 + @@ -210,6 +210,10 @@ 4 4 5 5 /// The collector for calculating Largest Contentful Paint 6 6 lcp_candidate_collector: RefCell<Option<LargestContentfulPaintCandidateCollector>>, ··· 11 11 } 12 12 13 13 pub struct LayoutFactoryImpl(); 14 - @@ -246,12 +250,25 @@ 14 + @@ -250,12 +254,25 @@ 15 15 fn set_viewport_details(&mut self, viewport_details: ViewportDetails) -> bool { 16 16 let device = self.stylist.device_mut(); 17 17 let device_pixel_ratio = Scale::new(viewport_details.hidpi_scale_factor.get()); ··· 41 41 device.set_viewport_size(viewport_details.size); 42 42 device.set_device_pixel_ratio(device_pixel_ratio); 43 43 self.device_has_changed = true; 44 - @@ -765,6 +782,7 @@ 45 - debug: opts::get().debug.clone(), 44 + @@ -770,6 +787,7 @@ 46 45 previously_highlighted_dom_node: Cell::new(None), 47 46 lcp_candidate_collector: Default::default(), 47 + user_stylesheets: config.user_stylesheets, 48 48 + page_zoom_for_rendering: Cell::new(config.viewport_details.page_zoom_for_rendering), 49 49 } 50 50 }
+4 -4
patches/components/script/dom/globalscope.rs.patch
··· 1 1 --- original 2 2 +++ modified 3 - @@ -376,6 +376,16 @@ 3 + @@ -369,6 +369,16 @@ 4 4 /// Is considered in a secure context 5 5 inherited_secure_context: Option<bool>, 6 6 ··· 17 17 /// Directory to store unminified scripts for this window if unminify-js 18 18 /// opt is enabled. 19 19 unminified_js_dir: Option<String>, 20 - @@ -776,6 +786,8 @@ 20 + @@ -769,6 +779,8 @@ 21 21 #[cfg(feature = "webgpu")] gpu_id_hub: Arc<IdentityHub>, 22 22 inherited_secure_context: Option<bool>, 23 23 unminify_js: bool, ··· 26 26 font_context: Option<Arc<FontContext>>, 27 27 ) -> Self { 28 28 Self { 29 - @@ -819,6 +831,8 @@ 29 + @@ -812,6 +824,8 @@ 30 30 console_group_stack: DomRefCell::new(Vec::new()), 31 31 console_count_map: Default::default(), 32 32 inherited_secure_context, ··· 35 35 unminified_js_dir: unminify_js.then(|| unminified_path("unminified-js")), 36 36 byte_length_queuing_strategy_size_function: OnceCell::new(), 37 37 count_queuing_strategy_size_function: OnceCell::new(), 38 - @@ -3123,6 +3137,16 @@ 38 + @@ -3116,6 +3130,16 @@ 39 39 self.inherited_secure_context 40 40 } 41 41
+2 -2
patches/components/script/dom/mod.rs.patch
··· 8 8 pub(crate) mod errorevent; 9 9 pub(crate) mod event; 10 10 pub(crate) mod eventsource; 11 - @@ -318,6 +319,7 @@ 11 + @@ -319,6 +320,7 @@ 12 12 pub(crate) mod inputevent; 13 13 pub(crate) mod intersectionobserver; 14 14 pub(crate) mod intersectionobserverentry; ··· 16 16 pub(crate) mod keyboardevent; 17 17 pub(crate) mod location; 18 18 pub(crate) mod media; 19 - @@ -345,6 +347,8 @@ 19 + @@ -346,6 +348,8 @@ 20 20 pub(crate) mod pagetransitionevent; 21 21 pub(crate) mod paintsize; 22 22 pub(crate) mod paintworkletglobalscope;
+8 -8
patches/components/script/dom/window.rs.patch
··· 9 9 }; 10 10 use euclid::default::Rect as UntypedRect; 11 11 use euclid::{Point2D, Rect, Scale, Size2D, Vector2D}; 12 - @@ -1134,12 +1134,22 @@ 12 + @@ -1133,12 +1133,22 @@ 13 13 14 14 let (sender, receiver) = 15 15 ProfiledGenericChannel::channel(self.global().time_profiler_chan().clone()).unwrap(); ··· 33 33 receiver.recv().unwrap_or_else(|_| { 34 34 // If the receiver is closed, we assume the dialog was cancelled. 35 35 debug!("Alert dialog was cancelled or failed to show."); 36 - @@ -1167,13 +1177,22 @@ 36 + @@ -1166,13 +1176,22 @@ 37 37 // the user to respond with a positive or negative response. 38 38 let (sender, receiver) = 39 39 ProfiledGenericChannel::channel(self.global().time_profiler_chan().clone()).unwrap(); ··· 57 57 // Step 5: Let userPromptHandler be WebDriver BiDi user prompt opened with this, 58 58 // "confirm", and message. 59 59 // 60 - @@ -1218,6 +1237,7 @@ 60 + @@ -1217,6 +1236,7 @@ 61 61 // defaulted to the value given by default. 62 62 let (sender, receiver) = 63 63 ProfiledGenericChannel::channel(self.global().time_profiler_chan().clone()).unwrap(); ··· 65 65 let dialog = SimpleDialogRequest::Prompt { 66 66 id: self.Document().embedder_controls().next_control_id(), 67 67 message: message.to_string(), 68 - @@ -1224,8 +1244,16 @@ 68 + @@ -1223,8 +1243,16 @@ 69 69 default: default.to_string(), 70 70 response_sender: sender, 71 71 }; ··· 83 83 // Step 6: Let userPromptHandler be WebDriver BiDi user prompt opened with this, 84 84 // "prompt", and message. 85 85 // TODO: Add support for WebDriver BiDi. 86 - @@ -3043,9 +3071,33 @@ 86 + @@ -3049,9 +3077,33 @@ 87 87 &self, 88 88 input_event: &ConstellationInputEvent, 89 89 ) -> Option<HitTestResult> { ··· 120 120 } 121 121 122 122 #[expect(unsafe_code)] 123 - @@ -3064,8 +3116,25 @@ 123 + @@ -3070,8 +3122,25 @@ 124 124 // SAFETY: This is safe because `Window::query_elements_from_point` has ensured that 125 125 // layout has run and any OpaqueNodes that no longer refer to real nodes are gone. 126 126 let address = UntrustedNodeAddress(result.node.0 as *const c_void); ··· 147 147 cursor: result.cursor, 148 148 point_in_node: result.point_in_target, 149 149 point_in_frame, 150 - @@ -3747,6 +3816,8 @@ 150 + @@ -3753,6 +3822,8 @@ 151 151 player_context: WindowGLContext, 152 152 #[cfg(feature = "webgpu")] gpu_id_hub: Arc<IdentityHub>, 153 153 inherited_secure_context: Option<bool>, ··· 156 156 theme: Theme, 157 157 weak_script_thread: Weak<ScriptThread>, 158 158 ) -> DomRoot<Self> { 159 - @@ -3773,6 +3844,8 @@ 159 + @@ -3779,6 +3850,8 @@ 160 160 gpu_id_hub, 161 161 inherited_secure_context, 162 162 unminify_js,
+1 -1
patches/components/script/dom/workers/workerglobalscope.rs.patch
··· 1 1 --- original 2 2 +++ modified 3 - @@ -370,6 +370,8 @@ 3 + @@ -371,6 +371,8 @@ 4 4 gpu_id_hub, 5 5 init.inherited_secure_context, 6 6 init.unminify_js,
+12 -12
patches/components/script/script_thread.rs.patch
··· 14 14 use crossbeam_channel::unbounded; 15 15 use data_url::mime::Mime; 16 16 @@ -54,8 +54,8 @@ 17 - use embedder_traits::user_contents::{UserContentManagerId, UserContents}; 17 + use embedder_traits::user_contents::{UserContentManagerId, UserContents, UserScript}; 18 18 use embedder_traits::{ 19 19 EmbedderControlId, EmbedderControlResponse, EmbedderMsg, FocusSequenceNumber, 20 20 - JavaScriptEvaluationError, JavaScriptEvaluationId, MediaSessionActionType, Theme, ··· 24 24 }; 25 25 use encoding_rs::Encoding; 26 26 use fonts::{FontContext, SystemFontServiceProxy}; 27 - @@ -91,6 +91,7 @@ 28 - NewPipelineInfo, Painter, ProgressiveWebMetricType, ScriptThreadMessage, 27 + @@ -92,6 +92,7 @@ 29 28 UpdatePipelineIdReason, 30 29 }; 30 + use servo_arc::Arc as ServoArc; 31 31 +use servo_config::pref_util::PrefValue; 32 32 use servo_config::{opts, prefs}; 33 33 use servo_url::{ImmutableOrigin, MutableOrigin, OriginSnapshot, ServoUrl}; 34 34 use storage_traits::StorageThreads; 35 - @@ -1899,11 +1900,22 @@ 35 + @@ -1940,11 +1941,22 @@ 36 36 self.handle_refresh_cursor(pipeline_id); 37 37 }, 38 38 ScriptThreadMessage::PreferencesUpdated(updates) => { ··· 59 59 }, 60 60 ScriptThreadMessage::ForwardKeyboardScroll(pipeline_id, scroll) => { 61 61 if let Some(document) = self.documents.borrow().find_document(pipeline_id) { 62 - @@ -1938,6 +1950,16 @@ 62 + @@ -1979,6 +1991,16 @@ 63 63 ScriptThreadMessage::UpdatePinchZoomInfos(id, pinch_zoom_infos) => { 64 64 self.handle_update_pinch_zoom_infos(id, pinch_zoom_infos, CanGc::from_cx(cx)); 65 65 }, ··· 76 76 } 77 77 } 78 78 79 - @@ -2884,6 +2906,9 @@ 79 + @@ -2925,6 +2947,9 @@ 80 80 .documents 81 81 .borrow() 82 82 .find_iframe(parent_pipeline_id, browsing_context_id); ··· 86 86 if let Some(frame_element) = frame_element { 87 87 frame_element.update_pipeline_id(new_pipeline_id, reason, can_gc); 88 88 } 89 - @@ -2902,6 +2927,7 @@ 89 + @@ -2943,6 +2968,7 @@ 90 90 // is no need to pass along existing opener information that 91 91 // will be discarded. 92 92 None, ··· 94 94 ); 95 95 } 96 96 } 97 - @@ -3181,6 +3207,44 @@ 97 + @@ -3222,6 +3248,44 @@ 98 98 } 99 99 } 100 100 ··· 139 139 fn ask_constellation_for_top_level_info( 140 140 &self, 141 141 sender_webview_id: WebViewId, 142 - @@ -3287,7 +3351,13 @@ 142 + @@ -3334,7 +3398,13 @@ 143 143 self.senders.pipeline_to_embedder_sender.clone(), 144 144 self.senders.constellation_sender.clone(), 145 145 incomplete.pipeline_id, ··· 154 154 incomplete.viewport_details, 155 155 origin.clone(), 156 156 final_url.clone(), 157 - @@ -3309,6 +3379,8 @@ 157 + @@ -3356,6 +3426,8 @@ 158 158 #[cfg(feature = "webgpu")] 159 159 self.gpu_id_hub.clone(), 160 160 incomplete.load_data.inherited_secure_context, ··· 163 163 incomplete.theme, 164 164 self.this.clone(), 165 165 ); 166 - @@ -3330,6 +3402,7 @@ 166 + @@ -3377,6 +3449,7 @@ 167 167 incomplete.webview_id, 168 168 incomplete.parent_info, 169 169 incomplete.opener, ··· 171 171 ); 172 172 if window_proxy.parent().is_some() { 173 173 // https://html.spec.whatwg.org/multipage/#navigating-across-documents:delaying-load-events-mode-2 174 - @@ -4037,6 +4110,24 @@ 174 + @@ -4084,6 +4157,24 @@ 175 175 document.event_handler().handle_refresh_cursor(); 176 176 } 177 177
+4 -4
patches/components/script/timers.rs.patch
··· 6 6 use crate::dom::document::RefreshRedirectDue; 7 7 +use crate::dom::document_event_handler::LongPressContextMenuCallback; 8 8 use crate::dom::eventsource::EventSourceTimeoutCallback; 9 - use crate::dom::globalscope::{ErrorReporting, GlobalScope, RethrowErrors}; 10 - #[cfg(feature = "testbinding")] 11 - @@ -126,6 +127,7 @@ 9 + use crate::dom::global_scope_script_execution::{ErrorReporting, RethrowErrors}; 10 + use crate::dom::globalscope::GlobalScope; 11 + @@ -127,6 +128,7 @@ 12 12 #[cfg(feature = "testbinding")] 13 13 TestBindingCallback(TestBindingCallback), 14 14 RefreshRedirectDue(RefreshRedirectDue), ··· 16 16 /// <https://html.spec.whatwg.org/multipage/#run-steps-after-a-timeout> 17 17 RunStepsAfterTimeout { 18 18 /// Step 1. timerKey 19 - @@ -150,6 +152,7 @@ 19 + @@ -151,6 +153,7 @@ 20 20 #[cfg(feature = "testbinding")] 21 21 OneshotTimerCallback::TestBindingCallback(callback) => callback.invoke(), 22 22 OneshotTimerCallback::RefreshRedirectDue(callback) => callback.invoke(can_gc),
+6 -4
patches/components/shared/constellation/lib.rs.patch
··· 1 1 --- original 2 2 +++ modified 3 - @@ -16,13 +16,14 @@ 3 + @@ -16,15 +16,16 @@ 4 4 use std::time::Duration; 5 5 6 6 use base::cross_process_instant::CrossProcessInstant; 7 7 -use base::generic_channel::GenericCallback; 8 8 +use base::generic_channel::{GenericCallback, GenericSharedMemory}; 9 9 use base::id::{MessagePortId, PipelineId, ScriptEventLoopId, WebViewId}; 10 - use embedder_traits::user_contents::{UserContentManagerId, UserScript}; 10 + use embedder_traits::user_contents::{ 11 + UserContentManagerId, UserScript, UserScriptId, UserStyleSheet, UserStyleSheetId, 12 + }; 11 13 use embedder_traits::{ 12 14 - EmbedderControlId, EmbedderControlResponse, InputEventAndId, JavaScriptEvaluationId, 13 15 - MediaSessionActionType, NewWebViewDetails, PaintHitTestResult, Theme, TraversalId, ··· 19 21 }; 20 22 pub use from_script_message::*; 21 23 use malloc_size_of_derive::MallocSizeOf; 22 - @@ -35,9 +36,70 @@ 24 + @@ -37,9 +38,70 @@ 23 25 use servo_url::{ImmutableOrigin, ServoUrl}; 24 26 pub use structured_data::*; 25 27 use strum::IntoStaticStr; ··· 91 93 /// Messages to the Constellation from the embedding layer, whether from `ServoRenderer` or 92 94 /// from `libservo` itself. 93 95 #[derive(IntoStaticStr)] 94 - @@ -115,6 +177,9 @@ 96 + @@ -117,6 +179,9 @@ 95 97 UserContentManagerAction(UserContentManagerId, UserContentManagerAction), 96 98 /// Update pinch zoom details stored in the top level window 97 99 UpdatePinchZoomInfos(PipelineId, PinchZoomInfos),