Title: [133428] trunk
Revision
133428
Author
shin...@chromium.org
Date
2012-11-04 19:04:57 -0800 (Sun, 04 Nov 2012)

Log Message

[Shadow] Implement custom pseudo-elements styling
https://bugs.webkit.org/show_bug.cgi?id=100812

Reviewed by Hajime Morita.

Source/WebCore:

Instead of using ElementRareData::m_shadowPseudoId, we use 'pseudo' attribute.

Later we would like to remove Element::shadowPseudoId and Element::setShadowPseudoId
and use pseudo()/setPseudo() instead (Bug 101171).

Test: fast/dom/shadow/styling-pseudo-attribute.html

* dom/Element.cpp:
(WebCore::Element::shadowPseudoId):
(WebCore::Element::setShadowPseudoId):
* dom/ElementRareData.cpp:
(WebCore::ElementRareData::reportMemoryUsage):
* dom/ElementRareData.h:
(ElementRareData):

LayoutTests:

* fast/dom/shadow/styling-pseudo-attribute-expected.html: Added.
* fast/dom/shadow/styling-pseudo-attribute.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (133427 => 133428)


--- trunk/LayoutTests/ChangeLog	2012-11-04 23:16:13 UTC (rev 133427)
+++ trunk/LayoutTests/ChangeLog	2012-11-05 03:04:57 UTC (rev 133428)
@@ -1,3 +1,13 @@
+2012-11-04  Shinya Kawanaka  <shin...@chromium.org>
+
+        [Shadow] Implement custom pseudo-elements styling
+        https://bugs.webkit.org/show_bug.cgi?id=100812
+
+        Reviewed by Hajime Morita.
+
+        * fast/dom/shadow/styling-pseudo-attribute-expected.html: Added.
+        * fast/dom/shadow/styling-pseudo-attribute.html: Added.
+
 2012-11-04  Sheriff Bot  <webkit.review....@gmail.com>
 
         Unreviewed, rolling out r133416.

Added: trunk/LayoutTests/fast/dom/shadow/styling-pseudo-attribute-expected.html (0 => 133428)


--- trunk/LayoutTests/fast/dom/shadow/styling-pseudo-attribute-expected.html	                        (rev 0)
+++ trunk/LayoutTests/fast/dom/shadow/styling-pseudo-attribute-expected.html	2012-11-05 03:04:57 UTC (rev 133428)
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<style>
+#target {
+    color: red;
+}
+</style>
+<div><div id="target">foo bar</div></div>
+
+</html>

Added: trunk/LayoutTests/fast/dom/shadow/styling-pseudo-attribute.html (0 => 133428)


--- trunk/LayoutTests/fast/dom/shadow/styling-pseudo-attribute.html	                        (rev 0)
+++ trunk/LayoutTests/fast/dom/shadow/styling-pseudo-attribute.html	2012-11-05 03:04:57 UTC (rev 133428)
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<style>
+#host1::x-foo {
+    color: red;
+}
+</style>
+<div id="host1"></div>
+
+<script>
+var shadowRoot1 = new WebKitShadowRoot(host1);
+var div = document.createElement('div');
+div.setAttribute('pseudo', 'x-foo');
+div.appendChild(document.createTextNode('foo bar'));
+
+shadowRoot1.appendChild(div);
+</script>
+
+
+</html>

Modified: trunk/Source/WebCore/ChangeLog (133427 => 133428)


--- trunk/Source/WebCore/ChangeLog	2012-11-04 23:16:13 UTC (rev 133427)
+++ trunk/Source/WebCore/ChangeLog	2012-11-05 03:04:57 UTC (rev 133428)
@@ -1,3 +1,25 @@
+2012-11-04  Shinya Kawanaka  <shin...@chromium.org>
+
+        [Shadow] Implement custom pseudo-elements styling
+        https://bugs.webkit.org/show_bug.cgi?id=100812
+
+        Reviewed by Hajime Morita.
+
+        Instead of using ElementRareData::m_shadowPseudoId, we use 'pseudo' attribute.
+
+        Later we would like to remove Element::shadowPseudoId and Element::setShadowPseudoId
+        and use pseudo()/setPseudo() instead (Bug 101171).
+
+        Test: fast/dom/shadow/styling-pseudo-attribute.html
+
+        * dom/Element.cpp:
+        (WebCore::Element::shadowPseudoId):
+        (WebCore::Element::setShadowPseudoId):
+        * dom/ElementRareData.cpp:
+        (WebCore::ElementRareData::reportMemoryUsage):
+        * dom/ElementRareData.h:
+        (ElementRareData):
+
 2012-11-04  Kent Tamura  <tk...@chromium.org>
 
         BaseChooserOnlyDateAndTimeInputType should have BaseClickableWithKeyInputType behavior

Modified: trunk/Source/WebCore/dom/Element.cpp (133427 => 133428)


--- trunk/Source/WebCore/dom/Element.cpp	2012-11-04 23:16:13 UTC (rev 133427)
+++ trunk/Source/WebCore/dom/Element.cpp	2012-11-05 03:04:57 UTC (rev 133428)
@@ -1354,20 +1354,17 @@
 
 const AtomicString& Element::shadowPseudoId() const
 {
-    return hasRareData() ? elementRareData()->m_shadowPseudoId : nullAtom;
+    return pseudo();
 }
 
 void Element::setShadowPseudoId(const AtomicString& id, ExceptionCode& ec)
 {
-    if (!hasRareData() && id == nullAtom)
-        return;
-
     if (!CSSSelector::isUnknownPseudoType(id)) {
         ec = SYNTAX_ERR;
         return;
     }
 
-    ensureElementRareData()->m_shadowPseudoId = id;
+    setPseudo(id);
 }
 
 bool Element::childTypeAllowed(NodeType type) const

Modified: trunk/Source/WebCore/dom/ElementRareData.cpp (133427 => 133428)


--- trunk/Source/WebCore/dom/ElementRareData.cpp	2012-11-04 23:16:13 UTC (rev 133427)
+++ trunk/Source/WebCore/dom/ElementRareData.cpp	2012-11-05 03:04:57 UTC (rev 133428)
@@ -42,7 +42,6 @@
     NodeRareData::reportMemoryUsage(memoryObjectInfo);
     info.addMember(m_cachedCollections);
     info.addMember(m_computedStyle);
-    info.addMember(m_shadowPseudoId);
 
     info.addMember(m_datasetDOMStringMap);
     info.addMember(m_classList);

Modified: trunk/Source/WebCore/dom/ElementRareData.h (133427 => 133428)


--- trunk/Source/WebCore/dom/ElementRareData.h	2012-11-04 23:16:13 UTC (rev 133427)
+++ trunk/Source/WebCore/dom/ElementRareData.h	2012-11-05 03:04:57 UTC (rev 133428)
@@ -114,7 +114,6 @@
 
     LayoutSize m_minimumSizeForResizing;
     RefPtr<RenderStyle> m_computedStyle;
-    AtomicString m_shadowPseudoId;
 
     OwnPtr<DatasetDOMStringMap> m_datasetDOMStringMap;
     OwnPtr<ClassList> m_classList;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to