@@ -496,15 +496,21 @@ this.calendar_provider = class extends ExtensionAPI {
496496 if ( this . extension . manifest . calendar_provider ) {
497497 this . onManifestEntry ( "calendar_provider" ) ;
498498 }
499-
499+ const uuid = this . extension . uuid ;
500+ const root = `experiments-calendar-${ uuid } ` ;
501+ const query = this . extension . manifest . version ;
500502 Services . io
501503 . getProtocolHandler ( "resource" )
502504 . QueryInterface ( Ci . nsIResProtocolHandler )
503- . setSubstitution ( "tb-experiments-calendar" , this . extension . rootURI ) ;
505+ . setSubstitution ( root , this . extension . rootURI ) ;
504506
505- const { setupE10sBrowser, unwrapCalendar } = ChromeUtils . importESModule ( "resource://tb-experiments-calendar/experiments/calendar/ext-calendar-utils.sys.mjs" ) ;
507+ const { setupE10sBrowser, unwrapCalendar } = ChromeUtils . importESModule (
508+ `resource://${ root } /experiments/calendar/ext-calendar-utils.sys.mjs?${ query } `
509+ ) ;
506510
507- ChromeUtils . registerWindowActor ( "CalendarProvider" , { child : { esModuleURI : "resource://tb-experiments-calendar/experiments/calendar/child/ext-calendar-provider-actor.sys.mjs" } } ) ;
511+ ChromeUtils . registerWindowActor ( `CalendarProvider-${ uuid } ` , { child : { esModuleURI :
512+ `resource://${ root } /experiments/calendar/child/ext-calendar-provider-actor.sys.mjs?${ query } `
513+ } } ) ;
508514
509515 ExtensionSupport . registerWindowListener ( "ext-calendar-provider-properties-" + this . extension . id , {
510516 chromeURLs : [ "chrome://calendar/content/calendar-properties-dialog.xhtml" ] ,
@@ -606,19 +612,19 @@ this.calendar_provider = class extends ExtensionAPI {
606612 if ( isAppShutdown ) {
607613 return ;
608614 }
615+ const uuid = this . extension . uuid ;
616+ const root = `experiments-calendar-${ uuid } ` ;
609617 ExtensionSupport . unregisterWindowListener ( "ext-calendar-provider-creation-" + this . extension . id ) ;
610618 ExtensionSupport . unregisterWindowListener ( "ext-calendar-provider-properties-" + this . extension . id ) ;
611- ChromeUtils . unregisterWindowActor ( " CalendarProvider" ) ;
619+ ChromeUtils . unregisterWindowActor ( ` CalendarProvider- ${ uuid } ` ) ;
612620
613621 if ( this . extension . manifest . calendar_provider ) {
614622 ExtCalendarProvider . unregister ( this . extension ) ;
615623 }
616-
617- Cu . unload ( "resource://tb-experiments-calendar/experiments/calendar/ext-calendar-utils.sys.mjs" ) ;
618624 Services . io
619625 . getProtocolHandler ( "resource" )
620626 . QueryInterface ( Ci . nsIResProtocolHandler )
621- . setSubstitution ( "tb-experiments-calendar" , null ) ;
627+ . setSubstitution ( root , null ) ;
622628 Services . obs . notifyObservers ( null , "startupcache-invalidate" ) ;
623629 }
624630
@@ -646,11 +652,16 @@ this.calendar_provider = class extends ExtensionAPI {
646652 }
647653
648654 getAPI ( context ) {
655+ const uuid = context . extension . uuid ;
656+ const root = `experiments-calendar-${ uuid } ` ;
657+ const query = context . extension . manifest . version ;
649658 const {
650659 propsToItem,
651660 convertItem,
652661 convertCalendar,
653- } = ChromeUtils . importESModule ( "resource://tb-experiments-calendar/experiments/calendar/ext-calendar-utils.sys.mjs" ) ;
662+ } = ChromeUtils . importESModule (
663+ `resource://${ root } /experiments/calendar/ext-calendar-utils.sys.mjs?${ query } `
664+ ) ;
654665
655666 return {
656667 calendar : {
0 commit comments