OLD | NEW |
1 <div id="scrolltarget"> | 1 <div id="scrolltarget"> |
2 <script src="../../resources/js-test.js"></script> | 2 <script src="../../resources/js-test.js"></script> |
3 <script> | 3 <script> |
4 description('This test checks that we correctly update the scroll event handler
count as event handlers are added and removed'); | 4 description('This test checks that we correctly update the scroll event handler
count as event handlers are added and removed'); |
5 (function() { | 5 (function() { |
6 // Test addEventListener/removeEventListener on the document. | 6 // Test addEventListener/removeEventListener on the document. |
7 var listener = function() { } | 7 var listener = function() { } |
8 | 8 |
9 shouldBe('window.internals.scrollEventHandlerCount(document)', '0'); | 9 shouldBe('window.internals.scrollEventHandlerCount(document)', '0'); |
10 document.addEventListener('scroll', listener, true); | 10 document.addEventListener('scroll', listener, true); |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
116 var div = document.createElement('div'); | 116 var div = document.createElement('div'); |
117 div.addEventListener('scroll', function() { }); | 117 div.addEventListener('scroll', function() { }); |
118 document.body.appendChild(div); | 118 document.body.appendChild(div); |
119 | 119 |
120 var iframe = document.createElement('iframe'); | 120 var iframe = document.createElement('iframe'); |
121 div.appendChild(iframe); | 121 div.appendChild(iframe); |
122 var nestedDocument = iframe.contentWindow.document; | 122 var nestedDocument = iframe.contentWindow.document; |
123 nestedDocument.open('text/html', 'replace'); | 123 nestedDocument.open('text/html', 'replace'); |
124 nestedDocument.write('<!DOCTYPE html>\n<script>\ndocument.onscroll=function(
){};\n' + | 124 nestedDocument.write('<!DOCTYPE html>\n<script>\ndocument.onscroll=function(
){};\n' + |
125 'window.onscroll=function(){};</' + 'script>\n'); | 125 'window.onscroll=function(){};</' + 'script>\n'); |
| 126 nestedDocument.close(); |
126 | 127 |
127 shouldBe('window.internals.scrollEventHandlerCount(document)', '3'); | 128 shouldBe('window.internals.scrollEventHandlerCount(document)', '3'); |
128 | 129 |
129 var unattachedDoc = document.implementation.createHTMLDocument(''); | 130 var unattachedDoc = document.implementation.createHTMLDocument(''); |
130 unattachedDoc.body.appendChild(div); | 131 unattachedDoc.body.appendChild(div); |
131 shouldBe('window.internals.scrollEventHandlerCount(document)', '0'); | 132 shouldBe('window.internals.scrollEventHandlerCount(document)', '0'); |
132 })(); | 133 })(); |
133 | 134 |
134 debug('Test moving a scroll event listener between documents belonging to the sa
me page'); | 135 debug('Test moving a scroll event listener between documents belonging to the sa
me page'); |
135 (function() { | 136 (function() { |
136 var iframe = document.createElement('iframe'); | 137 var iframe = document.createElement('iframe'); |
137 document.body.appendChild(iframe); | 138 document.body.appendChild(iframe); |
138 var nestedDocument = iframe.contentWindow.document; | 139 var nestedDocument = iframe.contentWindow.document; |
139 nestedDocument.open('text/html', 'replace'); | 140 nestedDocument.open('text/html', 'replace'); |
140 nestedDocument.write('<!DOCTYPE html><div id=foo></div>'); | 141 nestedDocument.write('<!DOCTYPE html><div id=foo></div>'); |
| 142 nestedDocument.close(); |
141 | 143 |
142 var element = frames[0].document.getElementById('foo'); | 144 var element = frames[0].document.getElementById('foo'); |
143 var listener = function() { } | 145 var listener = function() { } |
144 element.addEventListener('scroll', listener, false); | 146 element.addEventListener('scroll', listener, false); |
145 frames[0].window.addEventListener('scroll', listener, false); | 147 frames[0].window.addEventListener('scroll', listener, false); |
146 shouldBe('window.internals.scrollEventHandlerCount(document)', '2'); | 148 shouldBe('window.internals.scrollEventHandlerCount(document)', '2'); |
147 | 149 |
148 document.body.appendChild(element); | 150 document.body.appendChild(element); |
149 shouldBe('window.internals.scrollEventHandlerCount(document)', '2'); | 151 shouldBe('window.internals.scrollEventHandlerCount(document)', '2'); |
150 | 152 |
(...skipping 27 matching lines...) Expand all Loading... |
178 shouldBe('window.internals.scrollEventHandlerCount(document)', '0'); | 180 shouldBe('window.internals.scrollEventHandlerCount(document)', '0'); |
179 window.onscroll = function() { } | 181 window.onscroll = function() { } |
180 shouldBe('window.internals.scrollEventHandlerCount(document)', '1'); | 182 shouldBe('window.internals.scrollEventHandlerCount(document)', '1'); |
181 window.onscroll = function() { } | 183 window.onscroll = function() { } |
182 shouldBe('window.internals.scrollEventHandlerCount(document)', '1'); | 184 shouldBe('window.internals.scrollEventHandlerCount(document)', '1'); |
183 window.onscroll = null; | 185 window.onscroll = null; |
184 shouldBe('window.internals.scrollEventHandlerCount(document)', '0'); | 186 shouldBe('window.internals.scrollEventHandlerCount(document)', '0'); |
185 })(); | 187 })(); |
186 </script> | 188 </script> |
187 </body> | 189 </body> |
OLD | NEW |