| Index: LayoutTests/fast/dom/HTMLDialogElement/modal-dialog-blocks-mouse-events.html
|
| diff --git a/LayoutTests/fast/dom/HTMLDialogElement/modal-dialog-blocks-mouse-events.html b/LayoutTests/fast/dom/HTMLDialogElement/modal-dialog-blocks-mouse-events.html
|
| index 2d1ec448391803cd3861469ab821cbfb315eae3f..a725e10e672e50807a169b4c4430a44ebfea2cd5 100644
|
| --- a/LayoutTests/fast/dom/HTMLDialogElement/modal-dialog-blocks-mouse-events.html
|
| +++ b/LayoutTests/fast/dom/HTMLDialogElement/modal-dialog-blocks-mouse-events.html
|
| @@ -40,17 +40,8 @@ function clickOn(element)
|
| {
|
| if (!window.eventSender)
|
| return;
|
| -
|
| - var absoluteTop = 0;
|
| - var absoluteLeft = 0;
|
| - for (var parentNode = element; parentNode; parentNode = parentNode.offsetParent) {
|
| - absoluteLeft += parentNode.offsetLeft;
|
| - absoluteTop += parentNode.offsetTop;
|
| - }
|
| -
|
| - var x = absoluteLeft + element.offsetWidth / 2;
|
| - var y = absoluteTop + element.offsetHeight / 2;
|
| - eventSender.mouseMoveTo(x, y);
|
| + var rect = element.getBoundingClientRect();
|
| + eventSender.mouseMoveTo(rect.left + rect.width / 2, rect.top + rect.height / 2);
|
| eventSender.mouseDown();
|
| eventSender.mouseUp();
|
| eventSender.mouseMoveTo(0, 0);
|
| @@ -61,45 +52,46 @@ if (window.testRunner)
|
|
|
| dialog.showModal();
|
|
|
| +inertDivHandledEvent = false;
|
| inertDiv = document.getElementById('inert-div');
|
| -inertDiv.firedOn = false;
|
| eventFiredOnInertNode = function(event) {
|
| - inertDiv.firedOn = true;
|
| + inertDivHandledEvent = true;
|
| inertDiv.style.backgroundColor = 'red';
|
| };
|
|
|
| events = ['mousedown', 'mouseup', 'click', 'mousemove', 'mouseover', 'mouseout'];
|
| dialogDiv = document.getElementById('dialog-div');
|
| -dialogDiv.firedOnEvents = {};
|
| +handledEvents = {};
|
| +handledEvents.dialogDiv = {};
|
| eventFiredOnDialog = function(event) {
|
| - dialogDiv.firedOnEvents[event.type] = true;
|
| - if (Object.keys(dialogDiv.firedOnEvents).length == events.length)
|
| + handledEvents.dialogDiv[event.type] = true;
|
| + if (Object.keys(handledEvents.dialogDiv).length == events.length)
|
| dialogDiv.style.backgroundColor = 'green';
|
| };
|
|
|
| -body = document.body;
|
| -body.firedOnEvents = {};
|
| -eventFiredOnBody = function(event) {
|
| - body.firedOnEvents[event.type] = true;
|
| - if (Object.keys(body.firedOnEvents).length == events.length && !inertDiv.firedOn)
|
| +handledEvents.document = {};
|
| +expectedEventCountForDocument = events.length - 1; // document won't get 'mouseout'
|
| +eventFiredOnDocument = function(event) {
|
| + handledEvents.document[event.type] = true;
|
| + if (Object.keys(handledEvents.document).length == document.expectedEventCount && !inertDivHandledEvent)
|
| inertDiv.style.backgroundColor = 'green';
|
| };
|
|
|
| for (var i = 0; i < events.length; ++i) {
|
| inertDiv.addEventListener(events[i], eventFiredOnInertNode);
|
| dialogDiv.addEventListener(events[i], eventFiredOnDialog);
|
| - document.body.addEventListener(events[i], eventFiredOnBody);
|
| + document.addEventListener(events[i], eventFiredOnDocument);
|
| }
|
|
|
| debug('Clicking on inert box');
|
| clickOn(inertDiv);
|
| -shouldBeFalse('inertDiv.firedOn');
|
| -shouldBe('Object.keys(body.firedOnEvents).length', 'events.length');
|
| +shouldBeFalse('inertDivHandledEvent');
|
| +shouldBe('Object.keys(handledEvents.document).length', 'expectedEventCountForDocument');
|
|
|
| debug('Clicking on non-inert box');
|
| clickOn(dialogDiv);
|
| -shouldBeFalse('inertDiv.firedOn');
|
| -shouldBe('Object.keys(dialogDiv.firedOnEvents).length', 'events.length');
|
| +shouldBeFalse('inertDivHandledEvent');
|
| +shouldBe('Object.keys(handledEvents.dialogDiv).length', 'events.length');
|
| </script>
|
| </body>
|
| </html>
|
|
|