зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1772096 - Part 6: Use plain object for lazy getter in remote/shared/messagehandler/. r=webdriver-reviewers,jdescottes
Differential Revision: https://phabricator.services.mozilla.com/D148003
This commit is contained in:
Родитель
631a13a650
Коммит
f0d1eaf7b1
|
@ -10,7 +10,9 @@ const { XPCOMUtils } = ChromeUtils.import(
|
|||
"resource://gre/modules/XPCOMUtils.jsm"
|
||||
);
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetters(this, {
|
||||
const lazy = {};
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetters(lazy, {
|
||||
EventEmitter: "resource://gre/modules/EventEmitter.jsm",
|
||||
|
||||
error: "chrome://remote/content/shared/messagehandler/Errors.jsm",
|
||||
|
@ -20,7 +22,7 @@ XPCOMUtils.defineLazyModuleGetters(this, {
|
|||
ModuleCache: "chrome://remote/content/shared/messagehandler/ModuleCache.jsm",
|
||||
});
|
||||
|
||||
XPCOMUtils.defineLazyGetter(this, "logger", () => Log.get());
|
||||
XPCOMUtils.defineLazyGetter(lazy, "logger", () => lazy.Log.get());
|
||||
|
||||
/**
|
||||
* A ContextDescriptor object provides information to decide if a broadcast or
|
||||
|
@ -77,7 +79,7 @@ const ContextDescriptorType = {
|
|||
* instances are properly registered and can be retrieved based on a given
|
||||
* session id as well as some other context information.
|
||||
*/
|
||||
class MessageHandler extends EventEmitter {
|
||||
class MessageHandler extends lazy.EventEmitter {
|
||||
/**
|
||||
* Create a new MessageHandler instance.
|
||||
*
|
||||
|
@ -89,12 +91,12 @@ class MessageHandler extends EventEmitter {
|
|||
constructor(sessionId, context) {
|
||||
super();
|
||||
|
||||
this._moduleCache = new ModuleCache(this);
|
||||
this._moduleCache = new lazy.ModuleCache(this);
|
||||
|
||||
this._sessionId = sessionId;
|
||||
this._context = context;
|
||||
this._contextId = this.constructor.getIdFromContext(context);
|
||||
this._eventsDispatcher = new EventsDispatcher(this);
|
||||
this._eventsDispatcher = new lazy.EventsDispatcher(this);
|
||||
}
|
||||
|
||||
get contextId() {
|
||||
|
@ -114,7 +116,7 @@ class MessageHandler extends EventEmitter {
|
|||
}
|
||||
|
||||
destroy() {
|
||||
logger.trace(
|
||||
lazy.logger.trace(
|
||||
`MessageHandler ${this.constructor.type} for session ${this.sessionId} is being destroyed`
|
||||
);
|
||||
this._eventsDispatcher.destroy();
|
||||
|
@ -214,12 +216,12 @@ class MessageHandler extends EventEmitter {
|
|||
*/
|
||||
handleCommand(command) {
|
||||
const { moduleName, commandName, params, destination } = command;
|
||||
logger.trace(
|
||||
lazy.logger.trace(
|
||||
`Received command ${moduleName}.${commandName} for destination ${destination.type}`
|
||||
);
|
||||
|
||||
if (!this.supportsCommand(moduleName, commandName, destination)) {
|
||||
throw new error.UnsupportedCommandError(
|
||||
throw new lazy.error.UnsupportedCommandError(
|
||||
`${moduleName}.${commandName} not supported for destination ${destination?.type}`
|
||||
);
|
||||
}
|
||||
|
|
|
@ -10,7 +10,9 @@ const { XPCOMUtils } = ChromeUtils.import(
|
|||
"resource://gre/modules/XPCOMUtils.jsm"
|
||||
);
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetters(this, {
|
||||
const lazy = {};
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetters(lazy, {
|
||||
EventEmitter: "resource://gre/modules/EventEmitter.jsm",
|
||||
|
||||
Log: "chrome://remote/content/shared/Log.jsm",
|
||||
|
@ -22,18 +24,18 @@ XPCOMUtils.defineLazyModuleGetters(this, {
|
|||
"chrome://remote/content/shared/messagehandler/WindowGlobalMessageHandler.jsm",
|
||||
});
|
||||
|
||||
XPCOMUtils.defineLazyGetter(this, "logger", () => Log.get());
|
||||
XPCOMUtils.defineLazyGetter(lazy, "logger", () => lazy.Log.get());
|
||||
|
||||
/**
|
||||
* Map of MessageHandler type to MessageHandler subclass.
|
||||
*/
|
||||
XPCOMUtils.defineLazyGetter(
|
||||
this,
|
||||
lazy,
|
||||
"MessageHandlerClasses",
|
||||
() =>
|
||||
new Map([
|
||||
[RootMessageHandler.type, RootMessageHandler],
|
||||
[WindowGlobalMessageHandler.type, WindowGlobalMessageHandler],
|
||||
[lazy.RootMessageHandler.type, lazy.RootMessageHandler],
|
||||
[lazy.WindowGlobalMessageHandler.type, lazy.WindowGlobalMessageHandler],
|
||||
])
|
||||
);
|
||||
|
||||
|
@ -48,10 +50,10 @@ XPCOMUtils.defineLazyGetter(
|
|||
* Throws if no MessageHandler subclass is found for the provided type.
|
||||
*/
|
||||
function getMessageHandlerClass(type) {
|
||||
if (!MessageHandlerClasses.has(type)) {
|
||||
if (!lazy.MessageHandlerClasses.has(type)) {
|
||||
throw new Error(`No MessageHandler class available for type "${type}"`);
|
||||
}
|
||||
return MessageHandlerClasses.get(type);
|
||||
return lazy.MessageHandlerClasses.get(type);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -66,7 +68,7 @@ function getMessageHandlerClass(type) {
|
|||
* The registry is useful to retrieve the appropriate MessageHandler instance
|
||||
* after crossing a technical boundary (eg process, thread...).
|
||||
*/
|
||||
class MessageHandlerRegistry extends EventEmitter {
|
||||
class MessageHandlerRegistry extends lazy.EventEmitter {
|
||||
/*
|
||||
* @param {String} type
|
||||
* MessageHandler type, one of MessageHandler.type.
|
||||
|
@ -98,7 +100,7 @@ class MessageHandlerRegistry extends EventEmitter {
|
|||
* to receive/send commands.
|
||||
*/
|
||||
createAllMessageHandlers() {
|
||||
const data = readSessionData();
|
||||
const data = lazy.readSessionData();
|
||||
for (const [sessionId, sessionDataItems] of data) {
|
||||
// Create a message handler for this context for each active message
|
||||
// handler session.
|
||||
|
@ -176,7 +178,7 @@ class MessageHandlerRegistry extends EventEmitter {
|
|||
getRootMessageHandler(sessionId) {
|
||||
const rootMessageHandler = this.getExistingMessageHandler(
|
||||
sessionId,
|
||||
RootMessageHandler.type
|
||||
lazy.RootMessageHandler.type
|
||||
);
|
||||
if (!rootMessageHandler) {
|
||||
throw new Error(
|
||||
|
@ -217,7 +219,7 @@ class MessageHandlerRegistry extends EventEmitter {
|
|||
|
||||
this._messageHandlersMap.set(sessionId, messageHandler);
|
||||
|
||||
logger.trace(
|
||||
lazy.logger.trace(
|
||||
`Created MessageHandler ${this._type} for session ${sessionId}`
|
||||
);
|
||||
|
||||
|
@ -234,7 +236,7 @@ class MessageHandlerRegistry extends EventEmitter {
|
|||
messageHandler.off("message-handler-event", this._onMessageHandlerEvent);
|
||||
this._messageHandlersMap.delete(messageHandler.sessionId);
|
||||
|
||||
logger.trace(
|
||||
lazy.logger.trace(
|
||||
`Unregistered MessageHandler ${messageHandler.constructor.type} for session ${messageHandler.sessionId}`
|
||||
);
|
||||
}
|
||||
|
|
|
@ -11,7 +11,9 @@ const { XPCOMUtils } = ChromeUtils.import(
|
|||
"resource://gre/modules/XPCOMUtils.jsm"
|
||||
);
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetters(this, {
|
||||
const lazy = {};
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetters(lazy, {
|
||||
getMessageHandlerClass:
|
||||
"chrome://remote/content/shared/messagehandler/MessageHandlerRegistry.jsm",
|
||||
// Additional protocols might use a different registry for their modules,
|
||||
|
@ -23,13 +25,13 @@ XPCOMUtils.defineLazyModuleGetters(this, {
|
|||
});
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetter(
|
||||
this,
|
||||
lazy,
|
||||
"getTestModuleClass",
|
||||
"chrome://mochitests/content/browser/remote/shared/messagehandler/test/browser/resources/modules/ModuleRegistry.jsm",
|
||||
"getModuleClass"
|
||||
);
|
||||
|
||||
XPCOMUtils.defineLazyGetter(this, "logger", () => Log.get());
|
||||
XPCOMUtils.defineLazyGetter(lazy, "logger", () => lazy.Log.get());
|
||||
|
||||
/**
|
||||
* ModuleCache instances are dedicated to lazily create and cache the instances
|
||||
|
@ -154,11 +156,11 @@ class ModuleCache {
|
|||
let module = null;
|
||||
if (ModuleClass) {
|
||||
module = new ModuleClass(this.messageHandler);
|
||||
logger.trace(
|
||||
lazy.logger.trace(
|
||||
`Module ${moduleFolder}/${moduleName}.jsm found for ${destination.type}`
|
||||
);
|
||||
} else {
|
||||
logger.trace(
|
||||
lazy.logger.trace(
|
||||
`Module ${moduleFolder}/${moduleName}.jsm not found for ${destination.type}`
|
||||
);
|
||||
}
|
||||
|
@ -188,16 +190,16 @@ class ModuleCache {
|
|||
|
||||
_getModuleClass(moduleName, moduleFolder) {
|
||||
if (this._useTestModules) {
|
||||
return getTestModuleClass(moduleName, moduleFolder);
|
||||
return lazy.getTestModuleClass(moduleName, moduleFolder);
|
||||
}
|
||||
|
||||
// Retrieve the module class from the WebDriverBiDi ModuleRegistry if we
|
||||
// are not using test modules.
|
||||
return getModuleClass(moduleName, moduleFolder);
|
||||
return lazy.getModuleClass(moduleName, moduleFolder);
|
||||
}
|
||||
|
||||
_getModuleFolder(originType, destinationType) {
|
||||
const originPath = getMessageHandlerClass(originType).modulePath;
|
||||
const originPath = lazy.getMessageHandlerClass(originType).modulePath;
|
||||
if (originType === destinationType) {
|
||||
// If the command is targeting the current type, the module is expected to
|
||||
// be in eg "windowglobal/${moduleName}.jsm".
|
||||
|
@ -205,7 +207,8 @@ class ModuleCache {
|
|||
}
|
||||
// If the command is targeting another type, the module is expected to
|
||||
// be in a composed folder eg "windowglobal-in-root/${moduleName}.jsm".
|
||||
const destinationPath = getMessageHandlerClass(destinationType).modulePath;
|
||||
const destinationPath = lazy.getMessageHandlerClass(destinationType)
|
||||
.modulePath;
|
||||
return `${destinationPath}-in-${originPath}`;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,7 +10,9 @@ const { XPCOMUtils } = ChromeUtils.import(
|
|||
"resource://gre/modules/XPCOMUtils.jsm"
|
||||
);
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetters(this, {
|
||||
const lazy = {};
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetters(lazy, {
|
||||
FrameTransport:
|
||||
"chrome://remote/content/shared/messagehandler/transports/FrameTransport.jsm",
|
||||
MessageHandler:
|
||||
|
@ -26,7 +28,7 @@ XPCOMUtils.defineLazyModuleGetters(this, {
|
|||
* in the parent process. It can forward commands to MessageHandlers in other
|
||||
* layers (at the moment WindowGlobalMessageHandlers in content processes).
|
||||
*/
|
||||
class RootMessageHandler extends MessageHandler {
|
||||
class RootMessageHandler extends lazy.MessageHandler {
|
||||
/**
|
||||
* Returns the RootMessageHandler module path.
|
||||
*
|
||||
|
@ -62,8 +64,8 @@ class RootMessageHandler extends MessageHandler {
|
|||
constructor(sessionId) {
|
||||
super(sessionId, null);
|
||||
|
||||
this._frameTransport = new FrameTransport(this);
|
||||
this._sessionData = new SessionData(this);
|
||||
this._frameTransport = new lazy.FrameTransport(this);
|
||||
this._sessionData = new lazy.SessionData(this);
|
||||
}
|
||||
|
||||
get sessionData() {
|
||||
|
@ -98,7 +100,7 @@ class RootMessageHandler extends MessageHandler {
|
|||
*/
|
||||
forwardCommand(command) {
|
||||
switch (command.destination.type) {
|
||||
case WindowGlobalMessageHandler.type:
|
||||
case lazy.WindowGlobalMessageHandler.type:
|
||||
return this._frameTransport.forwardCommand(command);
|
||||
default:
|
||||
throw new Error(
|
||||
|
@ -145,7 +147,7 @@ class RootMessageHandler extends MessageHandler {
|
|||
}
|
||||
|
||||
const destination = {
|
||||
type: WindowGlobalMessageHandler.type,
|
||||
type: lazy.WindowGlobalMessageHandler.type,
|
||||
contextDescriptor,
|
||||
};
|
||||
|
||||
|
|
|
@ -10,7 +10,9 @@ const { XPCOMUtils } = ChromeUtils.import(
|
|||
"resource://gre/modules/XPCOMUtils.jsm"
|
||||
);
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetters(this, {
|
||||
const lazy = {};
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetters(lazy, {
|
||||
MessageHandlerRegistry:
|
||||
"chrome://remote/content/shared/messagehandler/MessageHandlerRegistry.jsm",
|
||||
RootMessageHandler:
|
||||
|
@ -23,6 +25,6 @@ XPCOMUtils.defineLazyModuleGetters(this, {
|
|||
* registry and from there either create or retrieve Root MessageHandler
|
||||
* instances for a specific session.
|
||||
*/
|
||||
var RootMessageHandlerRegistry = new MessageHandlerRegistry(
|
||||
RootMessageHandler.type
|
||||
var RootMessageHandlerRegistry = new lazy.MessageHandlerRegistry(
|
||||
lazy.RootMessageHandler.type
|
||||
);
|
||||
|
|
|
@ -10,7 +10,9 @@ const { XPCOMUtils } = ChromeUtils.import(
|
|||
"resource://gre/modules/XPCOMUtils.jsm"
|
||||
);
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetters(this, {
|
||||
const lazy = {};
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetters(lazy, {
|
||||
ContextDescriptorType:
|
||||
"chrome://remote/content/shared/messagehandler/MessageHandler.jsm",
|
||||
MessageHandler:
|
||||
|
@ -24,7 +26,7 @@ XPCOMUtils.defineLazyModuleGetters(this, {
|
|||
* commands further to other MessageHandlers and represents a leaf node in a
|
||||
* MessageHandler network.
|
||||
*/
|
||||
class WindowGlobalMessageHandler extends MessageHandler {
|
||||
class WindowGlobalMessageHandler extends lazy.MessageHandler {
|
||||
constructor() {
|
||||
super(...arguments);
|
||||
|
||||
|
@ -129,8 +131,9 @@ class WindowGlobalMessageHandler extends MessageHandler {
|
|||
|
||||
_matchesContext(contextDescriptor) {
|
||||
return (
|
||||
contextDescriptor.type === ContextDescriptorType.All ||
|
||||
(contextDescriptor.type === ContextDescriptorType.TopBrowsingContext &&
|
||||
contextDescriptor.type === lazy.ContextDescriptorType.All ||
|
||||
(contextDescriptor.type ===
|
||||
lazy.ContextDescriptorType.TopBrowsingContext &&
|
||||
contextDescriptor.id === this._context.browserId)
|
||||
);
|
||||
}
|
||||
|
|
|
@ -11,7 +11,9 @@ const { XPCOMUtils } = ChromeUtils.import(
|
|||
"resource://gre/modules/XPCOMUtils.jsm"
|
||||
);
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetters(this, {
|
||||
const lazy = {};
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetters(lazy, {
|
||||
ContextDescriptorType:
|
||||
"chrome://remote/content/shared/messagehandler/MessageHandler.jsm",
|
||||
Log: "chrome://remote/content/shared/Log.jsm",
|
||||
|
@ -19,7 +21,7 @@ XPCOMUtils.defineLazyModuleGetters(this, {
|
|||
"chrome://remote/content/shared/messagehandler/RootMessageHandler.jsm",
|
||||
});
|
||||
|
||||
XPCOMUtils.defineLazyGetter(this, "logger", () => Log.get());
|
||||
XPCOMUtils.defineLazyGetter(lazy, "logger", () => lazy.Log.get());
|
||||
|
||||
const SESSION_DATA_SHARED_DATA_KEY = "MessageHandlerSessionData";
|
||||
|
||||
|
@ -87,7 +89,7 @@ const sessionDataMap = new Map();
|
|||
*/
|
||||
class SessionData {
|
||||
constructor(messageHandler) {
|
||||
if (messageHandler.constructor.type != RootMessageHandler.type) {
|
||||
if (messageHandler.constructor.type != lazy.RootMessageHandler.type) {
|
||||
throw new Error(
|
||||
"SessionData should only be used from a ROOT MessageHandler"
|
||||
);
|
||||
|
@ -136,7 +138,7 @@ class SessionData {
|
|||
this._data.push(item);
|
||||
addedValues.push(value);
|
||||
} else {
|
||||
logger.warn(
|
||||
lazy.logger.warn(
|
||||
`Duplicated session data item was not added: ${JSON.stringify(item)}`
|
||||
);
|
||||
}
|
||||
|
@ -215,7 +217,7 @@ class SessionData {
|
|||
this._data.splice(itemIndex, 1);
|
||||
removedValues.push(value);
|
||||
} else {
|
||||
logger.warn(
|
||||
lazy.logger.warn(
|
||||
`Missing session data item was not removed: ${JSON.stringify(item)}`
|
||||
);
|
||||
}
|
||||
|
@ -245,7 +247,7 @@ class SessionData {
|
|||
}
|
||||
|
||||
_isSameContextDescriptor(contextDescriptor1, contextDescriptor2) {
|
||||
if (contextDescriptor1.type === ContextDescriptorType.All) {
|
||||
if (contextDescriptor1.type === lazy.ContextDescriptorType.All) {
|
||||
// Ignore the id for type "all" since we made the id optional for this type.
|
||||
return contextDescriptor1.type === contextDescriptor2.type;
|
||||
}
|
||||
|
|
|
@ -11,12 +11,14 @@ const { XPCOMUtils } = ChromeUtils.import(
|
|||
"resource://gre/modules/XPCOMUtils.jsm"
|
||||
);
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetters(this, {
|
||||
const lazy = {};
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetters(lazy, {
|
||||
SESSION_DATA_SHARED_DATA_KEY:
|
||||
"chrome://remote/content/shared/messagehandler/sessiondata/SessionData.jsm",
|
||||
});
|
||||
|
||||
XPCOMUtils.defineLazyGetter(this, "sharedData", () => {
|
||||
XPCOMUtils.defineLazyGetter(lazy, "sharedData", () => {
|
||||
const isInParent =
|
||||
Services.appinfo.processType == Ci.nsIXULRuntime.PROCESS_TYPE_DEFAULT;
|
||||
|
||||
|
@ -31,4 +33,4 @@ XPCOMUtils.defineLazyGetter(this, "sharedData", () => {
|
|||
* Map of session id to arrays of SessionDataItems.
|
||||
*/
|
||||
const readSessionData = () =>
|
||||
sharedData.get(SESSION_DATA_SHARED_DATA_KEY) || new Map();
|
||||
lazy.sharedData.get(lazy.SESSION_DATA_SHARED_DATA_KEY) || new Map();
|
||||
|
|
|
@ -6,13 +6,14 @@
|
|||
|
||||
const EXPORTED_SYMBOLS = ["FrameTransport"];
|
||||
|
||||
const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
|
||||
const { XPCOMUtils } = ChromeUtils.import(
|
||||
"resource://gre/modules/XPCOMUtils.jsm"
|
||||
);
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetters(this, {
|
||||
Services: "resource://gre/modules/Services.jsm",
|
||||
const lazy = {};
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetters(lazy, {
|
||||
ContextDescriptorType:
|
||||
"chrome://remote/content/shared/messagehandler/MessageHandler.jsm",
|
||||
isBrowsingContextCompatible:
|
||||
|
@ -23,7 +24,7 @@ XPCOMUtils.defineLazyModuleGetters(this, {
|
|||
TabManager: "chrome://remote/content/shared/TabManager.jsm",
|
||||
});
|
||||
|
||||
XPCOMUtils.defineLazyGetter(this, "logger", () => Log.get());
|
||||
XPCOMUtils.defineLazyGetter(this, "logger", () => lazy.Log.get());
|
||||
|
||||
const MAX_RETRY_ATTEMPTS = 10;
|
||||
|
||||
|
@ -42,7 +43,7 @@ class FrameTransport {
|
|||
|
||||
// FrameTransport will rely on the MessageHandlerFrame JSWindow actors.
|
||||
// Make sure they are registered when instanciating a FrameTransport.
|
||||
MessageHandlerFrameActor.register();
|
||||
lazy.MessageHandlerFrameActor.register();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -154,11 +155,11 @@ class FrameTransport {
|
|||
_getBrowsingContextsForDescriptor(contextDescriptor) {
|
||||
const { id, type } = contextDescriptor;
|
||||
|
||||
if (type === ContextDescriptorType.All) {
|
||||
if (type === lazy.ContextDescriptorType.All) {
|
||||
return this._getBrowsingContexts();
|
||||
}
|
||||
|
||||
if (type === ContextDescriptorType.TopBrowsingContext) {
|
||||
if (type === lazy.ContextDescriptorType.TopBrowsingContext) {
|
||||
return this._getBrowsingContexts({ browserId: id });
|
||||
}
|
||||
|
||||
|
@ -184,8 +185,8 @@ class FrameTransport {
|
|||
let browsingContexts = [];
|
||||
|
||||
// Fetch all tab related browsing contexts for top-level windows.
|
||||
for (const { browsingContext } of TabManager.browsers) {
|
||||
if (isBrowsingContextCompatible(browsingContext, { browserId })) {
|
||||
for (const { browsingContext } of lazy.TabManager.browsers) {
|
||||
if (lazy.isBrowsingContextCompatible(browsingContext, { browserId })) {
|
||||
browsingContexts = browsingContexts.concat(
|
||||
browsingContext.getAllBrowsingContextsInSubtree()
|
||||
);
|
||||
|
|
|
@ -10,12 +10,14 @@ const { XPCOMUtils } = ChromeUtils.import(
|
|||
"resource://gre/modules/XPCOMUtils.jsm"
|
||||
);
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetters(this, {
|
||||
const lazy = {};
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetters(lazy, {
|
||||
ActorManagerParent: "resource://gre/modules/ActorManagerParent.jsm",
|
||||
|
||||
Log: "chrome://remote/content/shared/Log.jsm",
|
||||
});
|
||||
XPCOMUtils.defineLazyGetter(this, "logger", () => Log.get());
|
||||
XPCOMUtils.defineLazyGetter(lazy, "logger", () => lazy.Log.get());
|
||||
|
||||
const FRAME_ACTOR_CONFIG = {
|
||||
parent: {
|
||||
|
@ -45,10 +47,10 @@ const MessageHandlerFrameActor = {
|
|||
return;
|
||||
}
|
||||
|
||||
ActorManagerParent.addJSWindowActors({
|
||||
lazy.ActorManagerParent.addJSWindowActors({
|
||||
MessageHandlerFrame: FRAME_ACTOR_CONFIG,
|
||||
});
|
||||
this.registered = true;
|
||||
logger.trace("Registered MessageHandlerFrame actors");
|
||||
lazy.logger.trace("Registered MessageHandlerFrame actors");
|
||||
},
|
||||
};
|
||||
|
|
|
@ -10,7 +10,9 @@ const { XPCOMUtils } = ChromeUtils.import(
|
|||
"resource://gre/modules/XPCOMUtils.jsm"
|
||||
);
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetters(this, {
|
||||
const lazy = {};
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetters(lazy, {
|
||||
error: "chrome://remote/content/shared/messagehandler/Errors.jsm",
|
||||
isBrowsingContextCompatible:
|
||||
"chrome://remote/content/shared/messagehandler/transports/FrameContextUtils.jsm",
|
||||
|
@ -27,10 +29,10 @@ XPCOMUtils.defineLazyModuleGetters(this, {
|
|||
*/
|
||||
class MessageHandlerFrameChild extends JSWindowActorChild {
|
||||
actorCreated() {
|
||||
this.type = WindowGlobalMessageHandler.type;
|
||||
this.type = lazy.WindowGlobalMessageHandler.type;
|
||||
this.context = this.manager.browsingContext;
|
||||
|
||||
this._registry = new MessageHandlerRegistry(this.type, this.context);
|
||||
this._registry = new lazy.MessageHandlerRegistry(this.type, this.context);
|
||||
this._onRegistryEvent = this._onRegistryEvent.bind(this);
|
||||
|
||||
// MessageHandlerFrameChild is responsible for forwarding events from
|
||||
|
@ -42,7 +44,7 @@ class MessageHandlerFrameChild extends JSWindowActorChild {
|
|||
|
||||
handleEvent({ type }) {
|
||||
if (type == "DOMWindowCreated") {
|
||||
if (isBrowsingContextCompatible(this.manager.browsingContext)) {
|
||||
if (lazy.isBrowsingContextCompatible(this.manager.browsingContext)) {
|
||||
this._registry.createAllMessageHandlers();
|
||||
}
|
||||
}
|
||||
|
@ -57,7 +59,7 @@ class MessageHandlerFrameChild extends JSWindowActorChild {
|
|||
try {
|
||||
return await messageHandler.handleCommand(command);
|
||||
} catch (e) {
|
||||
if (e instanceof error.MessageHandlerError) {
|
||||
if (e instanceof lazy.error.MessageHandlerError) {
|
||||
return {
|
||||
error: e.toJSON(),
|
||||
};
|
||||
|
|
|
@ -10,7 +10,9 @@ const { XPCOMUtils } = ChromeUtils.import(
|
|||
"resource://gre/modules/XPCOMUtils.jsm"
|
||||
);
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetters(this, {
|
||||
const lazy = {};
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetters(lazy, {
|
||||
error: "chrome://remote/content/shared/messagehandler/Errors.jsm",
|
||||
RootMessageHandlerRegistry:
|
||||
"chrome://remote/content/shared/messagehandler/RootMessageHandlerRegistry.jsm",
|
||||
|
@ -28,7 +30,7 @@ class MessageHandlerFrameParent extends JSWindowActorParent {
|
|||
const { name, data, isProtocolEvent, sessionId } = message.data;
|
||||
|
||||
// Re-emit the event on the RootMessageHandler.
|
||||
const messageHandler = RootMessageHandlerRegistry.getExistingMessageHandler(
|
||||
const messageHandler = lazy.RootMessageHandlerRegistry.getExistingMessageHandler(
|
||||
sessionId
|
||||
);
|
||||
messageHandler.emitEvent(name, data, { isProtocolEvent });
|
||||
|
@ -61,7 +63,7 @@ class MessageHandlerFrameParent extends JSWindowActorParent {
|
|||
);
|
||||
|
||||
if (result?.error) {
|
||||
throw error.MessageHandlerError.fromJSON(result.error);
|
||||
throw lazy.error.MessageHandlerError.fromJSON(result.error);
|
||||
}
|
||||
|
||||
return result;
|
||||
|
|
Загрузка…
Ссылка в новой задаче