Move major DevTools files to new directories using the following steps: hg mv browser/devtools devtools/client hg mv toolkit/devtools/server devtools/server hg mv toolkit/devtools devtools/shared No other changes are made.
47 lines
1.9 KiB
JavaScript
47 lines
1.9 KiB
JavaScript
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
"use strict";
|
|
|
|
const {classes: Cc, interfaces: Ci} = Components;
|
|
const subScriptLoader = Cc["@mozilla.org/moz/jssubscript-loader;1"]
|
|
.getService(Ci.mozIJSSubScriptLoader);
|
|
var EventUtils = {};
|
|
subScriptLoader.loadSubScript("chrome://marionette/content/EventUtils.js", EventUtils);
|
|
|
|
/**
|
|
* Synthesize a mouse event on an element. This handler doesn't send a message
|
|
* back. Consumers should listen to specific events on the inspector/highlighter
|
|
* to know when the event got synthesized.
|
|
* @param {Object} msg The msg.data part expects the following properties:
|
|
* - {Number} x
|
|
* - {Number} y
|
|
* - {Boolean} center If set to true, x/y will be ignored and
|
|
* synthesizeMouseAtCenter will be used instead
|
|
* - {Object} options Other event options
|
|
* - {String} selector An optional selector that will be used to find the node to
|
|
* synthesize the event on, if msg.objects doesn't contain the CPOW.
|
|
* The msg.objects part should be the element.
|
|
* @param {Object} data Event detail properties:
|
|
*/
|
|
addMessageListener("Test:MarkupView:SynthesizeMouse", function(msg) {
|
|
let {x, y, center, options, selector} = msg.data;
|
|
let {node} = msg.objects;
|
|
|
|
if (!node && selector) {
|
|
node = content.document.querySelector(selector);
|
|
}
|
|
|
|
if (center) {
|
|
EventUtils.synthesizeMouseAtCenter(node, options, node.ownerDocument.defaultView);
|
|
} else {
|
|
EventUtils.synthesizeMouse(node, x, y, options, node.ownerDocument.defaultView);
|
|
}
|
|
|
|
// Most consumers won't need to listen to this message, unless they want to
|
|
// wait for the mouse event to be synthesized and don't have another event
|
|
// to listen to instead.
|
|
sendAsyncMessage("Test:MarkupView:SynthesizeMouse");
|
|
});
|