Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <html> | 2 <html> |
| 3 <head> | 3 <head> |
| 4 <script src="../../../resources/js-test.js"></script> | 4 <script src="../../../resources/js-test.js"></script> |
| 5 <script src="resources/shadow-dom.js"></script> | 5 <script src="resources/shadow-dom.js"></script> |
| 6 </head> | 6 </head> |
| 7 <body> | 7 <body> |
| 8 <p id="description"></p> | 8 <p id="description"></p> |
| 9 <div id="sandbox"></div> | 9 <div id="sandbox"></div> |
| 10 <pre id="console"></pre> | 10 <pre id="console"></pre> |
| 11 <script> | 11 <script> |
| 12 description("Tests to ensure that some kinds of events are stopeed at shadow bou ndary."); | 12 description("Tests to ensure that all kinds of events are not stopeed at shadow boundary if created by users."); |
| 13 | 13 |
| 14 var eventRecords = {}; | 14 var eventRecords = {}; |
| 15 | 15 |
| 16 function dispatchedEvent(eventType) | 16 function dispatchedEvent(eventType) |
| 17 { | 17 { |
| 18 var events = eventRecords[eventType]; | 18 var events = eventRecords[eventType]; |
| 19 if (!events) | 19 if (!events) |
| 20 return []; | 20 return []; |
| 21 return events; | 21 return events; |
| 22 } | 22 } |
| (...skipping 19 matching lines...) Expand all Loading... | |
| 42 eventString += ' (target: ' + event.target.id + ')'; | 42 eventString += ' (target: ' + event.target.id + ')'; |
| 43 if (event.relatedTarget) | 43 if (event.relatedTarget) |
| 44 eventString += ' (related: ' + event.relatedTarget.id + ')'; | 44 eventString += ' (related: ' + event.relatedTarget.id + ')'; |
| 45 if (event.eventPhase == 1) | 45 if (event.eventPhase == 1) |
| 46 eventString += '(capturing phase)'; | 46 eventString += '(capturing phase)'; |
| 47 if (event.target && event.currentTarget && event.target.id == event.currentT arget.id) | 47 if (event.target && event.currentTarget && event.target.id == event.currentT arget.id) |
| 48 shouldBe("event.eventPhase", "2", true); | 48 shouldBe("event.eventPhase", "2", true); |
| 49 eventRecords[eventType].push(eventString); | 49 eventRecords[eventType].push(eventString); |
| 50 } | 50 } |
| 51 | 51 |
| 52 debug('Other events than "click" should be stopped at shadow boundary. A "click " is added for the purpose of comparing results.'); | 52 debug('None of the events should be stopped at a Shadow boundary if created by u sers.'); |
| 53 | 53 |
| 54 var events = ['abort', 'select', 'change', 'reset', 'resize', 'scroll', 'selects tart', 'load', 'error', 'click']; | 54 var events = ['abort', 'select', 'change', 'reset', 'resize', 'scroll', 'selects tart', 'load', 'click']; |
|
kochi
2016/01/27 06:02:16
For the record, the 'error' event bubbles up out o
| |
| 55 | 55 |
| 56 function addEventListeners(nodes) | 56 function addEventListeners(nodes) |
| 57 { | 57 { |
| 58 for (var i = 0; i < nodes.length; ++i) { | 58 for (var i = 0; i < nodes.length; ++i) { |
| 59 var node = getNodeInTreeOfTrees(nodes[i]); | 59 var node = getNodeInTreeOfTrees(nodes[i]); |
| 60 for (var j = 0; j < events.length; ++j) | 60 for (var j = 0; j < events.length; ++j) |
| 61 node.addEventListener(events[j], recordEvent, false); | 61 node.addEventListener(events[j], recordEvent, false); |
| 62 } | 62 } |
| 63 } | 63 } |
| 64 | 64 |
| 65 function testEventsShoudBeStoppedAtShadowBoundary() | 65 function testEventsShouldNotBeStoppedAtShadowBoundary() |
| 66 { | 66 { |
| 67 var sandbox = document.getElementById('sandbox'); | 67 var sandbox = document.getElementById('sandbox'); |
| 68 sandbox.innerHTML = ''; | 68 sandbox.innerHTML = ''; |
| 69 sandbox.appendChild( | 69 sandbox.appendChild( |
| 70 createDOM('div', {'id': 'top'}, | 70 createDOM('div', {'id': 'top'}, |
| 71 createDOM('div', {'id': 'host'}, | 71 createDOM('div', {'id': 'host'}, |
| 72 createShadowRoot( | 72 createShadowRoot( |
| 73 createDOM('div', {'id': 'parent-of-target'}, | 73 createDOM('div', {'id': 'parent-of-target'}, |
| 74 createDOM('div', {'id': 'target'})), | 74 createDOM('div', {'id': 'target'})), |
| 75 createDOM('div', {'id': 'parent-of-content'}, | 75 createDOM('div', {'id': 'parent-of-content'}, |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 131 | 131 |
| 132 eventRecords = {}; | 132 eventRecords = {}; |
| 133 var event = document.createEvent('UIEvent'); | 133 var event = document.createEvent('UIEvent'); |
| 134 event.initEvent('selectstart', true, false); | 134 event.initEvent('selectstart', true, false); |
| 135 getNodeInTreeOfTrees('shadow-host/target').dispatchEvent(event); | 135 getNodeInTreeOfTrees('shadow-host/target').dispatchEvent(event); |
| 136 dumpDispatchedEvent('selectstart'); | 136 dumpDispatchedEvent('selectstart'); |
| 137 } | 137 } |
| 138 | 138 |
| 139 function test() | 139 function test() |
| 140 { | 140 { |
| 141 testEventsShoudBeStoppedAtShadowBoundary() | 141 testEventsShouldNotBeStoppedAtShadowBoundary(); |
| 142 testEventsFiredOnDistributedNodesShouldNotBeStoppedAtShadowBoundary(); | 142 testEventsFiredOnDistributedNodesShouldNotBeStoppedAtShadowBoundary(); |
| 143 testEventsInMultipleShadowTrees(); | 143 testEventsInMultipleShadowTrees(); |
| 144 } | 144 } |
| 145 test(); | 145 test(); |
| 146 </script> | 146 </script> |
| 147 </body> | 147 </body> |
| 148 </html> | 148 </html> |
| OLD | NEW |