Bug 1426250 - allow EventUtils to dispatch drag/mouse events through the DOM only, r?enndeakin
MozReview-Commit-ID: 2TLw4FaYYR9
--- a/testing/mochitest/tests/SimpleTest/EventUtils.js
+++ b/testing/mochitest/tests/SimpleTest/EventUtils.js
@@ -206,16 +206,20 @@ function sendDragEvent(aEvent, aTarget,
var relatedTargetArg = aEvent.relatedTarget || null;
var dataTransfer = aEvent.dataTransfer || null;
event.initDragEvent(typeArg, canBubbleArg, cancelableArg, viewArg, detailArg,
screenXArg, screenYArg, clientXArg, clientYArg,
ctrlKeyArg, altKeyArg, shiftKeyArg, metaKeyArg,
buttonArg, relatedTargetArg, dataTransfer);
+ if (aEvent._domDispatchOnly) {
+ return aTarget.dispatchEvent(event);
+ }
+
var utils = _getDOMWindowUtils(aWindow);
return utils.dispatchDOMEventViaPresShell(aTarget, event, true);
}
/**
* Send the char aChar to the focused element. This method handles casing of
* chars (sends the right charcode, and sends a shift key for uppercase chars).
* No other modifiers are handled at this point.
@@ -2129,16 +2133,17 @@ function createDragEventObject(aType, aD
// nsContentUtils::SetDataTransferInEvent for actual impl).
dataTransfer.dropEffect = aDataTransfer.dropEffect;
return Object.assign({
type: aType,
screenX: destScreenX, screenY: destScreenY,
clientX: destClientX, clientY: destClientY,
dataTransfer: dataTransfer,
+ _domDispatchOnly: aDragEvent._domDispatchOnly,
}, aDragEvent);
}
/**
* Emulate a event sequence of dragstart, dragenter, and dragover.
*
* @param aSrcElement The element to use to start the drag.
* @param aDestElement The element to fire the dragover, dragenter events