Title: [119060] trunk/Source/WebCore
- Revision
- 119060
- Author
- [email protected]
- Date
- 2012-05-30 23:23:53 -0700 (Wed, 30 May 2012)
Log Message
Implement CSSParser::determineNameInNamespace() as a helper function for CSSGrammar.y
https://bugs.webkit.org/show_bug.cgi?id=87799
Reviewed by Darin Adler.
As pointed out by darin@ in https://bugs.webkit.org/show_bug.cgi?id=87627#c12,
we should avoid repeating the following code in CSSGrammar.y:
if (p->m_styleSheet)
$$->setTag(QualifiedName(namespacePrefix, $2, p->m_styleSheet->determineNamespace(namespacePrefix)));
else
$$->setTag(QualifiedName(namespacePrefix, $2, p->m_defaultNamespace));
This patch implements CSSParser::determineNameInNamespace() as a helper function
and replaces the above code.
Tests: fast/dom/SelectorAPI/*. No change in test results.
* css/CSSGrammar.y:
* css/CSSParser.cpp:
(WebCore::CSSParser::determineNameInNamespace):
(WebCore):
* css/CSSParser.h:
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (119059 => 119060)
--- trunk/Source/WebCore/ChangeLog 2012-05-31 06:15:17 UTC (rev 119059)
+++ trunk/Source/WebCore/ChangeLog 2012-05-31 06:23:53 UTC (rev 119060)
@@ -1,3 +1,29 @@
+2012-05-30 Kentaro Hara <[email protected]>
+
+ Implement CSSParser::determineNameInNamespace() as a helper function for CSSGrammar.y
+ https://bugs.webkit.org/show_bug.cgi?id=87799
+
+ Reviewed by Darin Adler.
+
+ As pointed out by darin@ in https://bugs.webkit.org/show_bug.cgi?id=87627#c12,
+ we should avoid repeating the following code in CSSGrammar.y:
+
+ if (p->m_styleSheet)
+ $$->setTag(QualifiedName(namespacePrefix, $2, p->m_styleSheet->determineNamespace(namespacePrefix)));
+ else
+ $$->setTag(QualifiedName(namespacePrefix, $2, p->m_defaultNamespace));
+
+ This patch implements CSSParser::determineNameInNamespace() as a helper function
+ and replaces the above code.
+
+ Tests: fast/dom/SelectorAPI/*. No change in test results.
+
+ * css/CSSGrammar.y:
+ * css/CSSParser.cpp:
+ (WebCore::CSSParser::determineNameInNamespace):
+ (WebCore):
+ * css/CSSParser.h:
+
2012-05-30 Patrick Gansterer <[email protected]>
Build fix for WinCE after r117697.
Modified: trunk/Source/WebCore/css/CSSGrammar.y (119059 => 119060)
--- trunk/Source/WebCore/css/CSSGrammar.y 2012-05-31 06:15:17 UTC (rev 119059)
+++ trunk/Source/WebCore/css/CSSGrammar.y 2012-05-31 06:23:53 UTC (rev 119060)
@@ -954,13 +954,9 @@
static_cast<CSSParser*>(parser)->updateSpecifiersWithElementName(nullAtom, starAtom, $$);
}
| namespace_selector element_name {
- AtomicString namespacePrefix = $1;
CSSParser* p = static_cast<CSSParser*>(parser);
$$ = p->createFloatingSelector();
- if (p->m_styleSheet)
- $$->setTag(QualifiedName(namespacePrefix, $2, p->m_styleSheet->determineNamespace(namespacePrefix)));
- else
- $$->setTag(QualifiedName(namespacePrefix, $2, p->m_defaultNamespace));
+ $$->setTag(p->determineNameInNamespace($1, $2));
}
| namespace_selector element_name specifier_list {
$$ = $3;
@@ -1086,23 +1082,15 @@
$$->setValue($6);
}
| '[' maybe_space namespace_selector attr_name ']' {
- AtomicString namespacePrefix = $3;
CSSParser* p = static_cast<CSSParser*>(parser);
$$ = p->createFloatingSelector();
- if (p->m_styleSheet)
- $$->setAttribute(QualifiedName(namespacePrefix, $4, p->m_styleSheet->determineNamespace(namespacePrefix)));
- else
- $$->setAttribute(QualifiedName(namespacePrefix, $4, p->m_defaultNamespace));
+ $$->setAttribute(p->determineNameInNamespace($3, $4));
$$->setMatch(CSSSelector::Set);
}
| '[' maybe_space namespace_selector attr_name match maybe_space ident_or_string maybe_space ']' {
- AtomicString namespacePrefix = $3;
CSSParser* p = static_cast<CSSParser*>(parser);
$$ = p->createFloatingSelector();
- if (p->m_styleSheet)
- $$->setAttribute(QualifiedName(namespacePrefix, $4, p->m_styleSheet->determineNamespace(namespacePrefix)));
- else
- $$->setAttribute(QualifiedName(namespacePrefix, $4, p->m_defaultNamespace));
+ $$->setAttribute(p->determineNameInNamespace($3, $4));
$$->setMatch((CSSSelector::Match)$5);
$$->setValue($7);
}
Modified: trunk/Source/WebCore/css/CSSParser.cpp (119059 => 119060)
--- trunk/Source/WebCore/css/CSSParser.cpp 2012-05-31 06:15:17 UTC (rev 119059)
+++ trunk/Source/WebCore/css/CSSParser.cpp 2012-05-31 06:23:53 UTC (rev 119060)
@@ -9192,6 +9192,13 @@
m_defaultNamespace = uri;
}
+QualifiedName CSSParser::determineNameInNamespace(const AtomicString& prefix, const AtomicString& localName)
+{
+ if (!m_styleSheet)
+ return QualifiedName(prefix, localName, m_defaultNamespace);
+ return QualifiedName(prefix, localName, m_styleSheet->determineNamespace(prefix));
+}
+
void CSSParser::updateSpecifiersWithElementName(const AtomicString& namespacePrefix, const AtomicString& elementName, CSSParserSelector* specifiers)
{
AtomicString determinedNamespace = namespacePrefix != nullAtom && m_styleSheet ? m_styleSheet->determineNamespace(namespacePrefix) : m_defaultNamespace;
Modified: trunk/Source/WebCore/css/CSSParser.h (119059 => 119060)
--- trunk/Source/WebCore/css/CSSParser.h 2012-05-31 06:15:17 UTC (rev 119059)
+++ trunk/Source/WebCore/css/CSSParser.h 2012-05-31 06:23:53 UTC (rev 119060)
@@ -267,6 +267,7 @@
PassOwnPtr<MediaQuery> sinkFloatingMediaQuery(MediaQuery*);
void addNamespace(const AtomicString& prefix, const AtomicString& uri);
+ QualifiedName determineNameInNamespace(const AtomicString& prefix, const AtomicString& localName);
void updateSpecifiersWithElementName(const AtomicString& namespacePrefix, const AtomicString& elementName, CSSParserSelector*);
CSSParserSelector* updateSpecifiers(CSSParserSelector*, CSSParserSelector*);
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes