diff options
author | Emilio Cobos Álvarez <emilio@crisal.io> | 2018-02-27 19:19:43 +0100 |
---|---|---|
committer | Emilio Cobos Álvarez <emilio@crisal.io> | 2018-02-27 19:29:07 +0100 |
commit | 650e947c941768e1646affed89d65c90c5ec0281 (patch) | |
tree | d4500c72b330441e53f5001d9f73119f04453f44 /components/script | |
parent | 030509e66b9d3432c112bb5639f446535749963e (diff) | |
download | servo-650e947c941768e1646affed89d65c90c5ec0281.tar.gz servo-650e947c941768e1646affed89d65c90c5ec0281.zip |
style: Make Servo deal with CSS property prefs more correctly.
Right now you could still set preffed-off properties from CSSStyleDeclaration.
Diffstat (limited to 'components/script')
-rw-r--r-- | components/script/dom/cssstyledeclaration.rs | 12 | ||||
-rw-r--r-- | components/script/dom/webidls/CSSStyleDeclaration.webidl | 27 |
2 files changed, 30 insertions, 9 deletions
diff --git a/components/script/dom/cssstyledeclaration.rs b/components/script/dom/cssstyledeclaration.rs index 2699bda9b07..37b1a0a4ae1 100644 --- a/components/script/dom/cssstyledeclaration.rs +++ b/components/script/dom/cssstyledeclaration.rs @@ -164,9 +164,17 @@ macro_rules! css_properties( ( $([$getter:ident, $setter:ident, $id:expr],)* ) => ( $( fn $getter(&self) -> DOMString { + debug_assert!( + $id.enabled_for_all_content(), + "Someone forgot a #[Pref] annotation" + ); self.get_property_value($id) } fn $setter(&self, value: DOMString) -> ErrorResult { + debug_assert!( + $id.enabled_for_all_content(), + "Someone forgot a #[Pref] annotation" + ); self.set_property($id, value, DOMString::new()) } )* @@ -238,6 +246,10 @@ impl CSSStyleDeclaration { return Err(Error::NoModificationAllowed); } + if !id.enabled_for_all_content() { + return Ok(()); + } + self.owner.mutate_associated_block(|pdb, changed| { if value.is_empty() { // Step 3 diff --git a/components/script/dom/webidls/CSSStyleDeclaration.webidl b/components/script/dom/webidls/CSSStyleDeclaration.webidl index b6df0176947..1bb20990494 100644 --- a/components/script/dom/webidls/CSSStyleDeclaration.webidl +++ b/components/script/dom/webidls/CSSStyleDeclaration.webidl @@ -244,8 +244,10 @@ partial interface CSSStyleDeclaration { [CEReactions, SetterThrows, TreatNullAs=EmptyString] attribute DOMString whiteSpace; [CEReactions, SetterThrows, TreatNullAs=EmptyString] attribute DOMString white-space; - [CEReactions, SetterThrows, TreatNullAs=EmptyString] attribute DOMString writingMode; - [CEReactions, SetterThrows, TreatNullAs=EmptyString] attribute DOMString writing-mode; + [Pref="layout.writing-mode.enabled", CEReactions, SetterThrows, TreatNullAs=EmptyString] + attribute DOMString writingMode; + [Pref="layout.writing-mode.enabled", CEReactions, SetterThrows, TreatNullAs=EmptyString] + attribute DOMString writing-mode; [CEReactions, SetterThrows, TreatNullAs=EmptyString] attribute DOMString letterSpacing; [CEReactions, SetterThrows, TreatNullAs=EmptyString] attribute DOMString letter-spacing; @@ -385,13 +387,20 @@ partial interface CSSStyleDeclaration { [CEReactions, SetterThrows, TreatNullAs=EmptyString] attribute DOMString imageRendering; [CEReactions, SetterThrows, TreatNullAs=EmptyString] attribute DOMString image-rendering; - [CEReactions, SetterThrows, TreatNullAs=EmptyString] attribute DOMString columnCount; - [CEReactions, SetterThrows, TreatNullAs=EmptyString] attribute DOMString column-count; - [CEReactions, SetterThrows, TreatNullAs=EmptyString] attribute DOMString columnWidth; - [CEReactions, SetterThrows, TreatNullAs=EmptyString] attribute DOMString column-width; - [CEReactions, SetterThrows, TreatNullAs=EmptyString] attribute DOMString columns; - [CEReactions, SetterThrows, TreatNullAs=EmptyString] attribute DOMString columnGap; - [CEReactions, SetterThrows, TreatNullAs=EmptyString] attribute DOMString column-gap; + [Pref="layout.column-count.enabled", CEReactions, SetterThrows, TreatNullAs=EmptyString] + attribute DOMString columnCount; + [Pref="layout.column-count.enabled", CEReactions, SetterThrows, TreatNullAs=EmptyString] + attribute DOMString column-count; + [Pref="layout.column-width.enabled", CEReactions, SetterThrows, TreatNullAs=EmptyString] + attribute DOMString columnWidth; + [Pref="layout.column-width.enabled", CEReactions, SetterThrows, TreatNullAs=EmptyString] + attribute DOMString column-width; + [Pref="layout.columns.enabled", CEReactions, SetterThrows, TreatNullAs=EmptyString] + attribute DOMString columns; + [Pref="layout.column-gap.enabled", CEReactions, SetterThrows, TreatNullAs=EmptyString] + attribute DOMString columnGap; + [Pref="layout.column-gap.enabled", CEReactions, SetterThrows, TreatNullAs=EmptyString] + attribute DOMString column-gap; [CEReactions, SetterThrows, TreatNullAs=EmptyString] attribute DOMString transition; [CEReactions, SetterThrows, TreatNullAs=EmptyString] attribute DOMString transitionDuration; |