servo/components/shared
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
..
background_hang_monitor script: add skeleton implementation of FontFace API (#35262) 2025-02-19 05:50:01 +00:00
base deps: Upgrade to webrender@0.66 (#35325) 2025-02-07 11:57:26 +00:00
bluetooth Include WebViewId into EmbedderMsg variants where possible (#35211) 2025-01-30 11:15:35 +00:00
canvas Use surfman with glow bindings (take II) (#35422) 2025-02-13 07:26:38 +00:00
compositing Touch handler: Fix race condition and rate-limit move events (#35537) 2025-02-25 07:13:16 +00:00
devtools Inform the devtools about shadow roots on a node (#35294) 2025-02-05 13:16:36 +00:00
embedder Touch handler: Fix race condition and rate-limit move events (#35537) 2025-02-25 07:13:16 +00:00
fonts script: add skeleton implementation of FontFace API (#35262) 2025-02-19 05:50:01 +00:00
net Update to rust 1.85 (#35628) 2025-02-24 17:44:35 +00:00
profile script: add skeleton implementation of FontFace API (#35262) 2025-02-19 05:50:01 +00:00
script Make auxiliary webviews exist in the constellation immediately (#35672) 2025-02-26 11:07:05 +00:00
script_layout deps: Remove some unused Cargo.toml (#35466) 2025-02-14 15:33:14 +00:00
webrender libservo: Move size handling to RenderContext from WindowMethods (#35621) 2025-02-25 15:03:53 +00:00
webxr deps: Remove some unused Cargo.toml (#35466) 2025-02-14 15:33:14 +00:00