Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(100)

Side by Side Diff: third_party/WebKit/LayoutTests/imported/wpt/shadow-dom/resources/shadow-dom.js

Issue 2086283003: Update web-platform-tests (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Merge branch 'master' into wpt_import Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 function removeWhiteSpaceOnlyTextNodes(node) 1 function removeWhiteSpaceOnlyTextNodes(node)
2 { 2 {
3 for (var i = 0; i < node.childNodes.length; i++) { 3 for (var i = 0; i < node.childNodes.length; i++) {
4 var child = node.childNodes[i]; 4 var child = node.childNodes[i];
5 if (child.nodeType === Node.TEXT_NODE && child.nodeValue.trim().length == 0) { 5 if (child.nodeType === Node.TEXT_NODE && child.nodeValue.trim().length == 0) {
6 node.removeChild(child); 6 node.removeChild(child);
7 i--; 7 i--;
8 } else if (child.nodeType === Node.ELEMENT_NODE || child.nodeType === Node.D OCUMENT_FRAGMENT_NODE) { 8 } else if (child.nodeType === Node.ELEMENT_NODE || child.nodeType === Node.D OCUMENT_FRAGMENT_NODE) {
9 removeWhiteSpaceOnlyTextNodes(child); 9 removeWhiteSpaceOnlyTextNodes(child);
10 } 10 }
11 } 11 }
12 if (node.shadowRoot) { 12 if (node.shadowRoot) {
13 removeWhiteSpaceOnlyTextNodes(node.shadowRoot); 13 removeWhiteSpaceOnlyTextNodes(node.shadowRoot);
14 } 14 }
15 } 15 }
16 16
17 function convertTemplatesToShadowRootsWithin(node) {
18 var nodes = node.querySelectorAll("template");
19 for (var i = 0; i < nodes.length; ++i) {
20 var template = nodes[i];
21 var mode = template.getAttribute("data-mode");
22 var parent = template.parentNode;
23 parent.removeChild(template);
24 var shadowRoot;
25 if (!mode || mode == 'v0'){
26 shadowRoot = parent.createShadowRoot();
27 } else {
28 shadowRoot = parent.attachShadow({'mode': mode});
29 }
30 var expose = template.getAttribute("data-expose-as");
31 if (expose)
32 window[expose] = shadowRoot;
33 if (template.id)
34 shadowRoot.id = template.id;
35 var fragments = document.importNode(template.content, true);
36 shadowRoot.appendChild(fragments);
37
38 convertTemplatesToShadowRootsWithin(shadowRoot);
39 }
40 }
41
42 function isShadowHost(node)
43 {
44 return node && node.nodeType == Node.ELEMENT_NODE && node.shadowRoot;
45 }
46
47 function isIFrameElement(element)
48 {
49 return element && element.nodeName == 'IFRAME';
50 }
51
52 // Returns node from shadow/iframe tree "path".
53 function getNodeInComposedTree(path)
54 {
55 var ids = path.split('/');
56 var node = document.getElementById(ids[0]);
57 for (var i = 1; node != null && i < ids.length; ++i) {
58 if (isIFrameElement(node))
59 node = node.contentDocument.getElementById(ids[i]);
60 else if (isShadowHost(node))
61 node = node.shadowRoot.getElementById(ids[i]);
62 else
63 return null;
64 }
65 return node;
66 }
67
68 function createTestTree(node) { 17 function createTestTree(node) {
69 18
70 let ids = {}; 19 let ids = {};
71 20
72 function attachShadowFromTemplate(template) { 21 function attachShadowFromTemplate(template) {
73 let parent = template.parentNode; 22 let parent = template.parentNode;
74 parent.removeChild(template); 23 parent.removeChild(template);
75 let shadowRoot; 24 let shadowRoot;
76 if (template.getAttribute('data-mode') === 'v0') { 25 if (template.getAttribute('data-mode') === 'v0') {
77 // For legacy Shadow DOM 26 // For legacy Shadow DOM
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 e.composedPath().map((n) => { 111 e.composedPath().map((n) => {
163 return labelFor(n); 112 return labelFor(n);
164 })]); 113 })]);
165 }); 114 });
166 } 115 }
167 } 116 }
168 callback(target); 117 callback(target);
169 return log; 118 return log;
170 } 119 }
171 120
172 function debugEventLog(log) {
173 for (let i = 0; i < log.length; i++) {
174 console.log('[' + i + '] currentTarget: ' + log[i][0] + ' target: ' + log[i] [1] + ' relatedTarget: ' + log[i][2] + ' composedPath(): ' + log[i][3]);
175 }
176 }
177
178 function debugCreateTestTree(nodes) {
179 for (let k in nodes) {
180 console.log(k + ' -> ' + nodes[k]);
181 }
182 }
183
184 // This function assumes that testharness.js is available. 121 // This function assumes that testharness.js is available.
185 function assert_event_path_equals(actual, expected) { 122 function assert_event_path_equals(actual, expected) {
186 assert_equals(actual.length, expected.length); 123 assert_equals(actual.length, expected.length);
187 for (let i = 0; i < actual.length; ++i) { 124 for (let i = 0; i < actual.length; ++i) {
188 assert_equals(actual[i][0], expected[i][0], 'currentTarget at ' + i + ' shou ld be same'); 125 assert_equals(actual[i][0], expected[i][0], 'currentTarget at ' + i + ' shou ld be same');
189 assert_equals(actual[i][1], expected[i][1], 'target at ' + i + ' should be s ame'); 126 assert_equals(actual[i][1], expected[i][1], 'target at ' + i + ' should be s ame');
190 assert_equals(actual[i][2], expected[i][2], 'relatedTarget at ' + i + ' shou ld be same'); 127 assert_equals(actual[i][2], expected[i][2], 'relatedTarget at ' + i + ' shou ld be same');
191 assert_array_equals(actual[i][3], expected[i][3], 'composedPath at ' + i + ' should be same'); 128 assert_array_equals(actual[i][3], expected[i][3], 'composedPath at ' + i + ' should be same');
192 } 129 }
193 } 130 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698