mirror of
https://github.com/servo/servo
synced 2026-04-25 17:15:48 +02:00
This change is a major re-architecture of servoshell to support multiple windows. Unfortunately it was not possible to do this incrementally, but @mukilan and I did this together so we feel more confident about these changes. The main change here is that now the `HashMap` of windows that `App` has can be filled with more than one `ServoShellWindow`. `ServoShellWindow` is a wrapper around a `PlatformWindow` which can either be headed, headless, or for embedded platforms. Embedded platforms (Android and OHOS) are only expected to have a single window, but there is no reason that more windows cannot be added. There is still a little bit more work to be done in order to fully enable mulitple windows, so this change is just the architectural preparation. This change enables the embedded and desktop versions of servoshell to start to be fully integrated so that the entire `RunningAppState` is shared between them. Testing: servoshell is the test harness so these changes are covered by the WPT tests. --------- Signed-off-by: Martin Robinson <mrobinson@igalia.com> Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com>