Title: [89989] trunk/Source/WebCore
- Revision
- 89989
- Author
- [email protected]
- Date
- 2011-06-28 23:05:16 -0700 (Tue, 28 Jun 2011)
Log Message
2011-06-28 Dimitri Glazkov <[email protected]>
Reviewed by Kent Tamura.
Store shadowPseudoId in ElementRareData.
https://bugs.webkit.org/show_bug.cgi?id=63604
No new tests, because the code isn't yet used.
* css/CSSSelector.cpp:
(WebCore::CSSSelector::isUnknownPseudoType): Added convenience helper.
* css/CSSSelector.h: Added decl.
* dom/Element.cpp:
(WebCore::Element::shadowPseudoId): Changed to use ElementRareData.
(WebCore::Element::setShadowPseudoId): Ditto.
* dom/Element.h: Added decls.
* dom/ElementRareData.h: Added a member to keep shadowPseudoId.
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (89988 => 89989)
--- trunk/Source/WebCore/ChangeLog 2011-06-29 06:01:53 UTC (rev 89988)
+++ trunk/Source/WebCore/ChangeLog 2011-06-29 06:05:16 UTC (rev 89989)
@@ -1,3 +1,21 @@
+2011-06-28 Dimitri Glazkov <[email protected]>
+
+ Reviewed by Kent Tamura.
+
+ Store shadowPseudoId in ElementRareData.
+ https://bugs.webkit.org/show_bug.cgi?id=63604
+
+ No new tests, because the code isn't yet used.
+
+ * css/CSSSelector.cpp:
+ (WebCore::CSSSelector::isUnknownPseudoType): Added convenience helper.
+ * css/CSSSelector.h: Added decl.
+ * dom/Element.cpp:
+ (WebCore::Element::shadowPseudoId): Changed to use ElementRareData.
+ (WebCore::Element::setShadowPseudoId): Ditto.
+ * dom/Element.h: Added decls.
+ * dom/ElementRareData.h: Added a member to keep shadowPseudoId.
+
2011-06-28 Kenichi Ishibashi <[email protected]>
Reviewed by Tony Chang.
Modified: trunk/Source/WebCore/css/CSSSelector.cpp (89988 => 89989)
--- trunk/Source/WebCore/css/CSSSelector.cpp 2011-06-29 06:01:53 UTC (rev 89988)
+++ trunk/Source/WebCore/css/CSSSelector.cpp 2011-06-29 06:05:16 UTC (rev 89989)
@@ -392,6 +392,11 @@
return slot == nameToPseudoType->end() ? PseudoUnknown : slot->second;
}
+bool CSSSelector::isUnknownPseudoType(const AtomicString& name)
+{
+ return parsePseudoType(name) == PseudoUnknown;
+}
+
void CSSSelector::extractPseudoType() const
{
if (m_match != PseudoClass && m_match != PseudoElement && m_match != PagePseudoClass)
Modified: trunk/Source/WebCore/css/CSSSelector.h (89988 => 89989)
--- trunk/Source/WebCore/css/CSSSelector.h 2011-06-29 06:01:53 UTC (rev 89988)
+++ trunk/Source/WebCore/css/CSSSelector.h 2011-06-29 06:05:16 UTC (rev 89989)
@@ -213,6 +213,7 @@
}
static PseudoType parsePseudoType(const AtomicString&);
+ static bool isUnknownPseudoType(const AtomicString&);
static PseudoId pseudoId(PseudoType);
// Selectors are kept in an array by CSSSelectorList. The next component of the selector is
Modified: trunk/Source/WebCore/dom/Element.cpp (89988 => 89989)
--- trunk/Source/WebCore/dom/Element.cpp 2011-06-29 06:01:53 UTC (rev 89988)
+++ trunk/Source/WebCore/dom/Element.cpp 2011-06-29 06:05:16 UTC (rev 89989)
@@ -1234,6 +1234,24 @@
}
}
+const AtomicString& Element::shadowPseudoId() const
+{
+ return hasRareData() ? rareData()->m_shadowPseudoId : nullAtom;
+}
+
+void Element::setShadowPseudoId(const AtomicString& id, ExceptionCode& ec)
+{
+ if (!hasRareData() && id == nullAtom)
+ return;
+
+ if (!CSSSelector::isUnknownPseudoType(id)) {
+ ec = SYNTAX_ERR;
+ return;
+ }
+
+ ensureRareData()->m_shadowPseudoId = id;
+}
+
bool Element::childTypeAllowed(NodeType type) const
{
switch (type) {
Modified: trunk/Source/WebCore/dom/Element.h (89988 => 89989)
--- trunk/Source/WebCore/dom/Element.h 2011-06-29 06:01:53 UTC (rev 89988)
+++ trunk/Source/WebCore/dom/Element.h 2011-06-29 06:05:16 UTC (rev 89989)
@@ -235,6 +235,7 @@
void removeShadowRoot();
virtual const AtomicString& shadowPseudoId() const;
+ void setShadowPseudoId(const AtomicString&, ExceptionCode&);
RenderStyle* computedStyle(PseudoId = NOPSEUDO);
@@ -542,11 +543,6 @@
setAttribute(document()->idAttributeName(), value);
}
-inline const AtomicString& Element::shadowPseudoId() const
-{
- return nullAtom;
-}
-
inline Element* firstElementChild(const ContainerNode* container)
{
ASSERT_ARG(container, container);
Modified: trunk/Source/WebCore/dom/ElementRareData.h (89988 => 89989)
--- trunk/Source/WebCore/dom/ElementRareData.h 2011-06-29 06:01:53 UTC (rev 89988)
+++ trunk/Source/WebCore/dom/ElementRareData.h 2011-06-29 06:05:16 UTC (rev 89989)
@@ -45,6 +45,7 @@
IntSize m_minimumSizeForResizing;
RefPtr<RenderStyle> m_computedStyle;
ShadowRoot* m_shadowRoot;
+ AtomicString m_shadowPseudoId;
OwnPtr<DatasetDOMStringMap> m_datasetDOMStringMap;
OwnPtr<ClassList> m_classList;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes