Backed out changeset cbd200206f9b (bug 663778) Backed out changeset b0b74401e614 (bug 663778) Backed out changeset df5255cffbfa (bug 663778) Backed out changeset e6d0dd124356 (bug 663778) Backed out changeset 134f77474941 (bug 663778) Backed out changeset 456609873c5f (bug 663778)
79 lines
2.2 KiB
JavaScript
79 lines
2.2 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/. */
|
|
|
|
let TargetFactory = gDevTools.TargetFactory;
|
|
|
|
let tempScope = {};
|
|
Components.utils.import("resource://gre/modules/devtools/Console.jsm", tempScope);
|
|
let console = tempScope.console;
|
|
Components.utils.import("resource://gre/modules/commonjs/sdk/core/promise.js", tempScope);
|
|
let promise = tempScope.Promise;
|
|
|
|
let {devtools} = Components.utils.import("resource://gre/modules/devtools/Loader.jsm", {});
|
|
let TargetFactory = devtools.TargetFactory;
|
|
|
|
/**
|
|
* Open a new tab at a URL and call a callback on load
|
|
*/
|
|
function addTab(aURL, aCallback)
|
|
{
|
|
waitForExplicitFinish();
|
|
|
|
gBrowser.selectedTab = gBrowser.addTab();
|
|
if (aURL != null) {
|
|
content.location = aURL;
|
|
}
|
|
|
|
let deferred = promise.defer();
|
|
|
|
let tab = gBrowser.selectedTab;
|
|
let target = TargetFactory.forTab(gBrowser.selectedTab);
|
|
let browser = gBrowser.getBrowserForTab(tab);
|
|
|
|
function onTabLoad() {
|
|
browser.removeEventListener("load", onTabLoad, true);
|
|
|
|
if (aCallback != null) {
|
|
aCallback(browser, tab, browser.contentDocument);
|
|
}
|
|
|
|
deferred.resolve({ browser: browser, tab: tab, target: target });
|
|
}
|
|
|
|
browser.addEventListener("load", onTabLoad, true);
|
|
return deferred.promise;
|
|
}
|
|
|
|
registerCleanupFunction(function tearDown() {
|
|
while (gBrowser.tabs.length > 1) {
|
|
gBrowser.removeCurrentTab();
|
|
}
|
|
});
|
|
|
|
function synthesizeKeyFromKeyTag(aKeyId, document) {
|
|
let key = document.getElementById(aKeyId);
|
|
isnot(key, null, "Successfully retrieved the <key> node");
|
|
|
|
let modifiersAttr = key.getAttribute("modifiers");
|
|
|
|
let name = null;
|
|
|
|
if (key.getAttribute("keycode"))
|
|
name = key.getAttribute("keycode");
|
|
else if (key.getAttribute("key"))
|
|
name = key.getAttribute("key");
|
|
|
|
isnot(name, null, "Successfully retrieved keycode/key");
|
|
|
|
let modifiers = {
|
|
shiftKey: modifiersAttr.match("shift"),
|
|
ctrlKey: modifiersAttr.match("ctrl"),
|
|
altKey: modifiersAttr.match("alt"),
|
|
metaKey: modifiersAttr.match("meta"),
|
|
accelKey: modifiersAttr.match("accel")
|
|
}
|
|
|
|
EventUtils.synthesizeKey(name, modifiers);
|
|
}
|