-
-
Notifications
You must be signed in to change notification settings - Fork 3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Multiple concurrent top-level browsing contexts #30648
Conversation
Test results for linux-wpt-layout-2020 from try job (#7003796344): Flaky unexpected result (19)
Stable unexpected results that are known to be intermittent (23)
Stable unexpected results (3)
|
Test results for linux-wpt-layout-2013 from try job (#7003796344): Flaky unexpected result (72)
Stable unexpected results that are known to be intermittent (14)
Stable unexpected results (5)
|
|
|
🔨 Triggering try run (#7111636106) with platforms=linux and layout=2020 |
🔨 Triggering try run (#7111636744) with platforms=linux and layout=2013 |
fixable by feature-gating behaviour changes in compositor:
|
Test results for linux-wpt-layout-2013 from try job (#7111636744): Flaky unexpected result (15)
Stable unexpected results that are known to be intermittent (17)
Stable unexpected results (1)
|
|
Test results for linux-wpt-layout-2020 from try job (#7111636106): Flaky unexpected result (11)
Stable unexpected results that are known to be intermittent (20)
|
✨ Try run (#7111636106) succeeded. |
the new feature gate makes the viewport overlap the minibrowser toolbar. this needs to be fixed, or even broken out into a separate patch with MoveResizeBrowser and the get_coordinates changes only. |
🛠 These changes could not be applied onto the latest upstream WPT. Servo's copy of the Web Platform Tests may be out of sync. |
This is looking pretty good, though I haven't had a chance to look at things in great detail. Thanks so much for splitting this out into multiple PRs. The only overall comment I have is that "Browser" typically means the entire browser application. I would stick with industry standard terminology here ie "WebView." A browser contains multiple web views. |
Sorry for being inactive on this feature for a while. Another question I have is how does this interact with multiple windows in the future? |
Can this be closed in favor of #31417? |
(see #31417) |
This patch improves support for multiple top-level browsing contexts aka “webviews”.
We add several messages that allow the embedder to show, hide, move, and resize webviews in the compositor, focus and unfocus webviews in the constellation, and notify the embedder when painting order and focus changes.
These changes can be used to create a multiple-document interface, like we do in #30785.
Parts of this patch have been broken out into:
Original todo list
egui then servo or servo then egui, with stencil— may need egui and webrender modificationsfix closing initial tlbc after navigation (other tlbcs are ok)The current design of this feature, after being split and reviewed, is as follows.
limitations
compositor (#31417)
constellation
servoshell (#31417)
messages
embedder → compositor (no ipc) (#31417)
embedder →* constellation
constellation → compositor (#31417)
embedder ← constellation ←* compositor
embedder ← constellation
* all of these are in the same enum ConstellationMsg (components/shared/compositing/constellation_msg.rs), which is a very confusing design that conflates the embedder with the compositor
./mach build -d
does not report any errors./mach test-tidy
does not report any errors