mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
style: Replicate the list of stylesheets on the layout thread.
This is a patch that unifies a bit how Gecko and Stylo stylesheets work, in order to be able to eventually move the stylesheets into the stylist, and be able to incrementally update the invalidation map.
This commit is contained in:
parent
b8159e659e
commit
d1725b1f19
14 changed files with 413 additions and 198 deletions
|
@ -102,7 +102,8 @@ use style::media_queries::MediaList;
|
|||
use style::properties::PropertyDeclarationBlock;
|
||||
use style::selector_parser::{PseudoElement, Snapshot};
|
||||
use style::shared_lock::{SharedRwLock as StyleSharedRwLock, Locked as StyleLocked};
|
||||
use style::stylesheets::{CssRules, FontFaceRule, KeyframesRule, MediaRule};
|
||||
use style::stylesheet_set::StylesheetSet;
|
||||
use style::stylesheets::{CssRules, FontFaceRule, KeyframesRule, MediaRule, Stylesheet};
|
||||
use style::stylesheets::{NamespaceRule, StyleRule, ImportRule, SupportsRule, ViewportRule};
|
||||
use style::stylesheets::keyframes_rule::Keyframe;
|
||||
use style::values::specified::Length;
|
||||
|
@ -374,6 +375,7 @@ unsafe_no_jsmanaged_fields!(AttrIdentifier);
|
|||
unsafe_no_jsmanaged_fields!(AttrValue);
|
||||
unsafe_no_jsmanaged_fields!(Snapshot);
|
||||
unsafe_no_jsmanaged_fields!(PendingRestyle);
|
||||
unsafe_no_jsmanaged_fields!(Stylesheet);
|
||||
unsafe_no_jsmanaged_fields!(HttpsState);
|
||||
unsafe_no_jsmanaged_fields!(Request);
|
||||
unsafe_no_jsmanaged_fields!(RequestInit);
|
||||
|
@ -641,6 +643,18 @@ unsafe impl JSTraceable for StyleLocked<MediaList> {
|
|||
}
|
||||
}
|
||||
|
||||
unsafe impl<S> JSTraceable for StylesheetSet<S>
|
||||
where
|
||||
S: JSTraceable + ::style::stylesheets::StylesheetInDocument + PartialEq + 'static,
|
||||
{
|
||||
unsafe fn trace(&self, tracer: *mut JSTracer) {
|
||||
for s in self.iter() {
|
||||
s.trace(tracer)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// Holds a set of JSTraceables that need to be rooted
|
||||
struct RootedTraceableSet {
|
||||
set: Vec<*const JSTraceable>,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue