| 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 9565e1f766926b92b9cf56ffaf5b471310b59f08..8927e6ff5c9b2b2089685e1557e3e1db323eb732 100644
|
| --- a/third_party/WebKit/Source/core/dom/Node.cpp
|
| +++ b/third_party/WebKit/Source/core/dom/Node.cpp
|
| @@ -2342,15 +2342,21 @@ void Node::setCustomElementState(CustomElementState newState)
|
|
|
| DCHECK(isHTMLElement());
|
| DCHECK_NE(V0Upgraded, getV0CustomElementState());
|
| +#if DCHECK_IS_ON()
|
| + bool wasDefined = toElement(this)->isDefined();
|
| +#endif
|
|
|
| setFlag(CustomElementFlag);
|
| if (newState == CustomElementState::Custom)
|
| setFlag(CustomElementCustomFlag);
|
| DCHECK(newState == getCustomElementState());
|
|
|
| - // TODO(kojii): Should fire pseudoStateChanged() when :defined selector is
|
| - // ready.
|
| - // toElement(this)->pseudoStateChanged(CSSSelector::PseudoDefined);
|
| + // When the state goes from Uncustomized to Undefined, and then to Custom,
|
| + // isDefined is always flipped.
|
| +#if DCHECK_IS_ON()
|
| + DCHECK_NE(wasDefined, toElement(this)->isDefined());
|
| +#endif
|
| + toElement(this)->pseudoStateChanged(CSSSelector::PseudoDefined);
|
| }
|
|
|
| void Node::setV0CustomElementState(V0CustomElementState newState)
|
|
|