servo/components
Delan Azabani b4e2037dbe
Make auxiliary webviews exist in the constellation immediately (#35672)
To allow embedders to interact with webviews as soon as they are
created, we need to ensure that they exist in both the compositor and
the constellation before those interactions happen. #35662 does this
for the compositor, while this patch does this for the constellation.

When a webview opens another webview (via <a target>, <form target>,
window.open(), etc), the embedder creates an “auxiliary” webview,
which previously went as follows:

- script create_auxiliary_browsing_context
- libservo AllowOpeningWebView
- embedder request_open_auxiliary_webview (→ constellation FocusWebView)
- script create_auxiliary_browsing_context
- constellation ScriptNewAuxiliary

In that model, the constellation may receive FocusWebView before it
receives ScriptNewAuxiliary. Now they are created as follows:

- script create_auxiliary_browsing_context
- constellation CreateAuxiliaryWebView
- libservo AllowOpeningWebView
- embedder request_open_auxiliary_webview (→ constellation FocusWebView)
- constellation CreateAuxiliaryWebView
- script create_auxiliary_browsing_context

Since these messages are all synchronous and the constellation will
have set up the webview before handling any new messages, the webview
will always exist by the time we handle the embedder’s FocusWebView.

Signed-off-by: Delan Azabani <dazabani@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2025-02-26 11:07:05 +00:00
..
allocator Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
background_hang_monitor Only compile platform samplers when cargo feature enabled (#35312) 2025-02-06 06:53:08 +00:00
bluetooth Include WebViewId into EmbedderMsg variants where possible (#35211) 2025-01-30 11:15:35 +00:00
canvas Update to rust 1.85 (#35628) 2025-02-24 17:44:35 +00:00
compositing libservo: Move size handling to RenderContext from WindowMethods (#35621) 2025-02-25 15:03:53 +00:00
config compositing: Move image output and shutdown management out of the compositor (#35538) 2025-02-20 18:27:49 +00:00
constellation Make auxiliary webviews exist in the constellation immediately (#35672) 2025-02-26 11:07:05 +00:00
deny_public_fields Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
devtools libservo: Flesh out permissions API (#35396) 2025-02-10 15:50:33 +00:00
dom_struct script: Feature-gate all crown support. (#35055) 2025-01-18 21:36:15 +00:00
domobject_derive Upgrade rustc to 1.83 (#34793) 2025-01-01 09:38:28 +00:00
fonts Update to rust 1.85 (#35628) 2025-02-24 17:44:35 +00:00
geometry servoshell: Allow overriding screen resolution with a command-line argument (#34038) 2024-10-30 11:54:13 +00:00
hyper_serde Elide lifetimes where possible after rustup (#34824) 2025-01-03 18:54:44 +00:00
jstraceable_derive Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
layout layout: Implement overflow scroll support for different axes (#35414) 2025-02-14 08:14:57 +00:00
layout_2020 layout: Change the IndefiniteContainingBlock sizes to Option<Au> (#35653) 2025-02-25 14:24:29 +00:00
layout_thread script: add skeleton implementation of FontFace API (#35262) 2025-02-19 05:50:01 +00:00
layout_thread_2020 script: add skeleton implementation of FontFace API (#35262) 2025-02-19 05:50:01 +00:00
malloc_size_of libservo: Convert intercept_web_resource_load into load_web_resource (#35564) 2025-02-21 14:36:42 +00:00
media libservo: Move GL acclerated media setup out of RenderingContext and simplify it (#35553) 2025-02-20 13:52:18 +00:00
metrics script_traits: Rename ConstellationControlMsg to ScriptThreadMessage (#35226) 2025-01-30 22:46:17 +00:00
net Don’t prompt user for credentials for non-Navigate request (#35664) 2025-02-26 03:52:00 +00:00
pixels pixels: Fix webp detection (#35474) 2025-02-19 11:09:16 +00:00
profile Improve scheduling of the memory profiler. (#35618) 2025-02-23 20:04:57 +00:00
rand crypto: Begin SubtleCrypto implementation (#33628) 2024-10-08 03:51:08 +00:00
range Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
script Make auxiliary webviews exist in the constellation immediately (#35672) 2025-02-26 11:07:05 +00:00
script_bindings refactor: add CanGc as argument to exception_to_promise (#35647) 2025-02-25 13:21:59 +00:00
servo libservo: Move size handling to RenderContext from WindowMethods (#35621) 2025-02-25 15:03:53 +00:00
shared Make auxiliary webviews exist in the constellation immediately (#35672) 2025-02-26 11:07:05 +00:00
timers deps: Remove some unused Cargo.toml (#35466) 2025-02-14 15:33:14 +00:00
url Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
webdriver_server libservo: Move WebDriver messages to the embedder crate (#35602) 2025-02-24 13:57:28 +00:00
webgpu chore: Update wgpu (#35639) 2025-02-24 20:27:36 +00:00
webxr script: Fix typo in ScriptThread::process_pending_input_events (#35627) 2025-02-24 15:58:05 +00:00