From 351cf27036d335e207b2a697423638dd4732cd08 Mon Sep 17 00:00:00 2001 From: "Matt A. Tobin" Date: Mon, 28 May 2018 10:05:20 -0400 Subject: [WebExAM] Issue #402 - Make JSON update manifests assume Firefox instead of Toolkit --- .../webextensions/internal/AddonUpdateChecker.jsm | 17 +++++++++++++---- toolkit/mozapps/webextensions/internal/moz.build | 2 +- 2 files changed, 14 insertions(+), 5 deletions(-) (limited to 'toolkit/mozapps/webextensions') diff --git a/toolkit/mozapps/webextensions/internal/AddonUpdateChecker.jsm b/toolkit/mozapps/webextensions/internal/AddonUpdateChecker.jsm index bdd3a81e7..338b8c8bf 100644 --- a/toolkit/mozapps/webextensions/internal/AddonUpdateChecker.jsm +++ b/toolkit/mozapps/webextensions/internal/AddonUpdateChecker.jsm @@ -26,6 +26,12 @@ const XMLURI_PARSE_ERROR = "http://www.mozilla.org/newlayout/xml/parsererror. const PREF_UPDATE_REQUIREBUILTINCERTS = "extensions.update.requireBuiltInCerts"; +#ifdef MOZ_PHOENIX +const PREF_EM_MIN_COMPAT_PLATFORM_VERSION = "extensions.minCompatiblePlatformVersion"; +const FIREFOX_ID = "{ec8030f7-c20a-464f-9b0e-13a3a9e97384}" +const FIREFOX_APPCOMPATVERSION = "56.9" +#endif + Components.utils.import("resource://gre/modules/Services.jsm"); Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); @@ -446,6 +452,10 @@ function parseRDFManifest(aId, aUpdateKey, aRequest, aManifestData) { * @throws if the update manifest is invalid in any way */ function parseJSONManifest(aId, aUpdateKey, aRequest, aManifestData) { +#ifndef MOZ_PHOENIX + throw Components.Exception("This application does not support JSON update manifests"); +#endif + if (aUpdateKey) throw Components.Exception("Update keys are not supported for JSON update manifests"); @@ -515,10 +525,10 @@ function parseJSONManifest(aId, aUpdateKey, aRequest, aManifestData) { let app = getProperty(applications, "gecko", "object"); let appEntry = { - id: TOOLKIT_ID, + id: FIREFOX_ID, minVersion: getProperty(app, "strict_min_version", "string", - AddonManagerPrivate.webExtensionsMinPlatformVersion), - maxVersion: "*", + Services.prefs.getCharPref(PREF_EM_MIN_COMPAT_PLATFORM_VERSION)), + maxVersion: FIREFOX_APPCOMPATVERSION, }; let result = { @@ -539,7 +549,6 @@ function parseJSONManifest(aId, aUpdateKey, aRequest, aManifestData) { } appEntry.maxVersion = getProperty(app, "strict_max_version", "string"); - result.strictCompatibility = appEntry.maxVersion != "*"; } else if ("advisory_max_version" in app) { appEntry.maxVersion = getProperty(app, "advisory_max_version", "string"); } diff --git a/toolkit/mozapps/webextensions/internal/moz.build b/toolkit/mozapps/webextensions/internal/moz.build index 28c34f8c9..5a3943e59 100644 --- a/toolkit/mozapps/webextensions/internal/moz.build +++ b/toolkit/mozapps/webextensions/internal/moz.build @@ -8,7 +8,6 @@ EXTRA_JS_MODULES.addons += [ 'AddonLogging.jsm', 'AddonRepository.jsm', 'AddonRepository_SQLiteMigrator.jsm', - 'AddonUpdateChecker.jsm', 'APIExtensionBootstrap.js', 'Content.js', 'E10SAddonsRollout.jsm', @@ -33,4 +32,5 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] != 'android': EXTRA_PP_JS_MODULES.addons += [ 'AddonConstants.jsm', + 'AddonUpdateChecker.jsm', ] -- cgit v1.2.3