Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(256)

Unified Diff: third_party/WebKit/Source/core/dom/Document.cpp

Issue 2334223005: 2nd arg of document.createElement should be an object (Closed)
Patch Set: Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/dom/Document.cpp
diff --git a/third_party/WebKit/Source/core/dom/Document.cpp b/third_party/WebKit/Source/core/dom/Document.cpp
index 19a0e0def294cb5053921d7d5bb703e3e5fb2cef..e4410476034f527f712afa6d24650d097d33f6b4 100644
--- a/third_party/WebKit/Source/core/dom/Document.cpp
+++ b/third_party/WebKit/Source/core/dom/Document.cpp
@@ -28,6 +28,7 @@
#include "core/dom/Document.h"
#include "bindings/core/v8/DOMDataStore.h"
+#include "bindings/core/v8/ElementCreationOptionsOrString.h"
#include "bindings/core/v8/ExceptionMessages.h"
#include "bindings/core/v8/ExceptionState.h"
#include "bindings/core/v8/ExceptionStatePlaceholder.h"
@@ -73,6 +74,7 @@
#include "core/dom/DocumentParserTiming.h"
#include "core/dom/DocumentType.h"
#include "core/dom/Element.h"
+#include "core/dom/ElementCreationOptions.h"
#include "core/dom/ElementDataCache.h"
#include "core/dom/ElementRegistrationOptions.h"
#include "core/dom/ElementTraversal.h"
@@ -660,7 +662,7 @@ Element* Document::createElement(const AtomicString& name, ExceptionState& excep
return Element::create(QualifiedName(nullAtom, name, nullAtom), this);
}
-Element* Document::createElement(const AtomicString& localName, const AtomicString& typeExtension, ExceptionState& exceptionState)
+Element* Document::createElement(const AtomicString& localName, const ElementCreationOptionsOrString& optionsOrString, ExceptionState& exceptionState)
{
if (!isValidName(localName)) {
exceptionState.throwDOMException(InvalidCharacterError, "The tag name provided ('" + localName + "') is not a valid name.");
@@ -679,8 +681,12 @@ Element* Document::createElement(const AtomicString& localName, const AtomicStri
return nullptr;
}
- if (!typeExtension.isEmpty())
- V0CustomElementRegistrationContext::setIsAttributeAndTypeExtension(element, typeExtension);
+ if (optionsOrString.isString() && !optionsOrString.getAsString().isEmpty()) {
dominicc (has gone to gerrit) 2016/09/15 01:19:24 I wonder if the existing code does toString on non
Anton Obzhirov 2016/09/15 09:25:20 Will check, good point, will need to figure out ho
+ V0CustomElementRegistrationContext::setIsAttributeAndTypeExtension(element, AtomicString(optionsOrString.getAsString()));
+ Deprecation::countDeprecation(this, UseCounter::DocumentCreateElement2ndArg);
+ } else if (optionsOrString.isElementCreationOptions() && !optionsOrString.getAsElementCreationOptions().is().isEmpty()) {
+ V0CustomElementRegistrationContext::setIsAttributeAndTypeExtension(element, AtomicString(optionsOrString.getAsElementCreationOptions().is()));
+ }
return element;
}
@@ -711,7 +717,7 @@ Element* Document::createElementNS(const AtomicString& namespaceURI, const Atomi
return createElement(qName, CreatedByCreateElement);
}
-Element* Document::createElementNS(const AtomicString& namespaceURI, const AtomicString& qualifiedName, const AtomicString& typeExtension, ExceptionState& exceptionState)
+Element* Document::createElementNS(const AtomicString& namespaceURI, const AtomicString& qualifiedName, const ElementCreationOptionsOrString& optionsOrString, ExceptionState& exceptionState)
{
QualifiedName qName(createQualifiedName(namespaceURI, qualifiedName, exceptionState));
if (qName == QualifiedName::null())
@@ -725,8 +731,12 @@ Element* Document::createElementNS(const AtomicString& namespaceURI, const Atomi
else
element = createElement(qName, CreatedByCreateElement);
- if (!typeExtension.isEmpty())
- V0CustomElementRegistrationContext::setIsAttributeAndTypeExtension(element, typeExtension);
+ if (optionsOrString.isString() && !optionsOrString.getAsString().isEmpty()) {
+ V0CustomElementRegistrationContext::setIsAttributeAndTypeExtension(element, AtomicString(optionsOrString.getAsString()));
+ Deprecation::countDeprecation(this, UseCounter::DocumentCreateElement2ndArg);
+ } else if (optionsOrString.isElementCreationOptions() && !optionsOrString.getAsElementCreationOptions().is().isEmpty()) {
+ V0CustomElementRegistrationContext::setIsAttributeAndTypeExtension(element, AtomicString(optionsOrString.getAsElementCreationOptions().is()));
+ }
return element;
}

Powered by Google App Engine
This is Rietveld 408576698