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

Side by Side Diff: LayoutTests/fast/dom/HTMLDialogElement/modal-dialog-blocks-mouse-events.html

Issue 133393002: Make ancestors of modal <dialog> inert (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: save a tree walk if able Created 6 years, 11 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 | Annotate | Revision Log
OLDNEW
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <html> 2 <html>
3 <head> 3 <head>
4 <style> 4 <style>
5 #inert-div { 5 #inert-div {
6 height: 100px; 6 height: 100px;
7 width: 100px; 7 width: 100px;
8 background: blue; 8 background: blue;
9 } 9 }
10 10
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 70
71 events = ['mousedown', 'mouseup', 'click', 'mousemove', 'mouseover', 'mouseout' ]; 71 events = ['mousedown', 'mouseup', 'click', 'mousemove', 'mouseover', 'mouseout' ];
72 dialogDiv = document.getElementById('dialog-div'); 72 dialogDiv = document.getElementById('dialog-div');
73 dialogDiv.firedOnEvents = {}; 73 dialogDiv.firedOnEvents = {};
74 eventFiredOnDialog = function(event) { 74 eventFiredOnDialog = function(event) {
75 dialogDiv.firedOnEvents[event.type] = true; 75 dialogDiv.firedOnEvents[event.type] = true;
76 if (Object.keys(dialogDiv.firedOnEvents).length == events.length) 76 if (Object.keys(dialogDiv.firedOnEvents).length == events.length)
77 dialogDiv.style.backgroundColor = 'green'; 77 dialogDiv.style.backgroundColor = 'green';
78 }; 78 };
79 79
80 body = document.body; 80 document.firedOnEvents = {};
81 body.firedOnEvents = {}; 81 document.expectedEventCount = events.length - 1; // document won't get 'mouseout '
esprehn 2014/01/14 01:43:29 Why are you storing these properties on the docume
falken 2014/01/14 01:50:48 Seemed a bit nicer to say document.expectedEventCo
82 eventFiredOnBody = function(event) { 82 eventFiredOnDocument = function(event) {
83 body.firedOnEvents[event.type] = true; 83 document.firedOnEvents[event.type] = true;
84 if (Object.keys(body.firedOnEvents).length == events.length && !inertDiv.fir edOn) 84 if (Object.keys(document.firedOnEvents).length == document.expectedEventCoun t && !inertDiv.firedOn)
85 inertDiv.style.backgroundColor = 'green'; 85 inertDiv.style.backgroundColor = 'green';
86 }; 86 };
87 87
88 for (var i = 0; i < events.length; ++i) { 88 for (var i = 0; i < events.length; ++i) {
89 inertDiv.addEventListener(events[i], eventFiredOnInertNode); 89 inertDiv.addEventListener(events[i], eventFiredOnInertNode);
90 dialogDiv.addEventListener(events[i], eventFiredOnDialog); 90 dialogDiv.addEventListener(events[i], eventFiredOnDialog);
91 document.body.addEventListener(events[i], eventFiredOnBody); 91 document.addEventListener(events[i], eventFiredOnDocument);
92 } 92 }
93 93
94 debug('Clicking on inert box'); 94 debug('Clicking on inert box');
95 clickOn(inertDiv); 95 clickOn(inertDiv);
96 shouldBeFalse('inertDiv.firedOn'); 96 shouldBeFalse('inertDiv.firedOn');
97 shouldBe('Object.keys(body.firedOnEvents).length', 'events.length'); 97 shouldBe('Object.keys(document.firedOnEvents).length', 'document.expectedEventCo unt');
98 98
99 debug('Clicking on non-inert box'); 99 debug('Clicking on non-inert box');
100 clickOn(dialogDiv); 100 clickOn(dialogDiv);
101 shouldBeFalse('inertDiv.firedOn'); 101 shouldBeFalse('inertDiv.firedOn');
102 shouldBe('Object.keys(dialogDiv.firedOnEvents).length', 'events.length'); 102 shouldBe('Object.keys(dialogDiv.firedOnEvents).length', 'events.length');
103 </script> 103 </script>
104 </body> 104 </body>
105 </html> 105 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698