Index: third_party/WebKit/Source/core/dom/Node.cpp |
diff --git a/third_party/WebKit/Source/core/dom/Node.cpp b/third_party/WebKit/Source/core/dom/Node.cpp |
index 7018a3bc473fb3124ca0479161f0bceaf3d82b9b..15b68633bc7978861bf511a393fe43df9fa27d28 100644 |
--- a/third_party/WebKit/Source/core/dom/Node.cpp |
+++ b/third_party/WebKit/Source/core/dom/Node.cpp |
@@ -2303,6 +2303,37 @@ bool Node::isUserActionElementFocused() const |
return document().userActionElements().isFocused(this); |
} |
+void Node::setCustomElementState(CustomElementState newState) |
+{ |
+ CustomElementState oldState = getCustomElementState(); |
+ |
+ switch (newState) { |
+ case CustomElementState::Uncustomized: |
+ NOTREACHED(); // Everything starts in this state |
+ return; |
+ |
+ case CustomElementState::Undefined: |
+ DCHECK(CustomElementState::Uncustomized == oldState); |
+ break; |
+ |
+ case CustomElementState::Customized: |
+ DCHECK(CustomElementState::Undefined == oldState); |
dominicc (has gone to gerrit)
2016/05/18 07:56:21
When upgrading, don't you go from undefined -> cus
kojii
2016/05/18 08:32:15
Do you mean uncustomized -> customized?
From crea
|
+ break; |
+ } |
+ |
+ DCHECK(isHTMLElement()); |
+ DCHECK(V0Upgraded != getV0CustomElementState()); |
+ |
+ setFlag(CustomElementFlag); |
+ if (newState == CustomElementState::Customized) |
+ setFlag(CustomElementCustomizedFlag); |
+ DCHECK(newState == getCustomElementState()); |
+ |
+ // TODO(kojii): Should fire pseudoStateChanged() when :defined selector is |
+ // ready. |
+ // toElement(this)->pseudoStateChanged(CSSSelector::PseudoDefined); |
+} |
+ |
void Node::setV0CustomElementState(V0CustomElementState newState) |
{ |
V0CustomElementState oldState = getV0CustomElementState(); |
@@ -2322,6 +2353,7 @@ void Node::setV0CustomElementState(V0CustomElementState newState) |
} |
DCHECK(isHTMLElement() || isSVGElement()); |
+ DCHECK(CustomElementState::Customized != getCustomElementState()); |
setFlag(V0CustomElementFlag); |
setFlag(newState == V0Upgraded, V0CustomElementUpgradedFlag); |