Changeset 139169 in webkit


Ignore:
Timestamp:
Jan 8, 2013 11:41:38 PM (11 years ago)
Author:
tasak@google.com
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.

Location:
trunk/LayoutTests
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r139168 r139169  
     12013-01-08  Takashi Sakamoto  <tasak@google.com>
     2
     3        Use window.WebKitShadowRoot for checking whether a node is shadow root or not.
     4        https://bugs.webkit.org/show_bug.cgi?id=88748
     5
     6        Reviewed by Hajime Morita.
     7
     8        * fast/dom/shadow/resources/shadow-dom.js:
     9        (isShadowRoot):
     10        Modified to use window.WebKitShadowRoot instead of node name.
     11        * resources/dump-as-markup.js:
     12        (Markup.get var):
     13        Added shadowRootList which has information about whether the given node
     14        is a shadow root or not.
     15        (Markup):
     16        (Markup._get):
     17        If the given element is a document fragment and its address is in
     18        shadowRootList, use "<shadow:root>".
     19        (Markup._getShadowHostIfPossible):
     20        Only this method uses internals.shadowRoot and obtains the youngest
     21        shadow root from the given node. So update shadowRootList in this
     22        method.
     23
    1242013-01-08  Stephanie Lewis  <slewis@apple.com>
    225
  • trunk/LayoutTests/fast/dom/shadow/resources/shadow-dom.js

    r138386 r139169  
    5353function isShadowRoot(node)
    5454{
    55     // FIXME: window.internals should have internals.isShadowRoot(node).
    56     return node.nodeName == "#shadow-root";
     55    return node instanceof window.WebKitShadowRoot;
    5756}
    5857
  • trunk/LayoutTests/resources/dump-as-markup.js

    r138386 r139169  
    127127Markup.get = function(node)
    128128{
    129     var markup = Markup._getShadowHostIfPossible(node, 0);
     129    var shadowRootList = {};
     130    var markup = Markup._getShadowHostIfPossible(node, 0, shadowRootList);
    130131    if (markup)
    131132        return markup.substring(1);
     
    136137    // Don't print any markup for the root node.
    137138    for (var i = 0, len = node.childNodes.length; i < len; i++)
    138         markup += Markup._get(node.childNodes[i], 0);
     139        markup += Markup._get(node.childNodes[i], 0, shadowRootList);
    139140    return markup.substring(1);
    140141}
     
    142143// Returns the markup for the given node. To be used for cases where a test needs
    143144// to get the markup but not clobber the whole page.
    144 Markup._get = function(node, depth)
     145Markup._get = function(node, depth, shadowRootList)
    145146{
    146147    var str = Markup._indent(depth);
     
    162163            str += '<!--  -->';
    163164        }
    164         break;
     165         break;
    165166
    166167    case Node.PROCESSING_INSTRUCTION_NODE:
     
    219220        break;
    220221    case Node.DOCUMENT_FRAGMENT_NODE:
    221         if (node.nodeName == "#shadow-root")
     222        if (shadowRootList && internals.address(node) in shadowRootList)
    222223          str += "<shadow:root>";
    223224        else
     
    228229    // HTML Template elements serialize their content DocumentFragment, and NOT their children.
    229230    if (node.namespaceURI = 'http://www.w3.org/1999/xhtml' && node.tagName == 'TEMPLATE') {
    230         str += Markup._get(node.content, depth + 1);
     231        str += Markup._get(node.content, depth + 1, shadowRootList);
    231232    } else {
    232233        for (var i = 0, len = node.childNodes.length; i < len; i++) {
     
    235236                str += Markup._indent(depth + 1) + selection;
    236237   
    237             str += Markup._get(node.childNodes[i], depth + 1);
    238         }
    239     }
    240    
    241     str += Markup._getShadowHostIfPossible(node, depth);
     238            str += Markup._get(node.childNodes[i], depth + 1, shadowRootList);
     239        }
     240    }
     241   
     242    str += Markup._getShadowHostIfPossible(node, depth, shadowRootList);
    242243   
    243244    var selection = Markup._getSelectionMarker(node, i);
     
    248249}
    249250
    250 Markup._getShadowHostIfPossible = function (node, depth)
     251Markup._getShadowHostIfPossible = function (node, depth, shadowRootList)
    251252{
    252253    if (!Markup._useHTML5libOutputFormat && node.nodeType == Node.ELEMENT_NODE && window.internals) {
    253254        var root = window.internals.shadowRoot(node);
    254         if (root)
    255             return Markup._get(root, depth + 1);
     255        if (root) {
     256            shadowRootList[internals.address(root)] = true;
     257            return Markup._get(root, depth + 1, shadowRootList);
     258        }
    256259    }
    257260    return '';
Note: See TracChangeset for help on using the changeset viewer.