Title: [139169] trunk/LayoutTests
Revision
139169
Author
ta...@google.com
Date
2013-01-08 23:41:38 -0800 (Tue, 08 Jan 2013)

Log Message

Use window.WebKitShadowRoot for checking whether a node is shadow root or not.
https://bugs.webkit.org/show_bug.cgi?id=88748

Reviewed by Hajime Morita.

* fast/dom/shadow/resources/shadow-dom.js:
(isShadowRoot):
Modified to use window.WebKitShadowRoot instead of node name.
* resources/dump-as-markup.js:
(Markup.get var):
Added shadowRootList which has information about whether the given node
is a shadow root or not.
(Markup):
(Markup._get):
If the given element is a document fragment and its address is in
shadowRootList, use "<shadow:root>".
(Markup._getShadowHostIfPossible):
Only this method uses internals.shadowRoot and obtains the youngest
shadow root from the given node. So update shadowRootList in this
method.

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (139168 => 139169)


--- trunk/LayoutTests/ChangeLog	2013-01-09 07:12:00 UTC (rev 139168)
+++ trunk/LayoutTests/ChangeLog	2013-01-09 07:41:38 UTC (rev 139169)
@@ -1,3 +1,26 @@
+2013-01-08  Takashi Sakamoto  <ta...@google.com>
+
+        Use window.WebKitShadowRoot for checking whether a node is shadow root or not.
+        https://bugs.webkit.org/show_bug.cgi?id=88748
+
+        Reviewed by Hajime Morita.
+
+        * fast/dom/shadow/resources/shadow-dom.js:
+        (isShadowRoot):
+        Modified to use window.WebKitShadowRoot instead of node name.
+        * resources/dump-as-markup.js:
+        (Markup.get var):
+        Added shadowRootList which has information about whether the given node
+        is a shadow root or not.
+        (Markup):
+        (Markup._get):
+        If the given element is a document fragment and its address is in
+        shadowRootList, use "<shadow:root>".
+        (Markup._getShadowHostIfPossible):
+        Only this method uses internals.shadowRoot and obtains the youngest
+        shadow root from the given node. So update shadowRootList in this
+        method.
+
 2013-01-08  Stephanie Lewis  <sle...@apple.com>
 
         Assertion Failure in WebCore::RenderLayerCompositor::updateCompositingLayers.

Modified: trunk/LayoutTests/fast/dom/shadow/resources/shadow-dom.js (139168 => 139169)


--- trunk/LayoutTests/fast/dom/shadow/resources/shadow-dom.js	2013-01-09 07:12:00 UTC (rev 139168)
+++ trunk/LayoutTests/fast/dom/shadow/resources/shadow-dom.js	2013-01-09 07:41:38 UTC (rev 139169)
@@ -52,8 +52,7 @@
 
 function isShadowRoot(node)
 {
-    // FIXME: window.internals should have internals.isShadowRoot(node).
-    return node.nodeName == "#shadow-root";
+    return node instanceof window.WebKitShadowRoot;
 }
 
 function isIframeElement(element)

Modified: trunk/LayoutTests/resources/dump-as-markup.js (139168 => 139169)


--- trunk/LayoutTests/resources/dump-as-markup.js	2013-01-09 07:12:00 UTC (rev 139168)
+++ trunk/LayoutTests/resources/dump-as-markup.js	2013-01-09 07:41:38 UTC (rev 139169)
@@ -126,7 +126,8 @@
 
 Markup.get = function(node)
 {
-    var markup = Markup._getShadowHostIfPossible(node, 0);
+    var shadowRootList = {};
+    var markup = Markup._getShadowHostIfPossible(node, 0, shadowRootList);
     if (markup)
         return markup.substring(1);
 
@@ -135,13 +136,13 @@
 
     // Don't print any markup for the root node.
     for (var i = 0, len = node.childNodes.length; i < len; i++)
-        markup += Markup._get(node.childNodes[i], 0);
+        markup += Markup._get(node.childNodes[i], 0, shadowRootList);
     return markup.substring(1);
 }
 
 // Returns the markup for the given node. To be used for cases where a test needs
 // to get the markup but not clobber the whole page.
-Markup._get = function(node, depth)
+Markup._get = function(node, depth, shadowRootList)
 {
     var str = Markup._indent(depth);
 
@@ -161,7 +162,7 @@
         } catch (e) {
             str += '<!--  -->';
         }
-        break;
+         break;
 
     case Node.PROCESSING_INSTRUCTION_NODE:
         str += '<?' + node.nodeName + node.nodeValue + '>';
@@ -218,7 +219,7 @@
 
         break;
     case Node.DOCUMENT_FRAGMENT_NODE:
-        if (node.nodeName == "#shadow-root")
+        if (shadowRootList && internals.address(node) in shadowRootList)
           str += "<shadow:root>";
         else
           str += "#document-fragment";
@@ -227,18 +228,18 @@
     
     // HTML Template elements serialize their content DocumentFragment, and NOT their children.
     if (node.namespaceURI = 'http://www.w3.org/1999/xhtml' && node.tagName == 'TEMPLATE') {
-        str += Markup._get(node.content, depth + 1);
+        str += Markup._get(node.content, depth + 1, shadowRootList);
     } else {
         for (var i = 0, len = node.childNodes.length; i < len; i++) {
             var selection = Markup._getSelectionMarker(node, i);
             if (selection)
                 str += Markup._indent(depth + 1) + selection;
     
-            str += Markup._get(node.childNodes[i], depth + 1);
+            str += Markup._get(node.childNodes[i], depth + 1, shadowRootList);
         }
     }
     
-    str += Markup._getShadowHostIfPossible(node, depth);
+    str += Markup._getShadowHostIfPossible(node, depth, shadowRootList);
     
     var selection = Markup._getSelectionMarker(node, i);
     if (selection)
@@ -247,12 +248,14 @@
     return str;
 }
 
-Markup._getShadowHostIfPossible = function (node, depth)
+Markup._getShadowHostIfPossible = function (node, depth, shadowRootList)
 {
     if (!Markup._useHTML5libOutputFormat && node.nodeType == Node.ELEMENT_NODE && window.internals) {
         var root = window.internals.shadowRoot(node);
-        if (root)
-            return Markup._get(root, depth + 1);
+        if (root) {
+            shadowRootList[internals.address(root)] = true;
+            return Markup._get(root, depth + 1, shadowRootList);
+        }
     }
     return '';
 }
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to