зеркало из https://github.com/mozilla/gecko-dev.git
Bug 859372 - Refactor webbrowser.js;r=past
This commit is contained in:
Родитель
c731837567
Коммит
ae7c69fc2c
|
@ -76,6 +76,9 @@ XPCOMUtils.defineLazyServiceGetter(Services, 'captivePortalDetector',
|
|||
'nsICaptivePortalDetector');
|
||||
#endif
|
||||
|
||||
let devtools = Cu.import("resource://gre/modules/devtools/Loader.jsm", {}).devtools;
|
||||
let { RootActor } = devtools.require("devtools/server/actors/root");
|
||||
|
||||
function getContentWindow() {
|
||||
return shell.contentBrowser.contentWindow;
|
||||
}
|
||||
|
@ -968,7 +971,7 @@ let RemoteDebugger = {
|
|||
deviceActor: DebuggerServer.globalActorFactories.deviceActor,
|
||||
} : DebuggerServer.globalActorFactories
|
||||
};
|
||||
let root = new DebuggerServer.RootActor(connection, parameters);
|
||||
let root = new RootActor(connection, parameters);
|
||||
root.applicationType = "operating-system";
|
||||
return root;
|
||||
};
|
||||
|
|
|
@ -5,6 +5,9 @@
|
|||
* Make sure the root actor's live tab list implementation works as specified.
|
||||
*/
|
||||
|
||||
let devtools = Cu.import("resource://gre/modules/devtools/Loader.jsm", {}).devtools;
|
||||
let { BrowserTabList } = devtools.require("devtools/server/actors/webbrowser");
|
||||
|
||||
let gTestPage = "data:text/html;charset=utf-8," + encodeURIComponent(
|
||||
"<title>JS Debugger BrowserTabList test page</title><body>Yo.</body>");
|
||||
|
||||
|
@ -26,7 +29,7 @@ function test() {
|
|||
DebuggerServer.addBrowserActors();
|
||||
}
|
||||
|
||||
gTabList = new DebuggerServer.BrowserTabList("fake DebuggerServerConnection");
|
||||
gTabList = new BrowserTabList("fake DebuggerServerConnection");
|
||||
gTabList._testing = true;
|
||||
gTabList.onListChanged = onListChangedHandler;
|
||||
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
|
||||
"use strict";
|
||||
|
||||
let { TabActor } = require("devtools/server/actors/webbrowser");
|
||||
|
||||
/**
|
||||
* Tab actor for documents living in a child process.
|
||||
*
|
||||
|
|
|
@ -9,12 +9,11 @@ let Cc = Components.classes;
|
|||
let Ci = Components.interfaces;
|
||||
let CC = Components.Constructor;
|
||||
|
||||
Cu.import("resource://gre/modules/osfile.jsm");
|
||||
Cu.import("resource://gre/modules/NetUtil.jsm");
|
||||
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
Cu.import("resource://gre/modules/osfile.jsm");
|
||||
|
||||
let {devtools} = Cu.import("resource://gre/modules/devtools/Loader.jsm", {});
|
||||
|
||||
let promise;
|
||||
let {Promise: promise} = Cu.import("resource://gre/modules/Promise.jsm", {});
|
||||
|
||||
function debug(aMsg) {
|
||||
/*
|
||||
|
|
|
@ -8,10 +8,12 @@
|
|||
|
||||
let { Ci, Cu } = require("chrome");
|
||||
let Services = require("Services");
|
||||
let { createExtraActors, appendExtraActors } = require("devtools/server/actors/common");
|
||||
let { ActorPool, createExtraActors, appendExtraActors } = require("devtools/server/actors/common");
|
||||
let { RootActor } = require("devtools/server/actors/root");
|
||||
let { AddonThreadActor, ThreadActor } = require("devtools/server/actors/script");
|
||||
let { DebuggerServer } = require("devtools/server/main");
|
||||
let DevToolsUtils = require("devtools/toolkit/DevToolsUtils");
|
||||
let { dbg_assert, dumpn } = DevToolsUtils;
|
||||
|
||||
let {Promise: promise} = Cu.import("resource://gre/modules/Promise.jsm", {});
|
||||
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
|
@ -22,7 +24,7 @@ XPCOMUtils.defineLazyModuleGetter(this, "AddonManager", "resource://gre/modules/
|
|||
// events needs to be dispatched synchronously,
|
||||
// by calling the listeners in the order or registration.
|
||||
XPCOMUtils.defineLazyGetter(this, "events", () => {
|
||||
return devtools.require("sdk/event/core");
|
||||
return require("sdk/event/core");
|
||||
});
|
||||
|
||||
// Also depends on following symbols, shared by common scope with main.js:
|
||||
|
@ -490,6 +492,8 @@ BrowserTabList.prototype.onCloseWindow = DevToolsUtils.makeInfallible(function(a
|
|||
}, "BrowserTabList.prototype.onCloseWindow's delayed body"), 0);
|
||||
}, "BrowserTabList.prototype.onCloseWindow");
|
||||
|
||||
exports.BrowserTabList = BrowserTabList;
|
||||
|
||||
/**
|
||||
* Creates a tab actor for handling requests to a browser tab, like
|
||||
* attaching and detaching. TabActor respects the actor factories
|
||||
|
@ -1075,6 +1079,8 @@ TabActor.prototype.requestTypes = {
|
|||
"reconfigure": TabActor.prototype.onReconfigure
|
||||
};
|
||||
|
||||
exports.TabActor = TabActor;
|
||||
|
||||
/**
|
||||
* Creates a tab actor for handling requests to a single in-process
|
||||
* <browser> tab. Most of the implementation comes from TabActor.
|
||||
|
@ -1454,3 +1460,11 @@ DebuggerProgressListener.prototype = {
|
|||
}
|
||||
}, "DebuggerProgressListener.prototype.onStateChange")
|
||||
};
|
||||
|
||||
exports.register = function(handle) {
|
||||
handle.setRootActor(createRootActor);
|
||||
};
|
||||
|
||||
exports.unregister = function(handle) {
|
||||
handle.setRootActor(null);
|
||||
};
|
||||
|
|
|
@ -46,9 +46,7 @@ Object.defineProperty(this, "Components", {
|
|||
const DBG_STRINGS_URI = "chrome://global/locale/devtools/debugger.properties";
|
||||
|
||||
const nsFile = CC("@mozilla.org/file/local;1", "nsIFile", "initWithPath");
|
||||
Cu.import("resource://gre/modules/reflect.jsm");
|
||||
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
Cu.import("resource://gre/modules/NetUtil.jsm");
|
||||
dumpn.wantLogging = Services.prefs.getBoolPref("devtools.debugger.log");
|
||||
|
||||
Cu.import("resource://gre/modules/devtools/deprecated-sync-thenables.js");
|
||||
|
@ -108,6 +106,11 @@ function ModuleAPI() {
|
|||
let activeGlobalActors = new Set();
|
||||
|
||||
return {
|
||||
// See DebuggerServer.setRootActor for a description.
|
||||
setRootActor: function(factory) {
|
||||
DebuggerServer.setRootActor(factory);
|
||||
},
|
||||
|
||||
// See DebuggerServer.addGlobalActor for a description.
|
||||
addGlobalActor: function(factory, name) {
|
||||
DebuggerServer.addGlobalActor(factory, name);
|
||||
|
@ -341,7 +344,7 @@ var DebuggerServer = {
|
|||
*/
|
||||
addBrowserActors: function(aWindowType = "navigator:browser", restrictPrivileges = false) {
|
||||
this.chromeWindowType = aWindowType;
|
||||
this.addActors("resource://gre/modules/devtools/server/actors/webbrowser.js");
|
||||
this.registerModule("devtools/server/actors/webbrowser");
|
||||
|
||||
if (!restrictPrivileges) {
|
||||
this.addTabActors();
|
||||
|
@ -365,8 +368,8 @@ var DebuggerServer = {
|
|||
this.addTabActors();
|
||||
}
|
||||
// But webbrowser.js and childtab.js aren't loaded from shell.js.
|
||||
if (!("BrowserTabActor" in this)) {
|
||||
this.addActors("resource://gre/modules/devtools/server/actors/webbrowser.js");
|
||||
if (!this.isModuleRegistered("devtools/server/actors/webbrowser")) {
|
||||
this.registerModule("devtools/server/actors/webbrowser");
|
||||
}
|
||||
if (!("ContentActor" in this)) {
|
||||
this.addActors("resource://gre/modules/devtools/server/actors/childtab.js");
|
||||
|
@ -727,6 +730,10 @@ var DebuggerServer = {
|
|||
|
||||
// DebuggerServer extension API.
|
||||
|
||||
setRootActor: function DS_setRootActor(aFunction) {
|
||||
this.createRootActor = aFunction;
|
||||
},
|
||||
|
||||
/**
|
||||
* Registers handlers for new tab-scoped request types defined dynamically.
|
||||
* This is used for example by add-ons to augment the functionality of the tab
|
||||
|
|
Загрузка…
Ссылка в новой задаче