Index: Source/core/dom/CustomElementRegistrationContext.cpp |
diff --git a/Source/core/dom/CustomElementRegistrationContext.cpp b/Source/core/dom/CustomElementRegistrationContext.cpp |
index a45407570b63efbc30634a8fc8331b05ad3d003e..4ed6abf6a964051b8bb90eb073f30e66906b93d4 100644 |
--- a/Source/core/dom/CustomElementRegistrationContext.cpp |
+++ b/Source/core/dom/CustomElementRegistrationContext.cpp |
@@ -145,7 +145,6 @@ PassRefPtr<Element> ActiveRegistrationContext::createCustomTagElement(Document* |
return Element::create(tagName, document); |
} |
- element->setIsCustomElement(); |
resolve(element.get()); |
return element.release(); |
} |
@@ -157,8 +156,6 @@ void ActiveRegistrationContext::didGiveTypeExtension(Element* element) |
void ActiveRegistrationContext::resolve(Element* element) |
{ |
- ASSERT(element->isCustomElement()); |
- ASSERT(!element->isUpgradedCustomElement()); |
const CustomElementDescriptor& descriptor = describe(element); |
CustomElementDefinition* definition = m_registry.find(descriptor); |
if (definition) |
@@ -169,16 +166,19 @@ void ActiveRegistrationContext::resolve(Element* element) |
void ActiveRegistrationContext::didResolveElement(CustomElementDefinition* definition, Element* element) |
{ |
+ element->setCustomElementState(Element::Defined); |
CustomElementCallbackScheduler::scheduleCreatedCallback(definition->callbacks(), element); |
} |
void ActiveRegistrationContext::didCreateUnresolvedElement(const CustomElementDescriptor& descriptor, Element* element) |
{ |
+ element->setCustomElementState(Element::UpgradeCandidate); |
m_candidates.add(descriptor, element); |
} |
CustomElementDefinition* ActiveRegistrationContext::definitionFor(Element* element) const |
{ |
+ ASSERT(element->customElementState() == Element::Defined || element->customElementState() == Element::Upgraded); |
ASSERT(element->document()->registrationContext() == this); |
const CustomElementDescriptor& descriptor = describe(element); |
return m_registry.find(descriptor); |
@@ -186,21 +186,21 @@ CustomElementDefinition* ActiveRegistrationContext::definitionFor(Element* eleme |
void ActiveRegistrationContext::customElementAttributeDidChange(Element* element, const AtomicString& name, const AtomicString& oldValue, const AtomicString& newValue) |
{ |
- ASSERT(element->isUpgradedCustomElement()); |
+ ASSERT(element->customElementState() == Element::Upgraded); |
CustomElementDefinition* definition = definitionFor(element); |
CustomElementCallbackScheduler::scheduleAttributeChangedCallback(definition->callbacks(), element, name, oldValue, newValue); |
} |
void ActiveRegistrationContext::customElementDidEnterDocument(Element* element) |
{ |
- ASSERT(element->isUpgradedCustomElement()); |
+ ASSERT(element->customElementState() == Element::Upgraded); |
CustomElementDefinition* definition = definitionFor(element); |
CustomElementCallbackScheduler::scheduleEnteredDocumentCallback(definition->callbacks(), element); |
} |
void ActiveRegistrationContext::customElementDidLeaveDocument(Element* element) |
{ |
- ASSERT(element->isUpgradedCustomElement()); |
+ ASSERT(element->customElementState() == Element::Upgraded); |
CustomElementDefinition* definition = definitionFor(element); |
CustomElementCallbackScheduler::scheduleLeftDocumentCallback(definition->callbacks(), element); |
} |
@@ -246,8 +246,6 @@ bool CustomElementRegistrationContext::isCustomTagName(const AtomicString& local |
CustomElementDescriptor CustomElementRegistrationContext::describe(Element* element) |
{ |
- ASSERT(element->isCustomElement()); |
- |
// If an element has a custom tag name it takes precedence over |
// the "is" attribute (if any). |
const AtomicString& type = isCustomTagName(element->localName()) |
@@ -275,7 +273,6 @@ void CustomElementRegistrationContext::setTypeExtension(Element* element, const |
TypeExtensionMap::AddResult result = typeExtensionMap()->add(element, type); |
ASSERT(result.isNewEntry); // Type extensions should only be set once |
- element->setIsCustomElement(); |
element->document()->registrationContext()->didGiveTypeExtension(element); |
} |