Skip to content
Permalink
Browse files

style: Add FFI API to create a StyleSheet backed by shared data.

  • Loading branch information...
heycam authored and emilio committed Mar 30, 2019
1 parent 7aac260 commit debd837bf062ef1f2e4d28e81e72a979ac5165ae
Showing with 28 additions and 0 deletions.
  1. +28 −0 components/style/stylesheets/stylesheet.rs
@@ -107,6 +107,34 @@ impl StylesheetContents {
}
}

/// Creates a new StylesheetContents with the specified pre-parsed rules,
/// origin, URL data, and quirks mode.
///
/// Since the rules have already been parsed, and the intention is that
/// this function is used for read only User Agent style sheets, an empty
/// namespace map is used, and the source map and source URLs are set to
/// None.
///
/// An empty namespace map should be fine, as it is only used for parsing,
/// not serialization of existing selectors. Since UA sheets are read only,
/// we should never need the namespace map.
pub fn from_shared_data(
rules: Arc<Locked<CssRules>>,
origin: Origin,
url_data: UrlExtraData,
quirks_mode: QuirksMode,
) -> Self {
Self {
rules,
origin,
url_data: RwLock::new(url_data),
namespaces: RwLock::new(Namespaces::default()),
quirks_mode,
source_map_url: RwLock::new(None),
source_url: RwLock::new(None),
}
}

/// Returns a reference to the list of rules.
#[inline]
pub fn rules<'a, 'b: 'a>(&'a self, guard: &'b SharedRwLockReadGuard) -> &'a [CssRule] {

0 comments on commit debd837

Please sign in to comment.
You can’t perform that action at this time.