OLD | NEW |
| (Empty) |
1 <!DOCTYPE html> | |
2 <script src='../resources/testharness.js'></script> | |
3 <script src='../resources/testharnessreport.js'></script> | |
4 <script> | |
5 'use strict'; | |
6 | |
7 const safelist = ['custom-element', | |
8 'article', 'aside', 'blockquote', 'body', 'div', 'footer', | |
9 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', | |
10 'header', 'nav', 'p', 'section', 'span']; | |
11 | |
12 test(() => { | |
13 safelist.forEach((tag) => { | |
14 ['open', 'closed'].forEach((mode) => { | |
15 const sr = document.createElement(tag).attachShadow({mode: mode}); | |
16 assert_true(sr instanceof ShadowRoot, "attachShadow is supported for " + t
ag); | |
17 }); | |
18 }); | |
19 }, 'attachShadow should not fail for an element in the safelist'); | |
20 | |
21 test(() => { | |
22 // Retrieve possible tag names from window object's own property names | |
23 Object.getOwnPropertyNames(window).forEach((p) => { | |
24 const res = /^HTML(.*)Element$/.exec(p); | |
25 if (!res) | |
26 return; | |
27 const maybeTagName = res[1].toLowerCase(); | |
28 if (safelist.includes(maybeTagName) || maybeTagName.indexOf('-') != -1) | |
29 return; | |
30 var element; | |
31 try { | |
32 element = document.createElement(maybeTagName); | |
33 } catch (e) { | |
34 // Okay to ignore when document.createElement fails | |
35 return; | |
36 } | |
37 ['open', 'closed'].forEach((mode) => { | |
38 assert_throws({name: 'NotSupportedError'}, () => { | |
39 element.attachShadow({mode: mode}); | |
40 }), 'attachShadow should throw NotSupportdeError for ' + maybeTagName; | |
41 }); | |
42 }); | |
43 }, 'attachShadow should throw an exception for an element which is not in the sa
felist'); | |
44 </script> | |
OLD | NEW |