aboutsummaryrefslogtreecommitdiffstats
path: root/components/style/stylist.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/style/stylist.rs')
-rw-r--r--components/style/stylist.rs26
1 files changed, 25 insertions, 1 deletions
diff --git a/components/style/stylist.rs b/components/style/stylist.rs
index 487f3ade5de..8dfdc91e58b 100644
--- a/components/style/stylist.rs
+++ b/components/style/stylist.rs
@@ -32,7 +32,9 @@ use crate::stylesheets::keyframes_rule::KeyframesAnimation;
use crate::stylesheets::layer_rule::{LayerName, LayerOrder};
use crate::stylesheets::viewport_rule::{self, MaybeNew, ViewportRule};
#[cfg(feature = "gecko")]
-use crate::stylesheets::{CounterStyleRule, FontFaceRule, FontFeatureValuesRule, PageRule};
+use crate::stylesheets::{
+ CounterStyleRule, FontFaceRule, FontFeatureValuesRule, FontPaletteValuesRule, PageRule,
+};
use crate::stylesheets::{
CssRule, EffectiveRulesIterator, Origin, OriginSet, PageRule, PerOrigin, PerOriginIter,
};
@@ -1679,6 +1681,10 @@ pub struct ExtraStyleData {
#[cfg(feature = "gecko")]
pub font_feature_values: LayerOrderedVec<Arc<Locked<FontFeatureValuesRule>>>,
+ /// A list of effective font-palette-values rules.
+ #[cfg(feature = "gecko")]
+ pub font_palette_values: LayerOrderedVec<Arc<Locked<FontPaletteValuesRule>>>,
+
/// A map of effective counter-style rules.
#[cfg(feature = "gecko")]
pub counter_styles: LayerOrderedMap<Arc<Locked<CounterStyleRule>>>,
@@ -1704,6 +1710,15 @@ impl ExtraStyleData {
self.font_feature_values.push(rule.clone(), layer);
}
+ /// Add the given @font-palette-values rule.
+ fn add_font_palette_values(
+ &mut self,
+ rule: &Arc<Locked<FontPaletteValuesRule>>,
+ layer: LayerId,
+ ) {
+ self.font_palette_values.push(rule.clone(), layer);
+ }
+
/// Add the given @counter-style rule.
fn add_counter_style(
&mut self,
@@ -1745,6 +1760,7 @@ impl ExtraStyleData {
fn sort_by_layer(&mut self, layers: &[CascadeLayer]) {
self.font_faces.sort(layers);
self.font_feature_values.sort(layers);
+ self.font_palette_values.sort(layers);
self.counter_styles.sort(layers);
self.pages.global.sort(layers);
}
@@ -1754,6 +1770,7 @@ impl ExtraStyleData {
{
self.font_faces.clear();
self.font_feature_values.clear();
+ self.font_palette_values.clear();
self.counter_styles.clear();
self.pages.clear();
}
@@ -1790,6 +1807,7 @@ impl MallocSizeOf for ExtraStyleData {
let mut n = 0;
n += self.font_faces.shallow_size_of(ops);
n += self.font_feature_values.shallow_size_of(ops);
+ n += self.font_palette_values.shallow_size_of(ops);
n += self.counter_styles.shallow_size_of(ops);
n += self.pages.shallow_size_of(ops);
n
@@ -2638,6 +2656,11 @@ impl CascadeData {
.add_font_feature_values(rule, containing_rule_state.layer_id);
},
#[cfg(feature = "gecko")]
+ CssRule::FontPaletteValues(ref rule) => {
+ self.extra_data
+ .add_font_palette_values(rule, containing_rule_state.layer_id);
+ },
+ #[cfg(feature = "gecko")]
CssRule::CounterStyle(ref rule) => {
self.extra_data.add_counter_style(
guard,
@@ -2888,6 +2911,7 @@ impl CascadeData {
CssRule::Document(..) |
CssRule::LayerBlock(..) |
CssRule::LayerStatement(..) |
+ CssRule::FontPaletteValues(..) |
CssRule::FontFeatureValues(..) => {
// Not affected by device changes.
continue;