| Index: third_party/WebKit/Source/core/dom/custom/CustomElementDefinition.cpp
|
| diff --git a/third_party/WebKit/Source/core/dom/custom/CustomElementDefinition.cpp b/third_party/WebKit/Source/core/dom/custom/CustomElementDefinition.cpp
|
| index bf8acd6fe36eabce44f76102a7394b91cb2ee86e..6db283ccd58a7a75331003f4d3758c0d2120d1d9 100644
|
| --- a/third_party/WebKit/Source/core/dom/custom/CustomElementDefinition.cpp
|
| +++ b/third_party/WebKit/Source/core/dom/custom/CustomElementDefinition.cpp
|
| @@ -4,7 +4,6 @@
|
|
|
| #include "core/dom/custom/CustomElementDefinition.h"
|
|
|
| -#include "core/dom/Attr.h"
|
| #include "core/dom/ExceptionCode.h"
|
| #include "core/dom/custom/CEReactionsScope.h"
|
| #include "core/dom/custom/CustomElement.h"
|
| @@ -19,14 +18,6 @@
|
| CustomElementDefinition::CustomElementDefinition(
|
| const CustomElementDescriptor& descriptor)
|
| : m_descriptor(descriptor)
|
| -{
|
| -}
|
| -
|
| -CustomElementDefinition::CustomElementDefinition(
|
| - const CustomElementDescriptor& descriptor,
|
| - const HashSet<AtomicString>& observedAttributes)
|
| - : m_observedAttributes(observedAttributes)
|
| - , m_descriptor(descriptor)
|
| {
|
| }
|
|
|
| @@ -102,8 +93,14 @@
|
| // https://html.spec.whatwg.org/multipage/scripting.html#concept-upgrade-an-element
|
| void CustomElementDefinition::upgrade(Element* element)
|
| {
|
| - if (!m_observedAttributes.isEmpty())
|
| - enqueueAttributeChangedCallbackForAllAttributes(element);
|
| + // TODO(kojii): This should be reversed by exposing observedAttributes from
|
| + // ScriptCustomElementDefinition, because Element::attributes() requires
|
| + // attribute synchronizations, and generally elements have more attributes
|
| + // than custom elements observe.
|
| + for (const auto& attribute : element->attributes()) {
|
| + if (hasAttributeChangedCallback(attribute.name()))
|
| + enqueueAttributeChangedCallback(element, attribute.name(), nullAtom, attribute.value());
|
| + }
|
|
|
| if (element->inShadowIncludingDocument() && hasConnectedCallback())
|
| enqueueConnectedCallback(element);
|
| @@ -123,12 +120,6 @@
|
| return;
|
|
|
| CHECK(element->getCustomElementState() == CustomElementState::Custom);
|
| -}
|
| -
|
| -bool CustomElementDefinition::hasAttributeChangedCallback(
|
| - const QualifiedName& name)
|
| -{
|
| - return m_observedAttributes.contains(name.localName());
|
| }
|
|
|
| static void enqueueReaction(Element* element, CustomElementReaction* reaction)
|
| @@ -161,20 +152,4 @@
|
| enqueueReaction(element, new CustomElementAttributeChangedCallbackReaction(this, name, oldValue, newValue));
|
| }
|
|
|
| -void CustomElementDefinition::enqueueAttributeChangedCallbackForAllAttributes(
|
| - Element* element)
|
| -{
|
| - // Avoid synchronizing all attributes unless it is needed, while enqueing
|
| - // callbacks "in order" as defined in the spec.
|
| - // https://html.spec.whatwg.org/multipage/scripting.html#concept-upgrade-an-element
|
| - for (const AtomicString& name : m_observedAttributes)
|
| - element->synchronizeAttribute(name);
|
| - for (const auto& attribute : element->attributesWithoutUpdate()) {
|
| - if (hasAttributeChangedCallback(attribute.name())) {
|
| - enqueueAttributeChangedCallback(element, attribute.name(),
|
| - nullAtom, attribute.value());
|
| - }
|
| - }
|
| -}
|
| -
|
| } // namespace blink
|
|
|