Index: Source/core/dom/custom/CustomElement.cpp |
diff --git a/Source/core/dom/custom/CustomElement.cpp b/Source/core/dom/custom/CustomElement.cpp |
index 81443a6c9fe2356d4b3c4ef14bd870419b4082ae..b54fd5b541bfe1c6ea21f4464c7968a41e3bca7e 100644 |
--- a/Source/core/dom/custom/CustomElement.cpp |
+++ b/Source/core/dom/custom/CustomElement.cpp |
@@ -71,7 +71,7 @@ bool CustomElement::isValidName(const AtomicString& name, NameSet validNames) |
if ((validNames & EmbedderNames) && kNotFound != embedderCustomElementNames().find(name)) |
return Document::isValidName(name); |
- if ((validNames & StandardNames) && kNotFound != name.find('-')) { |
+ if ((validNames & StandardNames) && kNotFound != name.find('-') && kNotFound == name.find(':')) { |
dglazkov
2014/10/16 17:41:26
This change is good.
|
DEFINE_STATIC_LOCAL(Vector<AtomicString>, reservedNames, ()); |
if (reservedNames.isEmpty()) { |
reservedNames.append(MathMLNames::annotation_xmlTag.localName()); |
@@ -85,8 +85,15 @@ bool CustomElement::isValidName(const AtomicString& name, NameSet validNames) |
#endif |
} |
- if (kNotFound == reservedNames.find(name)) |
+ if (kNotFound == reservedNames.find(name)) { |
+ if (!name.string().is8Bit()) { |
+ const UChar32 c = name.characters16()[0]; |
+ if (c == 0x0B83 || c == 0x0F88 || c == 0x0F89 || c == 0x0F8A || c == 0x0F8B) |
dglazkov
2014/10/07 15:13:13
This set of character comparisons seems out of pla
dglazkov
2014/10/16 17:41:26
What I meant to say here is that you should not be
|
+ return false; |
+ } |
+ |
return Document::isValidName(name.string()); |
+ } |
} |
return false; |