From d581acab3bd244e233105edde972a0605224358a Mon Sep 17 00:00:00 2001 From: "Ngo Iok Ui (Wu Yu Wei)" Date: Wed, 1 Jan 2025 17:26:23 +0900 Subject: chore: remove `WindowMethods::rendering_context` (#34780) * Create Servo without initial webview ID Signed-off-by: Wu Yuwei * Add rendering context in App struct Signed-off-by: Wu Yuwei * Make webview manager optional Signed-off-by: Wu Yuwei * Move window creation to init Signed-off-by: Wu Yuwei * Create window from external rendering context Signed-off-by: Wu Yuwei * Resize surface in compositor Signed-off-by: Wu Yuwei * Obey clippy Signed-off-by: Wu Yuwei * Update Android and OHOS Signed-off-by: Wu Yuwei * Add missing arguent on OHOS Signed-off-by: Wu Yuwei * Show webview after focused on Android and OH Signed-off-by: Wu Yuwei * Remove rendering_context in ServoWindowCallbacks Signed-off-by: Wu Yuwei * Create surface before swapchain in headless mode Signed-off-by: Wu Yuwei --------- Signed-off-by: Wu Yuwei --- components/compositing/compositor.rs | 28 ++++++---------------------- 1 file changed, 6 insertions(+), 22 deletions(-) (limited to 'components/compositing/compositor.rs') diff --git a/components/compositing/compositor.rs b/components/compositing/compositor.rs index 6be338b266b..8da18bf5151 100644 --- a/components/compositing/compositor.rs +++ b/components/compositing/compositor.rs @@ -363,33 +363,13 @@ impl IOCompositor { composite_target: CompositeTarget, exit_after_load: bool, convert_mouse_to_touch: bool, - top_level_browsing_context_id: TopLevelBrowsingContextId, version_string: String, ) -> Self { - let embedder_coordinates = window.get_coordinates(); - let mut webviews = WebViewManager::default(); - webviews - .add( - top_level_browsing_context_id, - WebView { - pipeline_id: None, - rect: embedder_coordinates.get_viewport().to_f32(), - }, - ) - .expect("Infallible with a new WebViewManager"); - let msg = ConstellationMsg::WebViewOpened(top_level_browsing_context_id); - if let Err(e) = state.constellation_chan.send(msg) { - warn!("Sending event to constellation failed ({:?}).", e); - } - webviews - .show(top_level_browsing_context_id) - .expect("Infallible due to add"); - let compositor = IOCompositor { embedder_coordinates: window.get_coordinates(), window, port: state.receiver, - webviews, + webviews: WebViewManager::default(), pipeline_details: HashMap::new(), composition_request: CompositionRequest::NoCompositingNecessary, touch_handler: TouchHandler::new(), @@ -1360,7 +1340,11 @@ impl IOCompositor { if self.embedder_coordinates.viewport != old_coords.viewport { let mut transaction = Transaction::new(); - transaction.set_document_view(self.embedder_coordinates.get_viewport()); + let size = self.embedder_coordinates.get_viewport(); + transaction.set_document_view(size); + if let Err(e) = self.rendering_context.resize(size.size().to_untyped()) { + warn!("Failed to resize surface: {e:?}"); + } self.webrender_api .send_transaction(self.webrender_document, transaction); } -- cgit v1.2.3