mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
compositing: Move image output and shutdown management out of the compositor (#35538)
This is a step toward the renderer-per-WebView goal. It moves various details out of `IOCompositor`. - Image output: This is moved to servoshell as now applications can access the image contents of a `WebView` via `RenderingContext::read_to_image`. Most options for this are moved to `ServoShellPreferences` apart from `wait_for_stable_image` as this requires a specific kind of coordination in the `ScriptThread` that is also very expensive. Instead, paint is now simply delayed until a stable image is reached and `WebView::paint()` returns a boolean. Maybe this can be revisited in the future. - Shutdown: Shutdown is now managed by libservo itself. Shutdown state is shared between the compositor and `Servo` instance. In the future, this sharing might be unecessary. - `CompositeTarget` has been removed entirely. This no longer needs to be passed when creating a Servo instance. Signed-off-by: Martin Robinson <mrobinson@igalia.com> Co-authored-by: Ngo Iok Ui (Wu Yu Wei) <yuweiwu@pm.me>
This commit is contained in:
parent
7d33e72bfc
commit
54b5c7b632
25 changed files with 233 additions and 270 deletions
|
@ -15,6 +15,11 @@ use servo_url::ServoUrl;
|
|||
/// Global flags for Servo, currently set on the command line.
|
||||
#[derive(Clone, Debug, Deserialize, Serialize)]
|
||||
pub struct Opts {
|
||||
/// Whether or not Servo should wait for web content to go into an idle state, therefore
|
||||
/// likely producing a stable output image. This is useful for taking screenshots of pages
|
||||
/// after they have loaded.
|
||||
pub wait_for_stable_image: bool,
|
||||
|
||||
/// Whether or not the legacy layout system is enabled.
|
||||
pub legacy_layout: bool,
|
||||
|
||||
|
@ -44,8 +49,6 @@ pub struct Opts {
|
|||
|
||||
pub user_stylesheets: Vec<(Vec<u8>, ServoUrl)>,
|
||||
|
||||
pub output_file: Option<String>,
|
||||
|
||||
/// True to exit on thread failure instead of displaying about:failure.
|
||||
pub hard_fail: bool,
|
||||
|
||||
|
@ -74,9 +77,6 @@ pub struct Opts {
|
|||
/// used for testing the hardening of the constellation.
|
||||
pub random_pipeline_closure_seed: Option<usize>,
|
||||
|
||||
/// True to exit after the page load (`-x`).
|
||||
pub exit_after_load: bool,
|
||||
|
||||
/// Load shaders from disk.
|
||||
pub shaders_dir: Option<PathBuf>,
|
||||
|
||||
|
@ -194,6 +194,7 @@ pub enum OutputOptions {
|
|||
impl Default for Opts {
|
||||
fn default() -> Self {
|
||||
Self {
|
||||
wait_for_stable_image: false,
|
||||
legacy_layout: false,
|
||||
time_profiling: None,
|
||||
time_profiler_trace_path: None,
|
||||
|
@ -201,7 +202,6 @@ impl Default for Opts {
|
|||
nonincremental_layout: false,
|
||||
userscripts: None,
|
||||
user_stylesheets: Vec::new(),
|
||||
output_file: None,
|
||||
hard_fail: true,
|
||||
webdriver_port: None,
|
||||
multiprocess: false,
|
||||
|
@ -210,7 +210,6 @@ impl Default for Opts {
|
|||
random_pipeline_closure_seed: None,
|
||||
sandbox: false,
|
||||
debug: Default::default(),
|
||||
exit_after_load: false,
|
||||
config_dir: None,
|
||||
shaders_dir: None,
|
||||
certificate_path: None,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue