@@ -17,30 +17,31 @@ ChromeUtils.defineLazyGetter(this, "RemoteSettings", () => {
1717const { EventManager } = ExtensionCommon ;
1818const { ExtensionError } = ExtensionUtils ;
1919
20- const SERVER_LOCAL = "http://localhost:8888/v1 " ;
21- const SERVER_PROD = "https://firefox.settings.services.mozilla.com/v1 " ;
22- const SERVER_STAGE = "https://firefox.settings.services.allizom.org/v1 " ;
23- const SERVER_DEV = "https://remote-settings-dev.allizom.org/v1 " ;
20+ const SERVER_LOCAL = "http://localhost:8888" ;
21+ const SERVER_PROD = "https://firefox.settings.services.mozilla.com" ;
22+ const SERVER_STAGE = "https://firefox.settings.services.allizom.org" ;
23+ const SERVER_DEV = "https://remote-settings-dev.allizom.org" ;
2424const MEGAPHONE_STAGE = "wss://autoconnect.stage.mozaws.net" ;
2525
2626async function getState ( ) {
2727 const inspected = await RemoteSettings . inspect ( ) ;
2828
2929 const { collections, serverURL, previewMode } = inspected ;
30- let environment = "custom" ;
31- switch ( serverURL ) {
32- case SERVER_PROD :
33- environment = "prod" ;
34- break ;
35- case SERVER_STAGE :
36- environment = "stage" ;
37- break ;
38- case SERVER_DEV :
39- environment = "dev" ;
40- break ;
41- case SERVER_LOCAL :
42- environment = "local" ;
43- break ;
30+ let environment = "custom" ,
31+ apiVersion = "v1" ;
32+
33+ if ( serverURL . startsWith ( SERVER_PROD ) ) {
34+ environment = "prod" ;
35+ } else if ( serverURL . startsWith ( SERVER_STAGE ) ) {
36+ environment = "stage" ;
37+ } else if ( serverURL . startsWith ( SERVER_DEV ) ) {
38+ environment = "dev" ;
39+ } else if ( serverURL . startsWith ( SERVER_LOCAL ) ) {
40+ environment = "local" ;
41+ }
42+
43+ if ( serverURL . endsWith ( "v2" ) ) {
44+ apiVersion = "v2" ;
4445 }
4546
4647 if ( previewMode ) {
@@ -77,6 +78,7 @@ async function getState() {
7778 return {
7879 ...inspected ,
7980 environment,
81+ apiVersion,
8082 serverSettingIgnored,
8183 signaturesEnabled,
8284 } ;
@@ -136,29 +138,29 @@ var remotesettings = class extends ExtensionAPI {
136138 * setEnvironment() will set the necessary internal preferences to switch from
137139 * an environment to another.
138140 */
139- async switchEnvironment ( env ) {
141+ async switchEnvironment ( env , apiVersion = "v1" ) {
140142 if ( env . includes ( "prod" ) ) {
141143 Services . prefs . setCharPref (
142144 "services.settings.server" ,
143- SERVER_PROD ,
145+ ` ${ SERVER_PROD } / ${ apiVersion } ` ,
144146 ) ;
145147 Services . prefs . clearUserPref ( "dom.push.serverURL" ) ;
146148 } else if ( env . includes ( "stage" ) ) {
147149 Services . prefs . setCharPref (
148150 "services.settings.server" ,
149- SERVER_STAGE ,
151+ ` ${ SERVER_STAGE } / ${ apiVersion } ` ,
150152 ) ;
151153 Services . prefs . setCharPref ( "dom.push.serverURL" , MEGAPHONE_STAGE ) ;
152154 } else if ( env . includes ( "dev" ) ) {
153155 Services . prefs . setCharPref (
154156 "services.settings.server" ,
155- SERVER_DEV ,
157+ ` ${ SERVER_DEV } / ${ apiVersion } ` ,
156158 ) ;
157159 Services . prefs . clearUserPref ( "dom.push.serverURL" ) ;
158160 } else if ( env . includes ( "local" ) ) {
159161 Services . prefs . setCharPref (
160162 "services.settings.server" ,
161- SERVER_LOCAL ,
163+ ` ${ SERVER_LOCAL } / ${ apiVersion } ` ,
162164 ) ;
163165 Services . prefs . clearUserPref ( "dom.push.serverURL" ) ;
164166 }
0 commit comments