Bug 997239 - Move webconsole actor to a module. r=jryans,msucan

This commit is contained in:
Alexandre Poirot 2014-04-23 10:38:00 +02:00
parent 3d1acb7d95
commit 6bde1b2312
7 changed files with 45 additions and 20 deletions

View File

@ -8,9 +8,9 @@ const protocol = require("devtools/server/protocol");
const {method, RetVal} = protocol; const {method, RetVal} = protocol;
const {Promise: promise} = Cu.import("resource://gre/modules/Promise.jsm", {}); const {Promise: promise} = Cu.import("resource://gre/modules/Promise.jsm", {});
const {LongStringActor} = require("devtools/server/actors/string"); const {LongStringActor} = require("devtools/server/actors/string");
const {DebuggerServer} = require("devtools/server/main");
Cu.import("resource://gre/modules/PermissionsTable.jsm") Cu.import("resource://gre/modules/PermissionsTable.jsm")
Cu.import('resource://gre/modules/devtools/dbg-server.jsm');
const APP_MAP = { const APP_MAP = {
'{ec8030f7-c20a-464f-9b0e-13a3a9e97384}': 'firefox', '{ec8030f7-c20a-464f-9b0e-13a3a9e97384}': 'firefox',

View File

@ -8,7 +8,6 @@ const {Arg, method, RetVal} = protocol;
const {Promise: promise} = Cu.import("resource://gre/modules/Promise.jsm", {}); const {Promise: promise} = Cu.import("resource://gre/modules/Promise.jsm", {});
Cu.import("resource://gre/modules/Services.jsm"); Cu.import("resource://gre/modules/Services.jsm");
Cu.import('resource://gre/modules/devtools/dbg-server.jsm');
exports.register = function(handle) { exports.register = function(handle) {
handle.addGlobalActor(PreferenceActor, "preferenceActor"); handle.addGlobalActor(PreferenceActor, "preferenceActor");

View File

@ -5,7 +5,7 @@
"use strict"; "use strict";
let {Cu} = require("chrome"); let {Cu} = require("chrome");
let {DebuggerServer} = Cu.import("resource://gre/modules/devtools/dbg-server.jsm", {}); let {DebuggerServer} = require("devtools/server/main");
let {Promise: promise} = Cu.import("resource://gre/modules/Promise.jsm", {}); let {Promise: promise} = Cu.import("resource://gre/modules/Promise.jsm", {});
let {Class} = require("sdk/core/heritage"); let {Class} = require("sdk/core/heritage");

View File

@ -5,7 +5,7 @@
"use strict"; "use strict";
const { Cu } = require("chrome"); const { Cu } = require("chrome");
const { DebuggerServer } = Cu.import("resource://gre/modules/devtools/dbg-server.jsm", {}); const { DebuggerServer } = require("devtools/server/main");
const { DevToolsUtils } = Cu.import("resource://gre/modules/devtools/DevToolsUtils.jsm", {}); const { DevToolsUtils } = Cu.import("resource://gre/modules/devtools/DevToolsUtils.jsm", {});
Cu.import("resource://gre/modules/jsdebugger.jsm"); Cu.import("resource://gre/modules/jsdebugger.jsm");

View File

@ -6,7 +6,11 @@
"use strict"; "use strict";
let {Cu} = require("chrome"); let {Ci,Cu} = require("chrome");
Cu.import("resource://gre/modules/Services.jsm");
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
let devtools = Cu.import("resource://gre/modules/devtools/Loader.jsm", {}).devtools;
let DevToolsUtils = require("devtools/toolkit/DevToolsUtils");
let {Promise: promise} = Cu.import("resource://gre/modules/Promise.jsm", {}); let {Promise: promise} = Cu.import("resource://gre/modules/Promise.jsm", {});
XPCOMUtils.defineLazyModuleGetter(this, "AddonManager", "resource://gre/modules/AddonManager.jsm"); XPCOMUtils.defineLazyModuleGetter(this, "AddonManager", "resource://gre/modules/AddonManager.jsm");
@ -17,6 +21,10 @@ XPCOMUtils.defineLazyGetter(this, "events", () => {
return devtools.require("sdk/event/core"); return devtools.require("sdk/event/core");
}); });
// Also depends on following symbols, shared by common scope with main.js:
// DebuggerServer, CommonCreateExtraActors, CommonAppendExtraActors, ActorPool,
// ThreadActor
/** /**
* Browser-specific actors. * Browser-specific actors.
*/ */
@ -1040,9 +1048,15 @@ TabActor.prototype = {
* True if the window.console object is native, or false otherwise. * True if the window.console object is native, or false otherwise.
*/ */
hasNativeConsoleAPI: function BTA_hasNativeConsoleAPI(aWindow) { hasNativeConsoleAPI: function BTA_hasNativeConsoleAPI(aWindow) {
// Do not expose WebConsoleActor function directly as it is always let isNative = false;
// loaded after the BrowserTabActor try {
return WebConsoleActor.prototype.hasNativeConsoleAPI(aWindow); // We are very explicitly examining the "console" property of
// the non-Xrayed object here.
let console = aWindow.wrappedJSObject.console;
isNative = console instanceof aWindow.Console;
}
catch (ex) { }
return isNative;
} }
}; };

View File

@ -6,28 +6,34 @@
"use strict"; "use strict";
let Cc = Components.classes; let {Cc, Ci, Cu} = require("chrome");
let Ci = Components.interfaces;
let Cu = Components.utils;
Cu.import("resource://gre/modules/XPCOMUtils.jsm"); Cu.import("resource://gre/modules/XPCOMUtils.jsm");
let devtools = Cu.import("resource://gre/modules/devtools/Loader.jsm", {}).devtools; let { DebuggerServer, ActorPool } = require("devtools/server/main");
// Symbols from script.js
let { ThreadActor, EnvironmentActor, ObjectActor, LongStringActor } = DebuggerServer;
Cu.import("resource://gre/modules/jsdebugger.jsm");
addDebuggerToGlobal(this);
XPCOMUtils.defineLazyModuleGetter(this, "Services", XPCOMUtils.defineLazyModuleGetter(this, "Services",
"resource://gre/modules/Services.jsm"); "resource://gre/modules/Services.jsm");
XPCOMUtils.defineLazyGetter(this, "NetworkMonitor", () => { XPCOMUtils.defineLazyGetter(this, "NetworkMonitor", () => {
return devtools.require("devtools/toolkit/webconsole/network-monitor") return require("devtools/toolkit/webconsole/network-monitor")
.NetworkMonitor; .NetworkMonitor;
}); });
XPCOMUtils.defineLazyGetter(this, "NetworkMonitorChild", () => { XPCOMUtils.defineLazyGetter(this, "NetworkMonitorChild", () => {
return devtools.require("devtools/toolkit/webconsole/network-monitor") return require("devtools/toolkit/webconsole/network-monitor")
.NetworkMonitorChild; .NetworkMonitorChild;
}); });
XPCOMUtils.defineLazyGetter(this, "ConsoleProgressListener", () => { XPCOMUtils.defineLazyGetter(this, "ConsoleProgressListener", () => {
return devtools.require("devtools/toolkit/webconsole/network-monitor") return require("devtools/toolkit/webconsole/network-monitor")
.ConsoleProgressListener; .ConsoleProgressListener;
}); });
XPCOMUtils.defineLazyGetter(this, "events", () => {
return require("sdk/event/core");
});
for (let name of ["WebConsoleUtils", "ConsoleServiceListener", for (let name of ["WebConsoleUtils", "ConsoleServiceListener",
"ConsoleAPIListener", "JSTermHelpers", "JSPropertyProvider", "ConsoleAPIListener", "JSTermHelpers", "JSPropertyProvider",
@ -37,7 +43,7 @@ for (let name of ["WebConsoleUtils", "ConsoleServiceListener",
if (prop == "WebConsoleUtils") { if (prop == "WebConsoleUtils") {
prop = "Utils"; prop = "Utils";
} }
return devtools.require("devtools/toolkit/webconsole/utils")[prop]; return require("devtools/toolkit/webconsole/utils")[prop];
}.bind(null, name), }.bind(null, name),
configurable: true, configurable: true,
enumerable: true enumerable: true
@ -1831,6 +1837,12 @@ NetworkEventActor.prototype.requestTypes =
"getEventTimings": NetworkEventActor.prototype.onGetEventTimings, "getEventTimings": NetworkEventActor.prototype.onGetEventTimings,
}; };
DebuggerServer.addTabActor(WebConsoleActor, "consoleActor"); exports.register = function(handle) {
DebuggerServer.addGlobalActor(WebConsoleActor, "consoleActor"); handle.addGlobalActor(WebConsoleActor, "consoleActor");
handle.addTabActor(WebConsoleActor, "consoleActor");
};
exports.unregister = function(handle) {
handle.removeGlobalActor(WebConsoleActor, "consoleActor");
handle.removeTabActor(WebConsoleActor, "consoleActor");
};

View File

@ -378,7 +378,7 @@ var DebuggerServer = {
// In case of apps being loaded in parent process, DebuggerServer is already // In case of apps being loaded in parent process, DebuggerServer is already
// initialized and browser actors are already loaded, // initialized and browser actors are already loaded,
// but childtab.js hasn't been loaded yet. // but childtab.js hasn't been loaded yet.
if (!("WebConsoleActor" in this)) { if (!DebuggerServer.tabActorFactories.hasOwnProperty("consoleActor")) {
this.addTabActors(); this.addTabActors();
} }
// But webbrowser.js and childtab.js aren't loaded from shell.js. // But webbrowser.js and childtab.js aren't loaded from shell.js.
@ -395,7 +395,7 @@ var DebuggerServer = {
*/ */
addTabActors: function() { addTabActors: function() {
this.addActors("resource://gre/modules/devtools/server/actors/script.js"); this.addActors("resource://gre/modules/devtools/server/actors/script.js");
this.addActors("resource://gre/modules/devtools/server/actors/webconsole.js"); this.registerModule("devtools/server/actors/webconsole");
this.registerModule("devtools/server/actors/inspector"); this.registerModule("devtools/server/actors/inspector");
this.registerModule("devtools/server/actors/call-watcher"); this.registerModule("devtools/server/actors/call-watcher");
this.registerModule("devtools/server/actors/canvas"); this.registerModule("devtools/server/actors/canvas");