diff --git a/remote/shared/messagehandler/Module.jsm b/remote/shared/messagehandler/Module.jsm index 45193b63c6b4..dd07e3645e56 100644 --- a/remote/shared/messagehandler/Module.jsm +++ b/remote/shared/messagehandler/Module.jsm @@ -6,6 +6,17 @@ const EXPORTED_SYMBOLS = ["Module"]; +const { XPCOMUtils } = ChromeUtils.import( + "resource://gre/modules/XPCOMUtils.jsm" +); + +const lazy = {}; + +XPCOMUtils.defineLazyModuleGetters(lazy, { + ContextDescriptorType: + "chrome://remote/content/shared/messagehandler/MessageHandler.jsm", +}); + class Module { #messageHandler; @@ -19,6 +30,25 @@ class Module { this.#messageHandler = messageHandler; } + /** + * Add session data for a given module and event. + * + * @param {string} moduleName + * Name of the module. + * @param {string} event + * Name of the event. + */ + addEventSessionData(moduleName, event) { + return this.messageHandler.addSessionData({ + moduleName, + category: "event", + contextDescriptor: { + type: lazy.ContextDescriptorType.All, + }, + values: [event], + }); + } + /** * Clean-up the module instance. * @@ -60,6 +90,25 @@ class Module { }); } + /** + * Remove session data for a given module and event. + * + * @param {string} moduleName + * Name of the module. + * @param {string} event + * Name of the event. + */ + removeEventSessionData(moduleName, event) { + return this.messageHandler.removeSessionData({ + moduleName, + category: "event", + contextDescriptor: { + type: lazy.ContextDescriptorType.All, + }, + values: [event], + }); + } + /** * Instance shortcut for supportsMethod to avoid reaching the constructor for * consumers which directly deal with an instance. diff --git a/remote/webdriver-bidi/modules/root/browsingContext.jsm b/remote/webdriver-bidi/modules/root/browsingContext.jsm index 9ea3377401da..71426bcd4e81 100644 --- a/remote/webdriver-bidi/modules/root/browsingContext.jsm +++ b/remote/webdriver-bidi/modules/root/browsingContext.jsm @@ -530,45 +530,19 @@ class BrowsingContextModule extends Module { */ _subscribeEvent(params) { - // TODO: Bug 1741861. Move this logic to a shared module or the an abstract - // class. switch (params.event) { case "browsingContext.contextCreated": this.#contextListener.startListening(); - - return this.messageHandler.addSessionData({ - moduleName: "browsingContext", - category: "event", - contextDescriptor: { - type: lazy.ContextDescriptorType.All, - }, - values: [params.event], - }); - default: - throw new Error( - `Unsupported event for browsingContext module ${params.event}` - ); } + return this.addEventSessionData("browsingContext", params.event); } _unsubscribeEvent(params) { switch (params.event) { case "browsingContext.contextCreated": this.#contextListener.stopListening(); - - return this.messageHandler.removeSessionData({ - moduleName: "browsingContext", - category: "event", - contextDescriptor: { - type: lazy.ContextDescriptorType.All, - }, - values: [params.event], - }); - default: - throw new Error( - `Unsupported event for browsingContext module ${params.event}` - ); } + return this.removeEventSessionData("browsingContext", params.event); } static get supportedEvents() { diff --git a/remote/webdriver-bidi/modules/root/log.jsm b/remote/webdriver-bidi/modules/root/log.jsm index 88f486d437df..8acb1510ebb9 100644 --- a/remote/webdriver-bidi/modules/root/log.jsm +++ b/remote/webdriver-bidi/modules/root/log.jsm @@ -6,21 +6,10 @@ const EXPORTED_SYMBOLS = ["log"]; -const { XPCOMUtils } = ChromeUtils.import( - "resource://gre/modules/XPCOMUtils.jsm" -); - const { Module } = ChromeUtils.import( "chrome://remote/content/shared/messagehandler/Module.jsm" ); -const lazy = {}; - -XPCOMUtils.defineLazyModuleGetters(lazy, { - ContextDescriptorType: - "chrome://remote/content/shared/messagehandler/MessageHandler.jsm", -}); - class LogModule extends Module { destroy() {} @@ -29,37 +18,11 @@ class LogModule extends Module { */ _subscribeEvent(params) { - // TODO: Bug 1741861. Move this logic to a shared module or the an abstract - // class. - switch (params.event) { - case "log.entryAdded": - return this.messageHandler.addSessionData({ - moduleName: "log", - category: "event", - contextDescriptor: { - type: lazy.ContextDescriptorType.All, - }, - values: ["log.entryAdded"], - }); - default: - throw new Error(`Unsupported event for log module ${params.event}`); - } + return this.addEventSessionData("log", params.event); } _unsubscribeEvent(params) { - switch (params.event) { - case "log.entryAdded": - return this.messageHandler.removeSessionData({ - moduleName: "log", - category: "event", - contextDescriptor: { - type: lazy.ContextDescriptorType.All, - }, - values: ["log.entryAdded"], - }); - default: - throw new Error(`Unsupported event for log module ${params.event}`); - } + return this.removeEventSessionData("log", params.event); } static get supportedEvents() { diff --git a/remote/webdriver-bidi/modules/windowglobal/browsingContext.jsm b/remote/webdriver-bidi/modules/windowglobal/browsingContext.jsm index 163edad1e2e7..6d8b153e50e4 100644 --- a/remote/webdriver-bidi/modules/windowglobal/browsingContext.jsm +++ b/remote/webdriver-bidi/modules/windowglobal/browsingContext.jsm @@ -62,7 +62,7 @@ class BrowsingContextModule extends Module { */ _applySessionData(params) { - // TODO: Bug 1741861. Move this logic to a shared module or the an abstract + // TODO: Bug 1775231. Move this logic to a shared module or an abstract // class. const { category, added = [], removed = [] } = params; if (category === "internal-event") { diff --git a/remote/webdriver-bidi/modules/windowglobal/log.jsm b/remote/webdriver-bidi/modules/windowglobal/log.jsm index 74c4d09d90b4..3f291bf2645c 100644 --- a/remote/webdriver-bidi/modules/windowglobal/log.jsm +++ b/remote/webdriver-bidi/modules/windowglobal/log.jsm @@ -203,7 +203,7 @@ class LogModule extends Module { */ _applySessionData(params) { - // TODO: Bug 1741861. Move this logic to a shared module or the an abstract + // TODO: Bug 1775231. Move this logic to a shared module or an abstract // class. const { category, added = [], removed = [] } = params; if (category === "event") {