mirror of
https://github.com/servo/servo.git
synced 2025-07-26 16:50:23 +01:00
constellation: Pass system theme to new Pipelines (#37132)
Previously, when the theme was set it was only set on currently active `Window`s. This change makes setting the `Theme` stateful. Now the `Constellation` tracks what theme is applied to a `WebView` and properly passes that value to new `Pipeline`s when they are constructed. In addition, the value is passed to layout when that is constructed as well. Testing: this change adds a unit test. Signed-off-by: Martin Robinson <mrobinson@igalia.com>
This commit is contained in:
parent
c96de69e80
commit
d3e57a513c
19 changed files with 201 additions and 74 deletions
|
@ -20,7 +20,7 @@ use base::Epoch;
|
|||
use base::id::{BrowsingContextId, PipelineId, WebViewId};
|
||||
use compositing_traits::CrossProcessCompositorApi;
|
||||
use constellation_traits::{LoadData, ScrollState};
|
||||
use embedder_traits::{UntrustedNodeAddress, ViewportDetails};
|
||||
use embedder_traits::{Theme, UntrustedNodeAddress, ViewportDetails};
|
||||
use euclid::default::{Point2D, Rect};
|
||||
use fnv::FnvHashMap;
|
||||
use fonts::{FontContext, SystemFontServiceProxy};
|
||||
|
@ -46,7 +46,6 @@ use style::invalidation::element::restyle_hints::RestyleHint;
|
|||
use style::media_queries::Device;
|
||||
use style::properties::PropertyId;
|
||||
use style::properties::style_structs::Font;
|
||||
use style::queries::values::PrefersColorScheme;
|
||||
use style::selector_parser::{PseudoElement, RestyleDamage, Snapshot};
|
||||
use style::stylesheets::Stylesheet;
|
||||
use webrender_api::ImageKey;
|
||||
|
@ -182,6 +181,7 @@ pub struct LayoutConfig {
|
|||
pub time_profiler_chan: time::ProfilerChan,
|
||||
pub compositor_api: CrossProcessCompositorApi,
|
||||
pub viewport_details: ViewportDetails,
|
||||
pub theme: Theme,
|
||||
}
|
||||
|
||||
pub trait LayoutFactory: Send + Sync {
|
||||
|
@ -428,7 +428,7 @@ pub struct ReflowRequest {
|
|||
/// The set of image animations.
|
||||
pub node_to_image_animation_map: FxHashMap<OpaqueNode, ImageAnimationState>,
|
||||
/// The theme for the window
|
||||
pub theme: PrefersColorScheme,
|
||||
pub theme: Theme,
|
||||
/// The node highlighted by the devtools, if any
|
||||
pub highlighted_dom_node: Option<OpaqueNode>,
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue