mirror of
https://github.com/servo/servo
synced 2026-05-10 17:12:23 +02:00
For a while Servo has while had a somewhat unfinished multi-document interface API that was meant to implement a kind of window manager inside a single `RenderingContext`. This came with some focus handling and a paint order implementation. This code was never really finished and the `WebView` API is moving toward a design where compositing different `WebView`s together is up to the embedder. This is finally possible now that rendering to multiple `RenderingContext`s is supported. In addition, the MDI API interferes with focus handling when `WebView`s are distributed across windows. Given these two points, this change starts to remove the MDI API. - All `WebView`s can still be hidden / unhidden and start in an unhidden state. - All `WebView`s always have system focus. System focus never properly interfaced with Servo's internal focus system anyway. A followup change will add proper system focus integration. - There are still some leftovers from the MDI interface (such as `WebView`s having their own size). These will be cleaned up in a followup change. Only the changes necessary to get multi-window support working are included here. Testing: This should not change observable behavior and tests are updated for the new APIs. Signed-off-by: Martin Robinson <mrobinson@igalia.com>
26 lines
759 B
Rust
26 lines
759 B
Rust
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
|
|
#![deny(unsafe_code)]
|
|
|
|
#[macro_use]
|
|
mod tracing;
|
|
|
|
mod broadcastchannel;
|
|
mod browsingcontext;
|
|
mod constellation;
|
|
mod constellation_webview;
|
|
mod event_loop;
|
|
mod logging;
|
|
mod pipeline;
|
|
mod process_manager;
|
|
mod sandboxing;
|
|
mod serviceworker;
|
|
mod session_history;
|
|
|
|
pub use crate::constellation::{Constellation, InitialConstellationState};
|
|
pub use crate::event_loop::{EventLoop, NewScriptEventLoopProcessInfo};
|
|
pub use crate::logging::{FromEmbedderLogger, FromScriptLogger};
|
|
pub use crate::sandboxing::{UnprivilegedContent, content_process_sandbox_profile};
|