mirror of
https://github.com/classilla/tenfourfox.git
synced 2024-11-08 22:11:52 +00:00
45 lines
1.4 KiB
JavaScript
45 lines
1.4 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 Ci = Components.interfaces;
|
|
|
|
addMessageListener("sdk/test/context-menu/open", message => {
|
|
const {data, name} = message;
|
|
const target = data.target && content.document.querySelector(data.target);
|
|
if (target) {
|
|
target.scrollIntoView();
|
|
}
|
|
const rect = target ? target.getBoundingClientRect() :
|
|
{left:0, top:0, width:0, height:0};
|
|
|
|
|
|
content.
|
|
QueryInterface(Ci.nsIInterfaceRequestor).
|
|
getInterface(Ci.nsIDOMWindowUtils).
|
|
sendMouseEvent("contextmenu",
|
|
rect.left + (rect.width / 2),
|
|
rect.top + (rect.height / 2),
|
|
2, 1, 0);
|
|
});
|
|
|
|
addMessageListener("sdk/test/context-menu/select", message => {
|
|
const {data, name} = message;
|
|
const {document} = content;
|
|
if (data) {
|
|
if (typeof(data) === "string") {
|
|
const target = document.querySelector(data);
|
|
document.getSelection().selectAllChildren(target);
|
|
} else {
|
|
const target = document.querySelector(data.target);
|
|
target.focus();
|
|
target.setSelectionRange(data.start, data.end);
|
|
}
|
|
} else {
|
|
document.getSelection().collapse(document.documentElement, 0);
|
|
}
|
|
|
|
sendAsyncMessage("sdk/test/context-menu/selected");
|
|
});
|