servo/components/constellation
Ngo Iok Ui (Wu Yu Wei) 66878fb834
Initial internal support for multiple webviews (#31417)
* Add multiple concurrent top-level browsing contexts

Co-authored-by: Delan Azabani <dazabani@igalia.com>

* Rename variables and comments

There are some variable and comments still use browser as names.
This commit renames them to webview.

* Update log message from web view to webview

* Revert offscreen_framebuffer_id rename

* Rename all web view to webview

* Cargo fmt

* Fix viewport/event/clear coordinates when multiview is disabled

* Only deprecate things when multiview is enabled

* Update WebViewManger with shown and invisible sets

Replace visible_webviews and native_window_is_visible with shown_webviews
and invisible_webviews. Add 4 more methods to set them accordingly. The
behavior of is_effectively_visible will return true if the wbview is in
shown_webviews set but not in invisible_webviews.

* Update variant behaviors

* Rename WebViewVisibilityChanged to MarkWebViewInvisible

* Fix unit test by marking id 3 visible again

* Update MarkWebViewInvisible and add UnmarkWebViewInvisible

* Update format and doc comments

* Clean up doc comments

* Address style and naming changes

* Rename UpdateWebView to UpdateFrameTreeForWebView

* constellation: send frame tree unconditionally over focus and feature

* Clarify shown and invisible sets in constellation WebViewManager

* Eliminate forward_to_constellation!()

* Actually remove the unused macro

* Don’t gate compositor changes on multiview feature flag

* Update todo in mouse event dispatch

* Pass all visible webview ids in a single ReadyToPresent message

* Fix compile and lint errors

* servoshell: fix gap between minibrowser toolbar and webview

* Fix failure in /_mozilla/mozilla/window_resizeTo.html

* Fix compile warnings

* Remove stray dbg!()

* Remove confusing “effectively visible” logic (see #31815, #31816)

* Allow embedder to show/hide/raise webviews without ipc

* Update root pipeline only when painting order actually changes

* Stop gating old focus and SetFrameTree behaviour behind Cargo feature

* Use webview_id and WebViewId in webview-related code

* Improve logging of webview-related embedder events

* Allow webview Show and Raise events to optionally hide all others

* Don’t do anything in response to WebViewPaintingOrder

* Remove WebViewPaintingOrder, since its payload is unreliable

* On MoveResizeWebView, only update root pipeline if rect changed

* Rename IOCompositor methods for clarity

* compositor: add event tracing; log webview ops even without ipc

* Add temporary debug logging

* Add more temporary debug logging

* Remove temporary logging in compositor

* Remove temporary debug logging

* Add temporary debug logging, but defer I/O until panic

* Capture a backtrace with each crash log entry

* Proper error handling without panicking in WebViewManager

* Clean up imports in constellation

---------

Co-authored-by: Delan Azabani <dazabani@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2024-04-03 11:06:28 +00:00
..
browsingcontext.rs clippy: Allow too_many_arguments for existing functions (#31974) 2024-04-02 12:50:45 +00:00
Cargo.toml Replace remutex with parking_lot's ReentrantMutex (#31817) 2024-03-22 08:16:39 +00:00
constellation.rs Initial internal support for multiple webviews (#31417) 2024-04-03 11:06:28 +00:00
event_loop.rs clippy: Fix warnings in components/constellation (#31610) 2024-03-11 10:22:28 +00:00
lib.rs constellation: allow event tracing to be configured with RUST_LOG (#31659) 2024-03-14 12:28:36 +00:00
logging.rs Replace remutex with parking_lot's ReentrantMutex (#31817) 2024-03-22 08:16:39 +00:00
network_listener.rs clippy: Fix warnings in components/constellation (#31610) 2024-03-11 10:22:28 +00:00
pipeline.rs clippy: Allow too_many_arguments for existing functions (#31974) 2024-04-02 12:50:45 +00:00
sandboxing.rs clippy: Fix assorted warnings in components/ (#31628) 2024-03-13 08:31:58 +00:00
serviceworker.rs Strict import formatting (grouping and granularity) (#30325) 2023-09-11 19:16:54 +00:00
session_history.rs clippy: Fix warnings in components/constellation (#31610) 2024-03-11 10:22:28 +00:00
timer_scheduler.rs clippy: Fix warnings in components/constellation (#31610) 2024-03-11 10:22:28 +00:00
tracing.rs Initial internal support for multiple webviews (#31417) 2024-04-03 11:06:28 +00:00
webview.rs Initial internal support for multiple webviews (#31417) 2024-04-03 11:06:28 +00:00