| OLD | NEW |
| (Empty) | |
| 1 <html> |
| 2 <head> |
| 3 <script src="../http/tests/inspector/inspector-test.js"></script> |
| 4 <script> |
| 5 |
| 6 function eventListenerSuicidal(event) |
| 7 { |
| 8 event.target.removeEventListener("wheel", eventListenerSuicidal); |
| 9 } |
| 10 |
| 11 function eventListener1(e) |
| 12 { |
| 13 } |
| 14 |
| 15 function eventListener2(event) |
| 16 { |
| 17 event.preventDefault(); |
| 18 } |
| 19 |
| 20 function dispatchEvents() |
| 21 { |
| 22 var target = document.createElement("div"); |
| 23 document.body.appendChild(target); |
| 24 var touches = [new Touch({identifier: 1, clientX: 100, clientY: 100, target:
target})]; |
| 25 var touchEventInit = { |
| 26 cancelable: true, |
| 27 touches: touches, |
| 28 targetTouches: touches, |
| 29 changedTouches: touches |
| 30 }; |
| 31 var wheelEvent = new WheelEvent("wheel", { cancelable: true, deltaX: -120, d
eltaY: 120 }); |
| 32 var events = [ |
| 33 new WheelEvent("wheel", { cancelable: true, deltaX: -120, deltaY: 120 })
, |
| 34 new WheelEvent("wheel", { cancelable: false, deltaX: -120, deltaY: 120 }
), |
| 35 new MouseEvent("mousemove", { cancelable: true, clientX: 100, clinetY: 1
00, movementX: 0, movementY: 0 }), |
| 36 new TouchEvent("touchstart", touchEventInit), |
| 37 new TouchEvent("touchmove", touchEventInit), |
| 38 new TouchEvent("touchend", touchEventInit), |
| 39 ]; |
| 40 |
| 41 var eventTypes = ["wheel", "mousemove", "touchstart", "touchmove", "touchend
"]; |
| 42 for (var type of eventTypes) { |
| 43 target.addEventListener(type, eventListener1); |
| 44 target.addEventListener(type, eventListener2); |
| 45 } |
| 46 var deadline = performance.now() + 100; |
| 47 while (performance.now() < deadline) {}; |
| 48 if (window.testRunner) |
| 49 window.testRunner.setDumpConsoleMessages(false); |
| 50 for (var event of events) |
| 51 target.dispatchEvent(event); |
| 52 |
| 53 // Make sure we don't emit warnings twice, make another pass. |
| 54 for (var event of events) |
| 55 target.dispatchEvent(event); |
| 56 |
| 57 // Make sure we don't crash. |
| 58 target = document.createElement("div"); |
| 59 document.body.appendChild(target); |
| 60 target.addEventListener("wheel", eventListenerSuicidal); |
| 61 target.dispatchEvent(wheelEvent); |
| 62 } |
| 63 |
| 64 function test() |
| 65 { |
| 66 WebInspector.multitargetConsoleModel.addEventListener(WebInspector.ConsoleMo
del.Events.MessageAdded, InspectorTest.safeWrap(onConsoleMessage)); |
| 67 step1(); |
| 68 |
| 69 function step1() |
| 70 { |
| 71 InspectorTest.mainTarget.pageAgent().setBlockedEventsWarningThreshold(30
); |
| 72 InspectorTest.evaluateInPage("dispatchEvents()", step2); |
| 73 } |
| 74 |
| 75 function step2() |
| 76 { |
| 77 InspectorTest.mainTarget.pageAgent().setBlockedEventsWarningThreshold(0.
000001); |
| 78 InspectorTest.addResult("There should be no warnings above this line"); |
| 79 InspectorTest.evaluateInPage("dispatchEvents()", () => InspectorTest.com
pleteTest()); |
| 80 } |
| 81 |
| 82 function onConsoleMessage(event) |
| 83 { |
| 84 var message = event.data; |
| 85 var text = message.messageText; |
| 86 InspectorTest.addResult(text.replace(/ \d+ ms/, " <number> ms")); |
| 87 } |
| 88 } |
| 89 </script> |
| 90 </head> |
| 91 <body onload="runTest()"> |
| 92 <p>Tests that console warnings are issued for a blocked event listener and that |
| 93 there is no crash when an offending listener is removed by the handler.</p> |
| 94 </div> |
| 95 </body> |
| 96 </html> |
| OLD | NEW |