diff --git a/calendar/experiments/calendar/parent/ext-calendar-calendars.js b/calendar/experiments/calendar/parent/ext-calendar-calendars.js index e3fe6b8..c260de4 100644 --- a/calendar/experiments/calendar/parent/ext-calendar-calendars.js +++ b/calendar/experiments/calendar/parent/ext-calendar-calendars.js @@ -9,12 +9,17 @@ var { cal } = ChromeUtils.importESModule("resource:///modules/calendar/calUtils. this.calendar_calendars = class extends ExtensionAPI { getAPI(context) { + const uuid = context.extension.uuid; + const root = `experiments-calendar-${uuid}`; + const query = context.extension.manifest.version; const { unwrapCalendar, getResolvedCalendarById, isOwnCalendar, convertCalendar, - } = ChromeUtils.importESModule("resource://tb-experiments-calendar/experiments/calendar/ext-calendar-utils.sys.mjs"); + } = ChromeUtils.importESModule( + `resource://${root}/experiments/calendar/ext-calendar-utils.sys.mjs?${query}` + ); return { calendar: { diff --git a/calendar/experiments/calendar/parent/ext-calendar-items.js b/calendar/experiments/calendar/parent/ext-calendar-items.js index e4dca08..f36b5b0 100644 --- a/calendar/experiments/calendar/parent/ext-calendar-items.js +++ b/calendar/experiments/calendar/parent/ext-calendar-items.js @@ -9,6 +9,9 @@ var { cal } = ChromeUtils.importESModule("resource:///modules/calendar/calUtils. this.calendar_items = class extends ExtensionAPI { getAPI(context) { + const uuid = context.extension.uuid; + const root = `experiments-calendar-${uuid}`; + const query = context.extension.manifest.version; const { getResolvedCalendarById, getCachedCalendar, @@ -17,7 +20,9 @@ this.calendar_items = class extends ExtensionAPI { propsToItem, convertItem, convertAlarm, - } = ChromeUtils.importESModule("resource://tb-experiments-calendar/experiments/calendar/ext-calendar-utils.sys.mjs"); + } = ChromeUtils.importESModule( + `resource://${root}/experiments/calendar/ext-calendar-utils.sys.mjs?${query}` + ); return { calendar: { diff --git a/calendar/experiments/calendar/parent/ext-calendar-provider.js b/calendar/experiments/calendar/parent/ext-calendar-provider.js index 89964eb..6c12901 100644 --- a/calendar/experiments/calendar/parent/ext-calendar-provider.js +++ b/calendar/experiments/calendar/parent/ext-calendar-provider.js @@ -496,15 +496,21 @@ this.calendar_provider = class extends ExtensionAPI { if (this.extension.manifest.calendar_provider) { this.onManifestEntry("calendar_provider"); } - + const uuid = this.extension.uuid; + const root = `experiments-calendar-${uuid}`; + const query = this.extension.manifest.version; Services.io .getProtocolHandler("resource") .QueryInterface(Ci.nsIResProtocolHandler) - .setSubstitution("tb-experiments-calendar", this.extension.rootURI); + .setSubstitution(root, this.extension.rootURI); - const { setupE10sBrowser, unwrapCalendar } = ChromeUtils.importESModule("resource://tb-experiments-calendar/experiments/calendar/ext-calendar-utils.sys.mjs"); + const { setupE10sBrowser, unwrapCalendar } = ChromeUtils.importESModule( + `resource://${root}/experiments/calendar/ext-calendar-utils.sys.mjs?${query}` + ); - ChromeUtils.registerWindowActor("CalendarProvider", { child: { esModuleURI: "resource://tb-experiments-calendar/experiments/calendar/child/ext-calendar-provider-actor.sys.mjs" } }); + ChromeUtils.registerWindowActor(`CalendarProvider-${uuid}`, { child: { esModuleURI: + `resource://${root}/experiments/calendar/child/ext-calendar-provider-actor.sys.mjs?${query}` + }}); ExtensionSupport.registerWindowListener("ext-calendar-provider-properties-" + this.extension.id, { chromeURLs: ["chrome://calendar/content/calendar-properties-dialog.xhtml"], @@ -606,19 +612,19 @@ this.calendar_provider = class extends ExtensionAPI { if (isAppShutdown) { return; } + const uuid = this.extension.uuid; + const root = `experiments-calendar-${uuid}`; ExtensionSupport.unregisterWindowListener("ext-calendar-provider-creation-" + this.extension.id); ExtensionSupport.unregisterWindowListener("ext-calendar-provider-properties-" + this.extension.id); - ChromeUtils.unregisterWindowActor("CalendarProvider"); + ChromeUtils.unregisterWindowActor(`CalendarProvider-${uuid}`); if (this.extension.manifest.calendar_provider) { ExtCalendarProvider.unregister(this.extension); } - - Cu.unload("resource://tb-experiments-calendar/experiments/calendar/ext-calendar-utils.sys.mjs"); Services.io .getProtocolHandler("resource") .QueryInterface(Ci.nsIResProtocolHandler) - .setSubstitution("tb-experiments-calendar", null); + .setSubstitution(root, null); Services.obs.notifyObservers(null, "startupcache-invalidate"); } @@ -646,11 +652,16 @@ this.calendar_provider = class extends ExtensionAPI { } getAPI(context) { + const uuid = context.extension.uuid; + const root = `experiments-calendar-${uuid}`; + const query = context.extension.manifest.version; const { propsToItem, convertItem, convertCalendar, - } = ChromeUtils.importESModule("resource://tb-experiments-calendar/experiments/calendar/ext-calendar-utils.sys.mjs"); + } = ChromeUtils.importESModule( + `resource://${root}/experiments/calendar/ext-calendar-utils.sys.mjs?${query}` + ); return { calendar: { diff --git a/calendar/experiments/calendar/parent/ext-calendarItemDetails.js b/calendar/experiments/calendar/parent/ext-calendarItemDetails.js index d0d6fad..1e9d58e 100644 --- a/calendar/experiments/calendar/parent/ext-calendarItemDetails.js +++ b/calendar/experiments/calendar/parent/ext-calendarItemDetails.js @@ -12,7 +12,12 @@ Cu.importGlobalProperties(["URL"]); this.calendarItemDetails = class extends ExtensionAPI { onLoadCalendarItemPanel(window, origLoadCalendarItemPanel, iframeId, url) { - const { setupE10sBrowser } = ChromeUtils.importESModule("resource://tb-experiments-calendar/experiments/calendar/ext-calendar-utils.sys.mjs"); + const uuid = this.extension.uuid; + const root = `experiments-calendar-${uuid}`; + const query = this.extension.manifest.version; + const { setupE10sBrowser } = ChromeUtils.importESModule( + `resource://${root}/experiments/calendar/ext-calendar-utils.sys.mjs?${query}` + ); const res = origLoadCalendarItemPanel(iframeId, url); if (!this.extension.manifest.calendar_item_details) { @@ -96,7 +101,12 @@ this.calendarItemDetails = class extends ExtensionAPI { } onLoadSummary(window) { - const { setupE10sBrowser } = ChromeUtils.importESModule("resource://tb-experiments-calendar/experiments/calendar/ext-calendar-utils.sys.mjs"); + const uuid = this.extension.uuid; + const root = `experiments-calendar-${uuid}`; + const query = this.extension.manifest.version; + const { setupE10sBrowser } = ChromeUtils.importESModule( + `resource://${root}/experiments/calendar/ext-calendar-utils.sys.mjs?${query}` + ); const document = window.document;