diff --git a/cssom-1/Overview.bs b/cssom-1/Overview.bs
index 2937133f40b..fa6305a6c62 100644
--- a/cssom-1/Overview.bs
+++ b/cssom-1/Overview.bs
@@ -1952,6 +1952,10 @@ the DOM a CSS declaration block is a
owner node
The {{Element}} that the CSS declaration block is associated with, if any, or
null otherwise.
+
+ updating flag
+ Unset by default. Set when the CSS declaration block is updating
+ the owner node's style
attribute.
To parse a CSS declaration block from a string string, follow these steps:
@@ -2034,6 +2038,40 @@ Note: The serialization of an empty CSS declaration block is the empty string.
Note: The serialization of a non-empty CSS declaration block does not include any surrounding whitespace, i.e., no whitespace appears
before the first property name and no whitespace appears after the final semicolon delimiter that follows the last property value.
+A CSS declaration block has these attribute change steps for its owner node:
+
+
+ - If the readonly flag is set, terminate these steps.
+
- If the updating flag is set, terminate these steps.
+
- If localName is not "
style
", or namespace is not null, terminate these steps.
+ - If value is null, empty the declarations.
+
- Otherwise, let the declarations be the result of parse a CSS declaration block
+ from a string value.
+
+
+When a CSS declaration block object is created, then:
+
+
+ - Let owner node be the owner node.
+
- If owner node is null, or the readonly flag is set, terminate these steps.
+
- Let value be the result of getting an attribute
+ given null, "
style
", and owner node.
+ - If value is not null, let the declarations be the result of
+ parse a CSS declaration block from a string value.
+
+
+To update style attribute for declaration block means to run the steps below:
+
+
+ - Assert: declaration block's readonly flag is unset.
+
- Let owner node be declaration block's owner node.
+
- If owner node is null, terminate these steps.
+
- Set declaration block's updating flag.
+
- Set an attribute value for owner node using "
style
" and the result of
+ serializing declaration block.
+ - Unset declaration block's updating flag.
+
+
The preferred order of a list of shorthand properties shorthands is as follows:
@@ -2079,6 +2117,7 @@ Setting the {{CSSStyleDeclaration/cssText}} attribute must run these steps:
- Empty the declarations.
- Parse the given value and, if the return value is not the empty list, insert the items in the list
into the declarations, in specified order.
+
- Update style attribute for the CSS declaration block.
The length attribute must return the number of CSS
@@ -2164,6 +2203,7 @@ The setProperty(property, va
Otherwise, set the CSS declaration property with value component value list, with
the important flag set if priority is not the empty string, and unset otherwise, and with the list of declarations being the
declarations.
+ Update style attribute for the CSS declaration block.
To set a CSS declaration property with a value component value list and optionally with an important flag set, in
@@ -2202,6 +2242,7 @@ steps:
value list, and with the list of declarations being the declarations.
Otherwise, set the CSS declaration value property to the value component value
list, and with the list of declarations being the declarations.
+ Update style attribute for the CSS declaration block.
To set a CSS declaration value to a value component value list in a list of declarations declarations, follow these steps:
@@ -2234,6 +2275,7 @@ these steps:
Otherwise, set the CSS declaration priority property with the important flag set
if priority is not the empty string, and unset otherwise, and with the list of declarations being the
declarations.
+ Update style attribute for the CSS declaration block.
To set a CSS declaration priority property optionally with an important flag set, in a list of declarations
@@ -2255,11 +2297,17 @@ The removeProperty(property)property be property converted to ASCII lowercase.
Let value be the return value of invoking {{CSSStyleDeclaration/getPropertyValue()}}
with property as argument.
- If property is a shorthand property, for each longhand property longhand that property maps to, invoke
- {{CSSStyleDeclaration/removeProperty()}} with longhand as argument.
+ Let removed be false.
+ If property is a shorthand property, for each longhand property longhand that property maps to:
+
+ - If longhand is not a property name of a CSS declaration
+ in the declarations, continue.
+
- Remove that CSS declaration and let removed be true.
+
Otherwise, if property is a case-sensitive match for a
property name of a CSS declaration in the
- declarations, remove that CSS declaration.
+ declarations, remove that CSS declaration and let removed be true.
+ If removed is true, Update style attribute for the CSS declaration block.
Return value.
@@ -2678,24 +2726,9 @@ interface ElementCSSInlineStyle {
};
-The style attribute must return a live CSS declaration block with the following
-properties:
-
- - readonly flag
-
- Unset.
-
- declarations
-
- The result of parsing the
style
content attribute, in
- specified order. If the style
content attribute is absent, the object represents an
- empty list of CSS declarations. Mutating the declarations
- must set the style
content attribute on the context object to the
- serialization of the declarations. If the
- style
content attribute is set, changed or removed, the declarations must be
- updated as appropriate.
- - parent CSS rule
-
- Null.
-
- owner node
-
- The context object.
-
+The style attribute must return a CSS declaration block object whose
+readonly flag is unset, whose parent CSS rule is null, and
+whose owner node is the context object.
If the user agent supports HTML, the following IDL applies: [[HTML]]