--- a/toolkit/mozapps/extensions/internal/AddonUpdateChecker.jsm
+++ b/toolkit/mozapps/extensions/internal/AddonUpdateChecker.jsm
@@ -7,49 +7,42 @@
* from an add-on's remote update manifest.
*/
"use strict";
var EXPORTED_SYMBOLS = [ "AddonUpdateChecker" ];
const TIMEOUT = 60 * 1000;
-const PREFIX_NS_RDF = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
-const PREFIX_NS_EM = "http://www.mozilla.org/2004/em-rdf#";
-const PREFIX_ITEM = "urn:mozilla:item:";
-const PREFIX_EXTENSION = "urn:mozilla:extension:";
-const PREFIX_THEME = "urn:mozilla:theme:";
const TOOLKIT_ID = "toolkit@mozilla.org";
-const XMLURI_PARSE_ERROR = "http://www.mozilla.org/newlayout/xml/parsererror.xml";
const PREF_UPDATE_REQUIREBUILTINCERTS = "extensions.update.requireBuiltInCerts";
ChromeUtils.import("resource://gre/modules/Services.jsm");
ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
ChromeUtils.defineModuleGetter(this, "AddonManager",
"resource://gre/modules/AddonManager.jsm");
ChromeUtils.defineModuleGetter(this, "AddonManagerPrivate",
"resource://gre/modules/AddonManager.jsm");
ChromeUtils.defineModuleGetter(this, "AddonRepository",
"resource://gre/modules/addons/AddonRepository.jsm");
ChromeUtils.defineModuleGetter(this, "ServiceRequest",
"resource://gre/modules/ServiceRequest.jsm");
+ChromeUtils.defineModuleGetter(this, "UpdateRDFConverter",
+ "resource://gre/modules/addons/UpdateRDFConverter.jsm");
// Shared code for suppressing bad cert dialogs.
XPCOMUtils.defineLazyGetter(this, "CertUtils", function() {
let certUtils = {};
ChromeUtils.import("resource://gre/modules/CertUtils.jsm", certUtils);
return certUtils;
});
-var gRDF = Cc["@mozilla.org/rdf/rdf-service;1"].
- getService(Ci.nsIRDFService);
-
ChromeUtils.import("resource://gre/modules/Log.jsm");
const LOGGER_ID = "addons.update-checker";
// Create a new logger for use by the Addons Update Checker
// (Requires AddonManager.jsm)
var logger = Log.repository.getLogger(LOGGER_ID);
/**
@@ -90,150 +83,16 @@ function sanitizeUpdateURL(aUpdate, aReq
`by a strong enough hash (needs to be ${aHashString}).`);
delete aUpdate.updateURL;
delete aUpdate.updateHash;
}
}
}
/**
- * Parses an RDF style update manifest into an array of update objects.
- *
- * @param aId
- * The ID of the add-on being checked for updates
- * @param aRequest
- * The XMLHttpRequest that has retrieved the update manifest
- * @param aManifestData
- * The pre-parsed manifest, as a bare XML DOM document
- * @return an array of update objects
- * @throws if the update manifest is invalid in any way
- */
-function parseRDFManifest(aId, aRequest, aManifestData) {
- if (aManifestData.documentElement.namespaceURI != PREFIX_NS_RDF) {
- throw Components.Exception("Update manifest had an unrecognised namespace: " +
- aManifestData.documentElement.namespaceURI);
- }
-
- function EM_R(aProp) {
- return gRDF.GetResource(PREFIX_NS_EM + aProp);
- }
-
- function getValue(aLiteral) {
- if (aLiteral instanceof Ci.nsIRDFLiteral)
- return aLiteral.Value;
- if (aLiteral instanceof Ci.nsIRDFResource)
- return aLiteral.Value;
- if (aLiteral instanceof Ci.nsIRDFInt)
- return aLiteral.Value;
- return null;
- }
-
- function getProperty(aDs, aSource, aProperty) {
- return getValue(aDs.GetTarget(aSource, EM_R(aProperty), true));
- }
-
- function getBooleanProperty(aDs, aSource, aProperty) {
- let propValue = aDs.GetTarget(aSource, EM_R(aProperty), true);
- if (!propValue)
- return undefined;
- return getValue(propValue) == "true";
- }
-
- function getRequiredProperty(aDs, aSource, aProperty) {
- let value = getProperty(aDs, aSource, aProperty);
- if (!value)
- throw Components.Exception("Update manifest is missing a required " + aProperty + " property.");
- return value;
- }
-
- let rdfParser = Cc["@mozilla.org/rdf/xml-parser;1"].
- createInstance(Ci.nsIRDFXMLParser);
- let ds = Cc["@mozilla.org/rdf/datasource;1?name=in-memory-datasource"].
- createInstance(Ci.nsIRDFDataSource);
- rdfParser.parseString(ds, aRequest.channel.URI, aRequest.responseText);
-
- // Differentiating between add-on types is deprecated
- let extensionRes = gRDF.GetResource(PREFIX_EXTENSION + aId);
- let themeRes = gRDF.GetResource(PREFIX_THEME + aId);
- let itemRes = gRDF.GetResource(PREFIX_ITEM + aId);
- let addonRes;
- if (ds.ArcLabelsOut(extensionRes).hasMoreElements())
- addonRes = extensionRes;
- else if (ds.ArcLabelsOut(themeRes).hasMoreElements())
- addonRes = themeRes;
- else
- addonRes = itemRes;
-
- let updates = ds.GetTarget(addonRes, EM_R("updates"), true);
-
- // A missing updates property doesn't count as a failure, just as no avialable
- // update information
- if (!updates) {
- logger.warn("Update manifest for " + aId + " did not contain an updates property");
- return [];
- }
-
- if (!(updates instanceof Ci.nsIRDFResource))
- throw Components.Exception("Missing updates property for " + addonRes.Value);
-
- let cu = Cc["@mozilla.org/rdf/container-utils;1"].
- getService(Ci.nsIRDFContainerUtils);
- if (!cu.IsContainer(ds, updates))
- throw Components.Exception("Updates property was not an RDF container");
-
- let results = [];
- let ctr = Cc["@mozilla.org/rdf/container;1"].
- createInstance(Ci.nsIRDFContainer);
- ctr.Init(ds, updates);
- let items = ctr.GetElements();
- while (items.hasMoreElements()) {
- let item = items.getNext().QueryInterface(Ci.nsIRDFResource);
- let version = getProperty(ds, item, "version");
- if (!version) {
- logger.warn("Update manifest is missing a required version property.");
- continue;
- }
-
- logger.debug("Found an update entry for " + aId + " version " + version);
-
- let targetApps = ds.GetTargets(item, EM_R("targetApplication"), true);
- while (targetApps.hasMoreElements()) {
- let targetApp = targetApps.getNext().QueryInterface(Ci.nsIRDFResource);
-
- let appEntry = {};
- try {
- appEntry.id = getRequiredProperty(ds, targetApp, "id");
- appEntry.minVersion = getRequiredProperty(ds, targetApp, "minVersion");
- appEntry.maxVersion = getRequiredProperty(ds, targetApp, "maxVersion");
- } catch (e) {
- logger.warn(e);
- continue;
- }
-
- let result = {
- id: aId,
- version,
- updateURL: getProperty(ds, targetApp, "updateLink"),
- updateHash: getProperty(ds, targetApp, "updateHash"),
- updateInfoURL: getProperty(ds, targetApp, "updateInfoURL"),
- strictCompatibility: !!getBooleanProperty(ds, targetApp, "strictCompatibility"),
- targetApplications: [appEntry]
- };
-
- // The JSON update protocol requires an SHA-2 hash. RDF still
- // supports SHA-1, for compatibility reasons.
- sanitizeUpdateURL(result, aRequest, /^sha/, "sha1 or stronger");
-
- results.push(result);
- }
- }
- return results;
-}
-
-/**
* Parses an JSON update manifest into an array of update objects.
*
* @param aId
* The ID of the add-on being checked for updates
* @param aRequest
* The XMLHttpRequest that has retrieved the update manifest
* @param aManifestData
* The pre-parsed manifest, as a JSON object tree
@@ -330,16 +189,26 @@ function parseJSONManifest(aId, aRequest
}
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");
}
+ // Add an app entry for the current API ID, too, so that it overrides any
+ // existing app-specific entries, which would take priority over the toolkit
+ // entry.
+ //
+ // Note: This currently only has any effect on legacy extensions (mainly
+ // those used in tests), since WebExtensions cannot yet specify app-specific
+ // compatibility ranges.
+ result.targetApplications.push(Object.assign({}, appEntry,
+ {id: Services.appinfo.ID}));
+
// The JSON update protocol requires an SHA-2 hash. RDF still
// supports SHA-1, for compatibility reasons.
sanitizeUpdateURL(result, aRequest, /^sha(256|512):/, "sha256 or sha512");
results.push(result);
}
return results;
}
@@ -417,42 +286,36 @@ UpdateParser.prototype = {
logger.warn("Request failed: " + this.url + " - " + channel.responseStatus +
": " + channel.responseStatusText);
this.notifyError(AddonManager.ERROR_DOWNLOAD_ERROR);
return;
}
// Detect the manifest type by first attempting to parse it as
// JSON, and falling back to parsing it as XML if that fails.
- let parser;
+ let json;
try {
- try {
- let json = JSON.parse(request.responseText);
+ let data = request.responseText;
+ if (data.startsWith("<?xml")) {
+ logger.warn(`${this.url}: RDF update manifests are deprecated, ` +
+ "and support will soon be removed");
- parser = () => parseJSONManifest(this.id, request, json);
- } catch (e) {
- if (!(e instanceof SyntaxError))
- throw e;
- let domParser = Cc["@mozilla.org/xmlextras/domparser;1"].createInstance(Ci.nsIDOMParser);
- let xml = domParser.parseFromString(request.responseText, "text/xml");
-
- if (xml.documentElement.namespaceURI == XMLURI_PARSE_ERROR)
- throw new Error("Update manifest was not valid XML or JSON");
-
- parser = () => parseRDFManifest(this.id, request, xml);
+ json = UpdateRDFConverter.convertToJSON(request);
+ } else {
+ json = JSON.parse(data);
}
} catch (e) {
logger.warn("onUpdateCheckComplete failed to determine manifest type");
this.notifyError(AddonManager.ERROR_UNKNOWN_FORMAT);
return;
}
let results;
try {
- results = parser();
+ results = parseJSONManifest(this.id, request, json);
} catch (e) {
logger.warn("onUpdateCheckComplete failed to parse update manifest", e);
this.notifyError(AddonManager.ERROR_PARSE_ERROR);
return;
}
if ("onUpdateCheckComplete" in this.observer) {
try {
new file mode 100644
--- /dev/null
+++ b/toolkit/mozapps/extensions/internal/UpdateRDFConverter.jsm
@@ -0,0 +1,159 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+"use strict";
+
+var EXPORTED_SYMBOLS = ["UpdateRDFConverter"];
+
+const PREFIX_NS_EM = "http://www.mozilla.org/2004/em-rdf#";
+const PREFIX_ITEM = "urn:mozilla:item:";
+const PREFIX_EXTENSION = "urn:mozilla:extension:";
+const PREFIX_THEME = "urn:mozilla:theme:";
+
+const TOOLKIT_ID = "toolkit@mozilla.org";
+
+ChromeUtils.import("resource://gre/modules/Services.jsm");
+ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
+
+XPCOMUtils.defineLazyServiceGetters(this, {
+ gRDF: ["@mozilla.org/rdf/rdf-service;1", "nsIRDFService"],
+ containerUtils: ["@mozilla.org/rdf/container-utils;1", "nsIRDFContainerUtils"],
+});
+
+const RDFContainer = Components.Constructor(
+ "@mozilla.org/rdf/container;1", "nsIRDFContainer", "Init");
+const RDFDataSource = Components.Constructor(
+ "@mozilla.org/rdf/datasource;1?name=in-memory-datasource", "nsIRDFDataSource");
+const RDFParser = Components.Constructor(
+ "@mozilla.org/rdf/xml-parser;1", "nsIRDFXMLParser");
+
+/**
+ * Parses an RDF style update manifest into a JSON-style update
+ * manifest.
+ *
+ * @param {XMLHttpRequest> aRequest
+ * The XMLHttpRequest that has retrieved the update manifest
+ * @returns {object} a JSON update manifest.
+ */
+function parseRDFManifest(aRequest) {
+ function EM_R(aProp) {
+ return gRDF.GetResource(PREFIX_NS_EM + aProp);
+ }
+
+ function getValue(aLiteral) {
+ if (aLiteral instanceof Ci.nsIRDFLiteral)
+ return aLiteral.Value;
+ if (aLiteral instanceof Ci.nsIRDFResource)
+ return aLiteral.Value;
+ if (aLiteral instanceof Ci.nsIRDFInt)
+ return aLiteral.Value;
+ return null;
+ }
+
+ function getProperty(aDs, aSource, aProperty) {
+ return getValue(aDs.GetTarget(aSource, EM_R(aProperty), true));
+ }
+
+ function getBooleanProperty(aDs, aSource, aProperty) {
+ let propValue = aDs.GetTarget(aSource, EM_R(aProperty), true);
+ if (!propValue)
+ return undefined;
+ return getValue(propValue) == "true";
+ }
+
+ let rdfParser = new RDFParser();
+ let ds = new RDFDataSource();
+ rdfParser.parseString(ds, aRequest.channel.URI, aRequest.responseText);
+
+ let addons = {};
+ let result = {addons};
+
+ for (let addonRes of XPCOMUtils.IterSimpleEnumerator(ds.GetAllResources(), Ci.nsIRDFResource)) {
+ let value = addonRes.ValueUTF8;
+ let id;
+ for (let prefix of [PREFIX_EXTENSION, PREFIX_THEME, PREFIX_ITEM]) {
+ if (value.startsWith(prefix)) {
+ id = value.substr(prefix.length);
+ break;
+ }
+ }
+ if (!id) {
+ continue;
+ }
+
+ let addon = {};
+ addons[id] = addon;
+
+ let updatesTarget = ds.GetTarget(addonRes, EM_R("updates"), true);
+ if (!(updatesTarget instanceof Ci.nsIRDFResource) ||
+ !containerUtils.IsContainer(ds, updatesTarget)) {
+ continue;
+ }
+
+ let updates = [];
+ addon.updates = updates;
+
+ let ctr = new RDFContainer(ds, updatesTarget);
+ for (let item of XPCOMUtils.IterSimpleEnumerator(ctr.GetElements(),
+ Ci.nsIRDFResource)) {
+ let version = getProperty(ds, item, "version");
+
+ let targetApps = ds.GetTargets(item, EM_R("targetApplication"), true);
+ for (let targetApp of XPCOMUtils.IterSimpleEnumerator(targetApps,
+ Ci.nsIRDFResource)) {
+ let appEntry = {};
+
+ let minVersion = getProperty(ds, targetApp, "minVersion");
+ if (minVersion) {
+ appEntry.strict_min_version = minVersion;
+ }
+
+ let maxVersion = getProperty(ds, targetApp, "maxVersion");
+ if (maxVersion) {
+ if (getBooleanProperty(ds, targetApp, "strictCompatibility")) {
+ appEntry.strict_max_version = maxVersion;
+ } else {
+ appEntry.advisory_max_version = maxVersion;
+ }
+ }
+
+ let appId = getProperty(ds, targetApp, "id");
+ if (!appId) {
+ continue;
+ }
+ if (appId === TOOLKIT_ID || appId === Services.appinfo.ID) {
+ appId = "gecko";
+ }
+
+ let update = {
+ applications: {[appId]: appEntry},
+ };
+ if (version) {
+ update.version = version;
+ }
+ let updateLink = getProperty(ds, targetApp, "updateLink");
+ if (updateLink) {
+ update.update_link = updateLink;
+ }
+ let updateInfoURL = getProperty(ds, targetApp, "updateInfoURL");
+ if (updateInfoURL) {
+ update.update_info_url = updateInfoURL;
+ }
+ let updateHash = getProperty(ds, targetApp, "updateHash");
+ if (updateHash) {
+ update.update_hash = updateHash;
+ }
+
+ updates.push(update);
+ }
+ }
+ }
+
+ return result;
+}
+
+var UpdateRDFConverter = {
+ convertToJSON(request) {
+ return parseRDFManifest(request);
+ },
+};
--- a/toolkit/mozapps/extensions/internal/moz.build
+++ b/toolkit/mozapps/extensions/internal/moz.build
@@ -9,16 +9,17 @@ EXTRA_JS_MODULES.addons += [
'AddonSettings.jsm',
'AddonUpdateChecker.jsm',
'APIExtensionBootstrap.js',
'Content.js',
'GMPProvider.jsm',
'LightweightThemeImageOptimizer.jsm',
'ProductAddonChecker.jsm',
'SpellCheckDictionaryBootstrap.js',
+ 'UpdateRDFConverter.jsm',
'XPIInstall.jsm',
'XPIProvider.jsm',
'XPIProviderUtils.js',
]
TESTING_JS_MODULES += [
'AddonTestUtils.jsm',
]
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/addons/test_bug299716_2/install.rdf
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0"?>
-
-<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:em="http://www.mozilla.org/2004/em-rdf#">
- <Description about="urn:mozilla:install-manifest">
- <em:id>bug299716-2@tests.mozilla.org</em:id>
- <em:version>0.1</em:version>
-
- <!-- XPCShell -->
- <em:targetApplication>
- <Description>
- <em:id>xpcshell@tests.mozilla.org</em:id>
- <em:minVersion>1</em:minVersion>
- <em:maxVersion>1</em:maxVersion>
- </Description>
- </em:targetApplication>
-
- <!-- Toolkit -->
- <em:targetApplication>
- <Description>
- <em:id>toolkit@mozilla.org</em:id>
- <em:minVersion>1.9</em:minVersion>
- <em:maxVersion>1.9</em:maxVersion>
- </Description>
- </em:targetApplication>
-
- <em:name>Bug 299716</em:name>
- <em:updateURL>http://example.com/data/test_bug299716_2.rdf</em:updateURL>
- </Description>
-</RDF>
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/addons/test_bug299716_a_1/install.rdf
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0"?>
-
-<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:em="http://www.mozilla.org/2004/em-rdf#">
-
- <Description about="urn:mozilla:install-manifest">
- <em:id>bug299716-a@tests.mozilla.org</em:id>
- <em:version>0.1</em:version>
-
- <em:targetApplication>
- <Description>
- <em:id>xpcshell@tests.mozilla.org</em:id>
- <em:minVersion>5</em:minVersion>
- <em:maxVersion>5</em:maxVersion>
- </Description>
- </em:targetApplication>
-
- <em:name>Bug 299716 test A</em:name>
- <em:updateURL>http://example.com/data/test_bug299716.rdf</em:updateURL>
- </Description>
-</RDF>
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/addons/test_bug299716_a_2/install.rdf
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0"?>
-
-<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:em="http://www.mozilla.org/2004/em-rdf#">
-
- <Description about="urn:mozilla:install-manifest">
- <em:id>bug299716-a@tests.mozilla.org</em:id>
- <em:version>0.2</em:version>
-
- <em:targetApplication>
- <Description>
- <em:id>xpcshell@tests.mozilla.org</em:id>
- <em:minVersion>5</em:minVersion>
- <em:maxVersion>5</em:maxVersion>
- </Description>
- </em:targetApplication>
-
- <em:name>Bug 299716 test A</em:name>
- <em:updateURL>http://example.com/data/test_bug299716.rdf</em:updateURL>
- </Description>
-</RDF>
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/addons/test_bug299716_b_1/install.rdf
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0"?>
-
-<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:em="http://www.mozilla.org/2004/em-rdf#">
- <Description about="urn:mozilla:install-manifest">
- <em:id>bug299716-b@tests.mozilla.org</em:id>
- <em:version>0.1</em:version>
-
- <em:targetApplication>
- <Description>
- <em:id>toolkit@mozilla.org</em:id>
- <em:minVersion>1.9</em:minVersion>
- <em:maxVersion>1.9</em:maxVersion>
- </Description>
- </em:targetApplication>
-
- <em:name>Bug 299716 test B</em:name>
- <em:updateURL>http://example.com/data/test_bug299716.rdf</em:updateURL>
- </Description>
-</RDF>
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/addons/test_bug299716_b_2/install.rdf
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0"?>
-
-<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:em="http://www.mozilla.org/2004/em-rdf#">
- <Description about="urn:mozilla:install-manifest">
- <em:id>bug299716-b@tests.mozilla.org</em:id>
- <em:version>0.2</em:version>
-
- <em:targetApplication>
- <Description>
- <em:id>toolkit@mozilla.org</em:id>
- <em:minVersion>1.9</em:minVersion>
- <em:maxVersion>1.9</em:maxVersion>
- </Description>
- </em:targetApplication>
-
- <em:name>Bug 299716 test B</em:name>
- <em:updateURL>http://example.com/data/test_bug299716.rdf</em:updateURL>
- </Description>
-</RDF>
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/addons/test_bug299716_c_1/install.rdf
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0"?>
-
-<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:em="http://www.mozilla.org/2004/em-rdf#">
- <Description about="urn:mozilla:install-manifest">
- <em:id>bug299716-c@tests.mozilla.org</em:id>
- <em:version>0.1</em:version>
-
- <!-- XPCShell -->
- <em:targetApplication>
- <Description>
- <em:id>xpcshell@tests.mozilla.org</em:id>
- <em:minVersion>5</em:minVersion>
- <em:maxVersion>5</em:maxVersion>
- </Description>
- </em:targetApplication>
-
- <!-- Toolkit -->
- <em:targetApplication>
- <Description>
- <em:id>toolkit@mozilla.org</em:id>
- <em:minVersion>1.9</em:minVersion>
- <em:maxVersion>1.9</em:maxVersion>
- </Description>
- </em:targetApplication>
-
- <em:name>Bug 299716 test C</em:name>
- <em:updateURL>http://example.com/data/test_bug299716.rdf</em:updateURL>
- </Description>
-</RDF>
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/addons/test_bug299716_c_2/install.rdf
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0"?>
-
-<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:em="http://www.mozilla.org/2004/em-rdf#">
- <Description about="urn:mozilla:install-manifest">
- <em:id>bug299716-c@tests.mozilla.org</em:id>
- <em:version>0.2</em:version>
-
- <!-- XPCShell -->
- <em:targetApplication>
- <Description>
- <em:id>xpcshell@tests.mozilla.org</em:id>
- <em:minVersion>5</em:minVersion>
- <em:maxVersion>5</em:maxVersion>
- </Description>
- </em:targetApplication>
-
- <!-- Toolkit -->
- <em:targetApplication>
- <Description>
- <em:id>toolkit@mozilla.org</em:id>
- <em:minVersion>1.9</em:minVersion>
- <em:maxVersion>1.9</em:maxVersion>
- </Description>
- </em:targetApplication>
-
- <em:name>Bug 299716 test C</em:name>
- <em:updateURL>http://example.com/data/test_bug299716.rdf</em:updateURL>
- </Description>
-</RDF>
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/addons/test_bug299716_d_1/install.rdf
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0"?>
-
-<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:em="http://www.mozilla.org/2004/em-rdf#">
- <Description about="urn:mozilla:install-manifest">
- <em:id>bug299716-d@tests.mozilla.org</em:id>
- <em:version>0.1</em:version>
-
- <!-- XPCShell -->
- <em:targetApplication>
- <Description>
- <em:id>xpcshell@tests.mozilla.org</em:id>
- <em:minVersion>5</em:minVersion>
- <em:maxVersion>5</em:maxVersion>
- </Description>
- </em:targetApplication>
-
- <!-- Toolkit, invalid -->
- <em:targetApplication>
- <Description>
- <em:id>toolkit@mozilla.org</em:id>
- <em:minVersion>30</em:minVersion>
- <em:maxVersion>30</em:maxVersion>
- </Description>
- </em:targetApplication>
-
- <em:name>Bug 299716 test D</em:name>
- <em:updateURL>http://example.com/data/test_bug299716.rdf</em:updateURL>
- </Description>
-</RDF>
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/addons/test_bug299716_d_2/install.rdf
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0"?>
-
-<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:em="http://www.mozilla.org/2004/em-rdf#">
- <Description about="urn:mozilla:install-manifest">
- <em:id>bug299716-d@tests.mozilla.org</em:id>
- <em:version>0.2</em:version>
-
- <!-- XPCShell -->
- <em:targetApplication>
- <Description>
- <em:id>xpcshell@tests.mozilla.org</em:id>
- <em:minVersion>5</em:minVersion>
- <em:maxVersion>5</em:maxVersion>
- </Description>
- </em:targetApplication>
-
- <!-- Toolkit, invalid -->
- <em:targetApplication>
- <Description>
- <em:id>toolkit@mozilla.org</em:id>
- <em:minVersion>30</em:minVersion>
- <em:maxVersion>30</em:maxVersion>
- </Description>
- </em:targetApplication>
-
- <em:name>Bug 299716 test D</em:name>
- <em:updateURL>http://example.com/data/test_bug299716.rdf</em:updateURL>
- </Description>
-</RDF>
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/addons/test_bug299716_e_1/install.rdf
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0"?>
-
-<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:em="http://www.mozilla.org/2004/em-rdf#">
- <Description about="urn:mozilla:install-manifest">
- <em:id>bug299716-e@tests.mozilla.org</em:id>
- <em:version>0.1</em:version>
-
- <!-- Toolkit -->
- <em:targetApplication>
- <Description>
- <em:id>toolkit@mozilla.org</em:id>
- <em:minVersion>1.9</em:minVersion>
- <em:maxVersion>1.9</em:maxVersion>
- </Description>
- </em:targetApplication>
-
- <!-- XPCShell, invalid -->
- <em:targetApplication>
- <Description>
- <em:id>xpcshell@tests.mozilla.org</em:id>
- <em:minVersion>30</em:minVersion>
- <em:maxVersion>30</em:maxVersion>
- </Description>
- </em:targetApplication>
-
- <em:name>Bug 299716 test E</em:name>
- <em:updateURL>http://example.com/data/test_bug299716.rdf</em:updateURL>
- </Description>
-</RDF>
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/addons/test_bug299716_e_2/install.rdf
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0"?>
-
-<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:em="http://www.mozilla.org/2004/em-rdf#">
- <Description about="urn:mozilla:install-manifest">
- <em:id>bug299716-e@tests.mozilla.org</em:id>
- <em:version>0.2</em:version>
-
- <!-- Toolkit -->
- <em:targetApplication>
- <Description>
- <em:id>toolkit@mozilla.org</em:id>
- <em:minVersion>1.9</em:minVersion>
- <em:maxVersion>1.9</em:maxVersion>
- </Description>
- </em:targetApplication>
-
- <!-- XPCShell, invalid -->
- <em:targetApplication>
- <Description>
- <em:id>xpcshell@tests.mozilla.org</em:id>
- <em:minVersion>30</em:minVersion>
- <em:maxVersion>30</em:maxVersion>
- </Description>
- </em:targetApplication>
-
- <em:name>Bug 299716 test E</em:name>
- <em:updateURL>http://example.com/data/test_bug299716.rdf</em:updateURL>
- </Description>
-</RDF>
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/addons/test_bug299716_f_1/install.rdf
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0"?>
-
-<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:em="http://www.mozilla.org/2004/em-rdf#">
- <Description about="urn:mozilla:install-manifest">
- <em:id>bug299716-f@tests.mozilla.org</em:id>
- <em:version>0.1</em:version>
-
- <!-- Toolkit, invalid -->
- <em:targetApplication>
- <Description>
- <em:id>toolkit@mozilla.org</em:id>
- <em:minVersion>30</em:minVersion>
- <em:maxVersion>30</em:maxVersion>
- </Description>
- </em:targetApplication>
-
- <!-- XPCShell, invalid -->
- <em:targetApplication>
- <Description>
- <em:id>xpcshell@tests.mozilla.org</em:id>
- <em:minVersion>30</em:minVersion>
- <em:maxVersion>30</em:maxVersion>
- </Description>
- </em:targetApplication>
-
- <em:name>Bug 299716 test F</em:name>
- <em:updateURL>http://example.com/data/test_bug299716.rdf</em:updateURL>
- </Description>
-</RDF>
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/addons/test_bug299716_f_2/install.rdf
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0"?>
-
-<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:em="http://www.mozilla.org/2004/em-rdf#">
- <Description about="urn:mozilla:install-manifest">
- <em:id>bug299716-f@tests.mozilla.org</em:id>
- <em:version>0.2</em:version>
-
- <!-- Toolkit, invalid -->
- <em:targetApplication>
- <Description>
- <em:id>toolkit@mozilla.org</em:id>
- <em:minVersion>30</em:minVersion>
- <em:maxVersion>30</em:maxVersion>
- </Description>
- </em:targetApplication>
-
- <!-- XPCShell, invalid -->
- <em:targetApplication>
- <Description>
- <em:id>xpcshell@tests.mozilla.org</em:id>
- <em:minVersion>30</em:minVersion>
- <em:maxVersion>30</em:maxVersion>
- </Description>
- </em:targetApplication>
-
- <em:name>Bug 299716 test F</em:name>
- <em:updateURL>http://example.com/data/test_bug299716.rdf</em:updateURL>
- </Description>
-</RDF>
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/addons/test_bug299716_g_1/install.rdf
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0"?>
-
-<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:em="http://www.mozilla.org/2004/em-rdf#">
- <Description about="urn:mozilla:install-manifest">
- <em:id>bug299716-g@tests.mozilla.org</em:id>
- <em:version>0.1</em:version>
-
- <!-- Toolkit, invalid -->
- <em:targetApplication>
- <Description>
- <em:id>toolkit@mozilla.org</em:id>
- <em:minVersion>30</em:minVersion>
- <em:maxVersion>30</em:maxVersion>
- </Description>
- </em:targetApplication>
-
- <em:name>Bug 299716 test G</em:name>
- <em:updateURL>http://example.com/data/test_bug299716.rdf</em:updateURL>
- </Description>
-</RDF>
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/addons/test_bug299716_g_2/install.rdf
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0"?>
-
-<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:em="http://www.mozilla.org/2004/em-rdf#">
- <Description about="urn:mozilla:install-manifest">
- <em:id>bug299716-g@tests.mozilla.org</em:id>
- <em:version>0.2</em:version>
-
- <!-- Toolkit, invalid -->
- <em:targetApplication>
- <Description>
- <em:id>toolkit@mozilla.org</em:id>
- <em:minVersion>30</em:minVersion>
- <em:maxVersion>30</em:maxVersion>
- </Description>
- </em:targetApplication>
-
- <em:name>Bug 299716 test G</em:name>
- <em:updateURL>http://example.com/data/test_bug299716.rdf</em:updateURL>
- </Description>
-</RDF>
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/addons/test_bug394300_1/install.rdf
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0"?>
-
-<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:em="http://www.mozilla.org/2004/em-rdf#">
-
- <Description about="urn:mozilla:install-manifest">
- <em:id>bug394300_1@tests.mozilla.org</em:id>
- <em:version>5</em:version>
-
- <em:targetApplication>
- <Description>
- <em:id>xpcshell@tests.mozilla.org</em:id>
- <em:minVersion>1</em:minVersion>
- <em:maxVersion>1</em:maxVersion>
- </Description>
- </em:targetApplication>
-
- <em:name>Bug 394300 Test 1</em:name>
- <em:updateURL>http://example.com/test_bug394300.rdf</em:updateURL>
-
- </Description>
-</RDF>
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/addons/test_bug394300_2/install.rdf
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0"?>
-
-<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:em="http://www.mozilla.org/2004/em-rdf#">
-
- <Description about="urn:mozilla:install-manifest">
- <em:id>bug394300_2@tests.mozilla.org</em:id>
- <em:version>5</em:version>
-
- <em:targetApplication>
- <Description>
- <em:id>toolkit@mozilla.org</em:id>
- <em:minVersion>1.9</em:minVersion>
- <em:maxVersion>1.9</em:maxVersion>
- </Description>
- </em:targetApplication>
-
- <em:name>Bug 394300 Test 2</em:name>
- <em:updateURL>http://example.com/test_bug394300.rdf</em:updateURL>
-
- </Description>
-</RDF>
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/xpcshell/data/test_bug299716.rdf
+++ /dev/null
@@ -1,181 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE RDF:RDF [
- <!ENTITY bug299716 "urn:mozilla:extension:bug299716">
- <!ENTITY addons_prefix "http://example.com/addons/test_bug299716">
- <!ENTITY v0.2 "<em:version>0.2</em:version>">
-
- <!ENTITY xpcshell.app "
- <em:id>xpcshell@tests.mozilla.org</em:id>
- <em:minVersion>5</em:minVersion>
- <em:maxVersion>5</em:maxVersion>
- ">
-
- <!ENTITY toolkit.app "
- <em:id>toolkit@mozilla.org</em:id>
- <em:minVersion>1.9</em:minVersion>
- <em:maxVersion>1.9</em:maxVersion>
- ">
-
- <!ENTITY invalidRange "
- <em:minVersion>30</em:minVersion>
- <em:maxVersion>30</em:maxVersion>
- ">
-
- <!ENTITY xpcshell.invalid "
- <em:id>xpcshell@tests.mozilla.org</em:id>
- &invalidRange;
- ">
-
- <!ENTITY toolkit.invalid "
- <em:id>toolkit@mozilla.org</em:id>
- &invalidRange;
- ">
-]>
-<RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:em="http://www.mozilla.org/2004/em-rdf#">
- <!-- XPCShell -->
- <RDF:Description about="&bug299716;-a@tests.mozilla.org">
- <em:updates>
- <RDF:Seq>
- <RDF:li RDF:resource="&bug299716;-a@tests.mozilla.org:0.2"/>
- </RDF:Seq>
- </em:updates>
- </RDF:Description>
-
- <RDF:Description about="&bug299716;-a@tests.mozilla.org:0.2">
- &v0.2;
- <em:targetApplication>
- <RDF:Description em:updateLink="&addons_prefix;_a_2.xpi">
- &xpcshell.app;
- </RDF:Description>
- </em:targetApplication>
- </RDF:Description>
-
- <!-- Toolkit -->
- <RDF:Description about="&bug299716;-b@tests.mozilla.org">
- <em:updates>
- <RDF:Seq>
- <RDF:li RDF:resource="&bug299716;-b@tests.mozilla.org:0.2"/>
- </RDF:Seq>
- </em:updates>
- </RDF:Description>
-
- <RDF:Description about="&bug299716;-b@tests.mozilla.org:0.2">
- &v0.2;
- <em:targetApplication>
- <RDF:Description em:updateLink="&addons_prefix;_b_2.xpi">
- &toolkit.app;
- </RDF:Description>
- </em:targetApplication>
- </RDF:Description>
-
- <!-- XPCShell + Toolkit -->
- <RDF:Description about="&bug299716;-c@tests.mozilla.org">
- <em:updates>
- <RDF:Seq>
- <RDF:li RDF:resource="&bug299716;-c@tests.mozilla.org:0.2"/>
- </RDF:Seq>
- </em:updates>
- </RDF:Description>
-
- <RDF:Description about="&bug299716;-c@tests.mozilla.org:0.2">
- &v0.2;
- <em:targetApplication>
- <RDF:Description em:updateLink="&addons_prefix;_c_2.xpi">
- &xpcshell.app;
- </RDF:Description>
- </em:targetApplication>
- <em:targetApplication>
- <RDF:Description em:updateLink="&addons_prefix;_c_2.xpi">
- &toolkit.app;
- </RDF:Description>
- </em:targetApplication>
- </RDF:Description>
-
- <!-- XPCShell (Toolkit invalid) -->
- <RDF:Description about="&bug299716;-d@tests.mozilla.org">
- <em:updates>
- <RDF:Seq>
- <RDF:li RDF:resource="&bug299716;-d@tests.mozilla.org:0.2"/>
- </RDF:Seq>
- </em:updates>
- </RDF:Description>
-
- <RDF:Description about="&bug299716;-d@tests.mozilla.org:0.2">
- &v0.2;
- <em:targetApplication>
- <RDF:Description em:updateLink="&addons_prefix;_d_2.xpi">
- &xpcshell.app;
- </RDF:Description>
- </em:targetApplication>
- <em:targetApplication>
- <RDF:Description em:updateLink="&addons_prefix;_d_2.xpi">
- &toolkit.invalid;
- </RDF:Description>
- </em:targetApplication>
- </RDF:Description>
-
- <!-- Toolkit (XPCShell invalid), should not install -->
- <RDF:Description about="&bug299716;-e@tests.mozilla.org">
- <em:updates>
- <RDF:Seq>
- <RDF:li RDF:resource="&bug299716;-e@tests.mozilla.org:0.2"/>
- </RDF:Seq>
- </em:updates>
- </RDF:Description>
-
- <RDF:Description about="&bug299716;-e@tests.mozilla.org:0.2">
- &v0.2;
- <em:targetApplication>
- <RDF:Description em:updateLink="&addons_prefix;_e_2.xpi">
- &xpcshell.invalid;
- </RDF:Description>
- </em:targetApplication>
- <em:targetApplication>
- <RDF:Description em:updateLink="&addons_prefix;_e_2.xpi">
- &toolkit.app;
- </RDF:Description>
- </em:targetApplication>
- </RDF:Description>
-
- <!-- None (XPCShell, Toolkit invalid), should not install -->
- <RDF:Description about="&bug299716;-f@tests.mozilla.org">
- <em:updates>
- <RDF:Seq>
- <RDF:li RDF:resource="&bug299716;-f@tests.mozilla.org:0.2"/>
- </RDF:Seq>
- </em:updates>
- </RDF:Description>
-
- <RDF:Description about="&bug299716;-f@tests.mozilla.org:0.2">
- &v0.2;
- <em:targetApplication>
- <RDF:Description em:updateLink="&addons_prefix;_f_2.xpi">
- &xpcshell.invalid;
- </RDF:Description>
- </em:targetApplication>
- <em:targetApplication>
- <RDF:Description em:updateLink="&addons_prefix;_f_2.xpi">
- &toolkit.invalid;
- </RDF:Description>
- </em:targetApplication>
- </RDF:Description>
-
- <!-- Toolkit (invalid), should not install -->
- <RDF:Description about="&bug299716;-g@tests.mozilla.org">
- <em:updates>
- <RDF:Seq>
- <RDF:li RDF:resource="&bug299716;-g@tests.mozilla.org:0.2"/>
- </RDF:Seq>
- </em:updates>
- </RDF:Description>
-
- <RDF:Description about="&bug299716;-g@tests.mozilla.org:0.2">
- &v0.2;
- <em:targetApplication>
- <RDF:Description em:updateLink="&addons_prefix;_g_2.xpi">
- &toolkit.invalid;
- </RDF:Description>
- </em:targetApplication>
- </RDF:Description>
-</RDF:RDF>
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/xpcshell/data/test_bug299716_2.rdf
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:em="http://www.mozilla.org/2004/em-rdf#">
- <RDF:Description about="urn:mozilla:extension:bug299716-2@tests.mozilla.org">
- <em:updates>
- <RDF:Seq>
- <RDF:li>
- <RDF:Description>
- <em:version>0.1</em:version>
- <em:targetApplication>
- <RDF:Description>
- <em:id>toolkit@mozilla.org</em:id>
- <em:minVersion>1.9</em:minVersion>
- <em:maxVersion>2.0.*</em:maxVersion>
- </RDF:Description>
- </em:targetApplication>
- </RDF:Description>
- </RDF:li>
- </RDF:Seq>
- </em:updates>
- </RDF:Description>
-</RDF:RDF>
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/xpcshell/data/test_bug394300.rdf
+++ /dev/null
@@ -1,159 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:em="http://www.mozilla.org/2004/em-rdf#">
-
- <RDF:Description about="urn:mozilla:extension:bug394300_1@tests.mozilla.org">
- <em:updates>
- <RDF:Seq>
- <!-- Not a valid install - incompatible app versions -->
- <RDF:li>
- <RDF:Description>
- <em:version>20</em:version>
- <em:targetApplication>
- <RDF:Description>
- <em:id>xpcshell@tests.mozilla.org</em:id>
- <em:minVersion>2</em:minVersion>
- <em:maxVersion>2</em:maxVersion>
- <em:updateLink>http://example.com/broken.xpi</em:updateLink>
- </RDF:Description>
- </em:targetApplication>
- </RDF:Description>
- </RDF:li>
- <!-- Valid install should be the version detected -->
- <RDF:li>
- <RDF:Description>
- <em:version>10</em:version>
- <em:targetApplication>
- <RDF:Description>
- <em:id>xpcshell@tests.mozilla.org</em:id>
- <em:minVersion>1</em:minVersion>
- <em:maxVersion>1</em:maxVersion>
- <em:updateLink>http://example.com/broken.xpi</em:updateLink>
- </RDF:Description>
- </em:targetApplication>
- </RDF:Description>
- </RDF:li>
- <!-- Valid install. Detecting this would indicate that the order
- of entries is playing a part in the update detection. -->
- <RDF:li>
- <RDF:Description>
- <em:version>6</em:version>
- <em:targetApplication>
- <RDF:Description>
- <em:id>xpcshell@tests.mozilla.org</em:id>
- <em:minVersion>1</em:minVersion>
- <em:maxVersion>1</em:maxVersion>
- <em:updateLink>http://example.com/broken.xpi</em:updateLink>
- </RDF:Description>
- </em:targetApplication>
- </RDF:Description>
- </RDF:li>
- <!-- Not a valid install - no minVersion or maxVersion specified -->
- <RDF:li>
- <RDF:Description>
- <em:version>40</em:version>
- <em:targetApplication>
- <RDF:Description>
- <em:id>xpcshell@tests.mozilla.org</em:id>
- <em:updateLink>http://example.com/broken.xpi</em:updateLink>
- </RDF:Description>
- </em:targetApplication>
- </RDF:Description>
- </RDF:li>
- <!-- Not a valid install - incompatible app versions -->
- <RDF:li>
- <RDF:Description>
- <em:version>30</em:version>
- <em:targetApplication>
- <RDF:Description>
- <em:id>xpcshell@tests.mozilla.org</em:id>
- <em:minVersion>2</em:minVersion>
- <em:maxVersion>2</em:maxVersion>
- <em:updateLink>http://example.com/broken.xpi</em:updateLink>
- </RDF:Description>
- </em:targetApplication>
- </RDF:Description>
- </RDF:li>
- </RDF:Seq>
- </em:updates>
- </RDF:Description>
-
- <RDF:Description about="urn:mozilla:extension:bug394300_2@tests.mozilla.org">
- <em:updates>
- <RDF:Seq>
- <!-- Not a valid install - incompatible app versions -->
- <RDF:li>
- <RDF:Description>
- <em:version>20</em:version>
- <em:targetApplication>
- <RDF:Description>
- <em:id>toolkit@mozilla.org</em:id>
- <em:minVersion>2</em:minVersion>
- <em:maxVersion>2</em:maxVersion>
- <em:updateLink>http://example.com/broken.xpi</em:updateLink>
- </RDF:Description>
- </em:targetApplication>
- </RDF:Description>
- </RDF:li>
- <!-- Valid install should be the version detected -->
- <RDF:li>
- <RDF:Description>
- <em:version>10</em:version>
- <em:targetApplication>
- <RDF:Description>
- <em:id>toolkit@mozilla.org</em:id>
- <em:minVersion>1.9</em:minVersion>
- <em:maxVersion>1.9</em:maxVersion>
- <em:updateLink>http://example.com/broken.xpi</em:updateLink>
- </RDF:Description>
- </em:targetApplication>
- </RDF:Description>
- </RDF:li>
- <!-- Valid install. Detecting this would indicate that the order
- of entries is playing a part in the update detection. -->
- <RDF:li>
- <RDF:Description>
- <em:version>6</em:version>
- <em:targetApplication>
- <RDF:Description>
- <em:id>toolkit@mozilla.org</em:id>
- <em:minVersion>1.9</em:minVersion>
- <em:maxVersion>1.9</em:maxVersion>
- <em:updateLink>http://example.com/broken.xpi</em:updateLink>
- </RDF:Description>
- </em:targetApplication>
- </RDF:Description>
- </RDF:li>
- <!-- Not a valid install - no minVersion or maxVersion specified -->
- <RDF:li>
- <RDF:Description>
- <em:version>40</em:version>
- <em:targetApplication>
- <RDF:Description>
- <em:id>toolkit@mozilla.org</em:id>
- <em:updateLink>http://example.com/broken.xpi</em:updateLink>
- </RDF:Description>
- </em:targetApplication>
- </RDF:Description>
- </RDF:li>
- <!-- Not a valid install - incompatible app versions -->
- <RDF:li>
- <RDF:Description>
- <em:version>30</em:version>
- <em:targetApplication>
- <RDF:Description>
- <em:id>toolkit@mozilla.org</em:id>
- <em:minVersion>2</em:minVersion>
- <em:maxVersion>2</em:maxVersion>
- <em:updateLink>http://example.com/broken.xpi</em:updateLink>
- </RDF:Description>
- </em:targetApplication>
- </RDF:Description>
- </RDF:li>
- </RDF:Seq>
- </em:updates>
- </RDF:Description>
-
-</RDF:RDF>
-
new file mode 100644
--- /dev/null
+++ b/toolkit/mozapps/extensions/test/xpcshell/data/test_update_rdf.json
@@ -0,0 +1,189 @@
+{
+ "addons": {
+ "addon7@tests.mozilla.org": {
+ "updates": [
+ {
+ "applications": {
+ "gecko": {
+ "strict_min_version": "0",
+ "advisory_max_version": "1"
+ }
+ },
+ "version": "1.0"
+ }
+ ]
+ },
+ "addon12@tests.mozilla.org": {
+ "updates": [
+ {
+ "applications": {
+ "gecko": {
+ "strict_min_version": "1",
+ "advisory_max_version": "1"
+ }
+ },
+ "version": "2.0",
+ "update_link": "http://localhost:%PORT%/addons/test_update12.xpi"
+ }
+ ]
+ },
+ "addon2@tests.mozilla.org": {
+ "updates": [
+ {
+ "applications": {
+ "gecko": {
+ "strict_min_version": "0",
+ "advisory_max_version": "1"
+ }
+ },
+ "version": "1.0"
+ }
+ ]
+ },
+ "addon4@tests.mozilla.org": {
+ "updates": [
+ {
+ "applications": {
+ "gecko": {
+ "strict_min_version": "0",
+ "advisory_max_version": "0"
+ }
+ },
+ "version": "5.0"
+ }
+ ]
+ },
+ "addon1@tests.mozilla.org": {
+ "updates": [
+ {
+ "applications": {
+ "gecko": {
+ "strict_min_version": "1",
+ "advisory_max_version": "1"
+ }
+ },
+ "version": "1.0"
+ },
+ {
+ "applications": {
+ "gecko": {
+ "strict_min_version": "2",
+ "advisory_max_version": "2"
+ }
+ },
+ "version": "1.0"
+ },
+ {
+ "applications": {
+ "gecko": {
+ "strict_min_version": "1",
+ "advisory_max_version": "1"
+ }
+ },
+ "version": "2.0",
+ "update_link": "http://localhost:%PORT%/addons/test_update.xpi",
+ "update_info_url": "http://example.com/updateInfo.xhtml"
+ }
+ ]
+ },
+ "addon10@tests.mozilla.org": {
+ "updates": [
+ {
+ "applications": {
+ "gecko": {
+ "strict_min_version": "0.1",
+ "advisory_max_version": "0.4"
+ }
+ },
+ "version": "1.0",
+ "update_link": "http://localhost:%PORT%/addons/test_update10.xpi"
+ }
+ ]
+ },
+ "addon8@tests.mozilla.org": {
+ "updates": [
+ {
+ "applications": {
+ "gecko": {
+ "strict_min_version": "1",
+ "advisory_max_version": "1"
+ }
+ },
+ "version": "2.0",
+ "update_link": "http://localhost:%PORT%/addons/test_update8.xpi"
+ }
+ ]
+ },
+ "addon11@tests.mozilla.org": {
+ "updates": [
+ {
+ "applications": {
+ "gecko": {
+ "strict_min_version": "0.1",
+ "strict_max_version": "0.2"
+ }
+ },
+ "version": "2.0",
+ "update_link": "http://localhost:%PORT%/addons/test_update11.xpi"
+ }
+ ]
+ },
+ "addon9@tests.mozilla.org": {
+ "updates": [
+ {
+ "applications": {
+ "gecko": {
+ "strict_min_version": "1",
+ "advisory_max_version": "1"
+ }
+ },
+ "version": "2.0",
+ "update_link": "http://localhost:%PORT%/addons/test_update9_2.xpi"
+ },
+ {
+ "applications": {
+ "gecko": {
+ "strict_min_version": "0.9",
+ "advisory_max_version": "0.9"
+ }
+ },
+ "version": "3.0",
+ "update_link": "http://localhost:%PORT%/addons/test_update9_3.xpi"
+ },
+ {
+ "applications": {
+ "gecko": {
+ "strict_min_version": "0.9",
+ "advisory_max_version": "0.9"
+ }
+ },
+ "version": "4.0",
+ "update_link": "http://localhost:%PORT%/addons/test_update9_4.xpi"
+ },
+ {
+ "applications": {
+ "gecko": {
+ "strict_min_version": "5",
+ "advisory_max_version": "6"
+ }
+ },
+ "version": "5.0",
+ "update_link": "http://localhost:%PORT%/addons/test_update9_5.xpi"
+ }
+ ]
+ },
+ "addon3@tests.mozilla.org": {
+ "updates": [
+ {
+ "applications": {
+ "gecko": {
+ "strict_min_version": "3",
+ "advisory_max_version": "3"
+ }
+ },
+ "version": "1.0"
+ }
+ ]
+ }
+ }
+}
--- a/toolkit/mozapps/extensions/test/xpcshell/data/test_updatecheck.rdf
+++ b/toolkit/mozapps/extensions/test/xpcshell/data/test_updatecheck.rdf
@@ -165,17 +165,17 @@
<RDF:Description>
<em:version>2.0</em:version>
<em:targetApplication>
<RDF:Description>
<em:id>xpcshell@tests.mozilla.org</em:id>
<em:minVersion>1</em:minVersion>
<em:maxVersion>1</em:maxVersion>
<em:updateLink>http://example.com/broken.xpi</em:updateLink>
- <em:updateHash>sha1:78fc1d2887eda35b4ad2e3a0b60120ca271ce6e6</em:updateHash>
+ <em:updateHash>sha256:78fc1d2887eda35b4ad2e3a0b60120ca271ce6e6</em:updateHash>
</RDF:Description>
</em:targetApplication>
</RDF:Description>
</RDF:li>
</RDF:Seq>
</em:updates>
<em:signature>MIGTMA0GCSqGSIb3DQEBBQUAA4GBAJ5Dv3Zd7/j5dLchCw9iO/cxPq8oOhOYD2M+
jUKvmHCyTBRIEaJrE4N7yVbRYk++ERIfyVepLivsVi4pBmF7JTdw0NaKUA0LiOoT
@@ -218,17 +218,17 @@
<RDF:Description>
<em:version>2.0</em:version>
<em:targetApplication>
<RDF:Description>
<em:id>xpcshell@tests.mozilla.org</em:id>
<em:minVersion>1</em:minVersion>
<em:maxVersion>1</em:maxVersion>
<em:updateLink>https://example.com/broken.xpi</em:updateLink>
- <em:updateHash>sha1:78fc1d2887eda35b4ad2e3a0b60120ca271ce6e6</em:updateHash>
+ <em:updateHash>sha256:78fc1d2887eda35b4ad2e3a0b60120ca271ce6e6</em:updateHash>
</RDF:Description>
</em:targetApplication>
</RDF:Description>
</RDF:li>
</RDF:Seq>
</em:updates>
<em:signature>MIGTMA0GCSqGSIb3DQEBBQUAA4GBACMX/KReOGSJ8CMGRroH1v3Gjv/Qs/pqH+Ow
o+hCKWLUKx7hpJgVJkXXdAHW0U88NXlp1S2H0WqA7I/CdmNXJSPzzV/J4z1dZgXh
new file mode 100644
--- /dev/null
+++ b/toolkit/mozapps/extensions/test/xpcshell/data/test_updatecheck_rdf.json
@@ -0,0 +1,257 @@
+{
+ "addons": {
+ "test_bug378216_9@tests.mozilla.org": {
+ "updates": [
+ {
+ "applications": {
+ "gecko": {
+ "strict_min_version": "1",
+ "advisory_max_version": "1"
+ }
+ },
+ "version": "2.0",
+ "update_link": "http://example.com/broken.xpi",
+ "update_hash": "sha256:78fc1d2887eda35b4ad2e3a0b60120ca271ce6e6"
+ }
+ ]
+ },
+ "test_bug378216_7@tests.mozilla.org": {
+ "updates": [
+ {
+ "applications": {
+ "gecko": {
+ "strict_min_version": "1",
+ "advisory_max_version": "2"
+ }
+ },
+ "version": "2.0",
+ "update_link": "http://example.com/broken.xpi"
+ }
+ ]
+ },
+ "test_bug378216_8@tests.mozilla.org": {
+ "updates": [
+ {
+ "applications": {
+ "gecko": {
+ "strict_min_version": "1",
+ "advisory_max_version": "1"
+ }
+ },
+ "version": "2.0",
+ "update_link": "http://example.com/broken.xpi"
+ }
+ ]
+ },
+ "test_bug378216_13@tests.mozilla.org": {
+ "updates": [
+ {
+ "applications": {
+ "gecko": {
+ "strict_min_version": "1",
+ "advisory_max_version": "1"
+ }
+ },
+ "version": "2.0",
+ "update_link": "https://example.com/broken.xpi",
+ "update_hash": "md2:78fc1d2887eda35b4ad2e3a0b60120ca271ce6e6"
+ }
+ ]
+ },
+ "compat-override@tests.mozilla.org": {
+ "updates": [
+ {
+ "applications": {
+ "gecko": {
+ "strict_min_version": "0.1",
+ "advisory_max_version": "0.2"
+ }
+ },
+ "version": "1.0",
+ "update_link": "https://example.com/addons/test1.xpi"
+ },
+ {
+ "applications": {
+ "gecko": {
+ "strict_min_version": "0.5",
+ "advisory_max_version": "0.6"
+ }
+ },
+ "version": "2.0",
+ "update_link": "https://example.com/addons/test2.xpi"
+ },
+ {
+ "applications": {
+ "gecko": {
+ "strict_min_version": "2",
+ "advisory_max_version": "3"
+ }
+ },
+ "version": "3.0",
+ "update_link": "https://example.com/addons/test3.xpi"
+ }
+ ]
+ },
+ "compat-strict-optin@tests.mozilla.org": {
+ "updates": [
+ {
+ "applications": {
+ "gecko": {
+ "strict_min_version": "0.1",
+ "strict_max_version": "0.2"
+ }
+ },
+ "version": "1.0",
+ "update_link": "https://example.com/addons/test1.xpi"
+ }
+ ]
+ },
+ "ignore-compat@tests.mozilla.org": {
+ "updates": [
+ {
+ "applications": {
+ "gecko": {
+ "strict_min_version": "0.1",
+ "advisory_max_version": "0.2"
+ }
+ },
+ "version": "1.0",
+ "update_link": "https://example.com/addons/test1.xpi"
+ },
+ {
+ "applications": {
+ "gecko": {
+ "strict_min_version": "0.5",
+ "advisory_max_version": "0.6"
+ }
+ },
+ "version": "2.0",
+ "update_link": "https://example.com/addons/test2.xpi"
+ },
+ {
+ "applications": {
+ "gecko": {
+ "strict_min_version": "2",
+ "advisory_max_version": "3"
+ }
+ },
+ "version": "3.0",
+ "update_link": "https://example.com/addons/test3.xpi"
+ }
+ ]
+ },
+ "test_bug378216_12@tests.mozilla.org": {
+ "updates": [
+ {
+ "applications": {
+ "gecko": {
+ "strict_min_version": "1",
+ "advisory_max_version": "1"
+ }
+ },
+ "version": "2.0",
+ "update_link": "http://example.com/broken.xpi",
+ "update_hash": "md2:78fc1d2887eda35b4ad2e3a0b60120ca271ce6e6"
+ }
+ ]
+ },
+ "test_bug378216_10@tests.mozilla.org": {
+ "updates": [
+ {
+ "applications": {
+ "gecko": {
+ "strict_min_version": "1",
+ "advisory_max_version": "1"
+ }
+ },
+ "version": "2.0",
+ "update_link": "https://example.com/broken.xpi"
+ }
+ ]
+ },
+ "updatecheck1@tests.mozilla.org": {
+ "updates": [
+ {
+ "applications": {
+ "gecko": {
+ "strict_min_version": "1",
+ "advisory_max_version": "1"
+ }
+ },
+ "version": "1.0",
+ "update_link": "https://example.com/addons/test1.xpi"
+ },
+ {
+ "applications": {
+ "gecko": {
+ "strict_min_version": "2",
+ "advisory_max_version": "2"
+ }
+ },
+ "version": "2.0",
+ "update_link": "https://example.com/addons/test2.xpi"
+ },
+ {
+ "applications": {
+ "gecko": {
+ "strict_min_version": "1",
+ "advisory_max_version": "1"
+ }
+ },
+ "version": "3.0",
+ "update_link": "https://example.com/addons/test3.xpi"
+ },
+ {
+ "applications": {
+ "gecko": {
+ "strict_min_version": "1",
+ "advisory_max_version": "2"
+ }
+ },
+ "version": "2.0",
+ "update_link": "https://example.com/addons/test2.xpi"
+ },
+ {
+ "applications": {
+ "gecko": {
+ "strict_min_version": "2",
+ "advisory_max_version": "2"
+ }
+ },
+ "version": "4.0",
+ "update_link": "https://example.com/addons/test4.xpi"
+ }
+ ]
+ },
+ "test_bug378216_5@tests.mozilla.org": {
+ "updates": [
+ {
+ "applications": {
+ "gecko": {
+ "strict_min_version": "1",
+ "advisory_max_version": "1"
+ }
+ },
+ "version": "2.0",
+ "update_link": "http://example.com/broken.xpi"
+ }
+ ]
+ },
+ "test_bug378216_15@tests.mozilla.org": {},
+ "test_bug378216_11@tests.mozilla.org": {
+ "updates": [
+ {
+ "applications": {
+ "gecko": {
+ "strict_min_version": "1",
+ "advisory_max_version": "1"
+ }
+ },
+ "version": "2.0",
+ "update_link": "https://example.com/broken.xpi",
+ "update_hash": "sha256:78fc1d2887eda35b4ad2e3a0b60120ca271ce6e6"
+ }
+ ]
+ }
+ }
+}
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/xpcshell/test_bug299716.js
+++ /dev/null
@@ -1,204 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
-// Disables security checking our updates which haven't been signed
-Services.prefs.setBoolPref("extensions.checkUpdateSecurity", false);
-
-// Update check listener.
-const checkListener = {
- pendingCount: 0,
-
- onUpdateAvailable: function onUpdateAvailable(aAddon, aInstall) {
- for (let currentAddon of ADDONS) {
- if (currentAddon.id == aAddon.id) {
- currentAddon.newInstall = aInstall;
- return;
- }
- }
- },
-
- onUpdateFinished: function onUpdateFinished() {
- if (--this.pendingCount == 0)
- next_test();
- }
-};
-
-// Get the HTTP server.
-var testserver;
-
-var ADDONS = [
- // XPCShell
- {
- id: "bug299716-a@tests.mozilla.org",
- addon: "test_bug299716_a_1",
- installed: true,
- item: null,
- newInstall: null
- },
-
- // Toolkit
- {
- id: "bug299716-b@tests.mozilla.org",
- addon: "test_bug299716_b_1",
- installed: true,
- item: null,
- newInstall: null
- },
-
- // XPCShell + Toolkit
- {
- id: "bug299716-c@tests.mozilla.org",
- addon: "test_bug299716_c_1",
- installed: true,
- item: null,
- newInstall: null
- },
-
- // XPCShell (Toolkit invalid)
- {
- id: "bug299716-d@tests.mozilla.org",
- addon: "test_bug299716_d_1",
- installed: true,
- item: null,
- newInstall: null
- },
-
- // Toolkit (XPCShell invalid)
- {
- id: "bug299716-e@tests.mozilla.org",
- addon: "test_bug299716_e_1",
- installed: false,
- item: null,
- newInstall: null,
- failedAppName: "XPCShell"
- },
-
- // None (XPCShell, Toolkit invalid)
- {
- id: "bug299716-f@tests.mozilla.org",
- addon: "test_bug299716_f_1",
- installed: false,
- item: null,
- newInstall: null,
- failedAppName: "XPCShell"
- },
-
- // None (Toolkit invalid)
- {
- id: "bug299716-g@tests.mozilla.org",
- addon: "test_bug299716_g_1",
- installed: false,
- item: null,
- newInstall: null,
- failedAppName: "Toolkit"
- },
-];
-
-var next_test = function() {};
-
-function do_check_item(aItem, aVersion, aAddonsEntry) {
- if (aAddonsEntry.installed) {
- if (aItem == null)
- do_throw("Addon " + aAddonsEntry.id + " wasn't detected");
- if (aItem.version != aVersion)
- do_throw("Addon " + aAddonsEntry.id + " was version " + aItem.version + " instead of " + aVersion);
- } else if (aItem != null) {
- do_throw("Addon " + aAddonsEntry.id + " was detected");
- }
-}
-
-/**
- * Start the test by installing extensions.
- */
-function run_test() {
- do_test_pending();
-
- createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "5", "1.9");
-
- const dataDir = do_get_file("data");
- const addonsDir = do_get_addon(ADDONS[0].addon).parent;
-
- // Make sure we can actually get our data files.
- const xpiFile = addonsDir.clone();
- xpiFile.append("test_bug299716_a_2.xpi");
- Assert.ok(xpiFile.exists());
-
- // Create and configure the HTTP server.
- testserver = AddonTestUtils.createHttpServer({hosts: ["example.com"]});
- testserver.registerDirectory("/addons/", addonsDir);
- testserver.registerDirectory("/data/", dataDir);
-
- // Make sure we can fetch the files over HTTP.
- const xhr = new XMLHttpRequest();
- xhr.open("GET", "http://example.com/addons/test_bug299716_a_2.xpi", false);
- xhr.send(null);
- Assert.ok(xhr.status == 200);
-
- xhr.open("GET", "http://example.com/data/test_bug299716.rdf", false);
- xhr.send(null);
- Assert.ok(xhr.status == 200);
-
- // Start the real test.
- startupManager();
- dump("\n\n*** INSTALLING NEW ITEMS\n\n");
-
- installAllFiles(ADDONS.map(a => do_get_addon(a.addon)), run_test_pt2,
- true);
-}
-
-/**
- * Check the versions of all items, and ask the extension manager to find updates.
- */
-function run_test_pt2() {
- dump("\n\n*** DONE INSTALLING NEW ITEMS\n\n");
- dump("\n\n*** RESTARTING EXTENSION MANAGER\n\n");
- restartManager();
-
- AddonManager.getAddonsByIDs(ADDONS.map(a => a.id), function(items) {
- dump("\n\n*** REQUESTING UPDATE\n\n");
- // checkListener will call run_test_pt3().
- next_test = run_test_pt3;
-
- // Try to update the items.
- for (var i = 0; i < ADDONS.length; i++) {
- var item = items[i];
- do_check_item(item, "0.1", ADDONS[i]);
-
- if (item) {
- checkListener.pendingCount++;
- ADDONS[i].item = item;
- item.findUpdates(checkListener, AddonManager.UPDATE_WHEN_USER_REQUESTED);
- }
- }
- });
-}
-
-/**
- * Install new items for each enabled extension.
- */
-function run_test_pt3() {
- // Install the new items.
- dump("\n\n*** UPDATING ITEMS\n\n");
- completeAllInstalls(ADDONS.filter(a => a.newInstall).map(a => a.newInstall),
- run_test_pt4);
-}
-
-/**
- * Check the final version of each extension.
- */
-function run_test_pt4() {
- dump("\n\n*** RESTARTING EXTENSION MANAGER\n\n");
- restartManager();
-
- dump("\n\n*** FINAL CHECKS\n\n");
- AddonManager.getAddonsByIDs(ADDONS.map(a => a.id), function(items) {
- for (var i = 0; i < ADDONS.length; i++) {
- var item = items[i];
- do_check_item(item, "0.2", ADDONS[i]);
- }
-
- do_test_finished();
- });
-}
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/xpcshell/test_bug299716_2.js
+++ /dev/null
@@ -1,46 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
-// Disables security checking our updates which haven't been signed
-Services.prefs.setBoolPref("extensions.checkUpdateSecurity", false);
-
-var testserver;
-
-var ADDON = {
- id: "bug299716-2@tests.mozilla.org",
- addon: "test_bug299716_2"
-};
-
-function run_test() {
- do_test_pending();
-
- createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "2", "1.9");
-
- const dataDir = do_get_file("data");
- const addonsDir = do_get_addon(ADDON.addon).parent;
-
- // Create and configure the HTTP server.
- testserver = AddonTestUtils.createHttpServer({hosts: ["example.com"]});
- testserver.registerDirectory("/addons/", addonsDir);
- testserver.registerDirectory("/data/", dataDir);
-
- startupManager();
-
- installAllFiles([do_get_addon(ADDON.addon)], function() {
- restartManager();
-
- AddonManager.getAddonByID(ADDON.id, function(item) {
- Assert.equal(item.version, 0.1);
- Assert.ok(!item.isCompatible);
-
- item.findUpdates({
- onUpdateFinished(addon) {
- Assert.ok(!item.isCompatible);
- do_test_finished();
- }
- }, AddonManager.UPDATE_WHEN_USER_REQUESTED);
- });
- });
-}
--- a/toolkit/mozapps/extensions/test/xpcshell/test_bug394300.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_bug394300.js
@@ -27,27 +27,28 @@ var updateListener = {
};
function run_test() {
// Setup for test
do_test_pending();
createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9");
startupManager();
+
+ server = AddonTestUtils.createHttpServer({hosts: ["example.com"]});
+ server.registerDirectory("/", do_get_file("data"));
+
installAllFiles([do_get_addon("test_bug394300_1"),
do_get_addon("test_bug394300_2")], function() {
restartManager();
AddonManager.getAddonsByIDs(["bug394300_1@tests.mozilla.org",
"bug394300_2@tests.mozilla.org"], function(updates) {
Assert.notEqual(updates[0], null);
Assert.notEqual(updates[1], null);
- server = AddonTestUtils.createHttpServer({hosts: ["example.com"]});
- server.registerDirectory("/", do_get_file("data"));
-
updates[0].findUpdates(updateListener, AddonManager.UPDATE_WHEN_USER_REQUESTED);
updates[1].findUpdates(updateListener, AddonManager.UPDATE_WHEN_USER_REQUESTED);
});
});
}
--- a/toolkit/mozapps/extensions/test/xpcshell/test_delay_update_webextension.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_delay_update_webextension.js
@@ -36,17 +36,17 @@ const NOUPDATE_ID = "test_no_update_webe
let testserver = createHttpServer();
gPort = testserver.identity.primaryPort;
mapFile("/data/test_delay_updates_complete.json", testserver);
mapFile("/data/test_delay_updates_ignore.json", testserver);
mapFile("/data/test_delay_updates_defer.json", testserver);
mapFile("/data/test_no_update.json", testserver);
testserver.registerDirectory("/addons/", do_get_file("addons"));
-createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "42");
+createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "42", "42");
// add-on registers upgrade listener, and ignores update.
add_task(async function delay_updates_ignore() {
startupManager();
let extension = ExtensionTestUtils.loadExtension({
useAddonManager: "permanent",
manifest: {
--- a/toolkit/mozapps/extensions/test/xpcshell/test_json_updatecheck.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_json_updatecheck.js
@@ -83,17 +83,17 @@ add_task(async function test_default_val
updates: [{
version: "0.2"
}]
});
equal(updates.length, 1);
let update = updates[0];
- equal(update.targetApplications.length, 1);
+ equal(update.targetApplications.length, 2);
let targetApp = update.targetApplications[0];
equal(targetApp.id, TOOLKIT_ID);
equal(targetApp.minVersion, TOOLKIT_MINVERSION);
equal(targetApp.maxVersion, "*");
equal(update.version, "0.2");
equal(update.strictCompatibility, false, "inferred strictConpatibility flag");
@@ -144,17 +144,17 @@ add_task(async function test_explicit_va
}
}
}]
});
equal(updates.length, 1);
let update = updates[0];
- equal(update.targetApplications.length, 1);
+ equal(update.targetApplications.length, 2);
let targetApp = update.targetApplications[0];
equal(targetApp.id, TOOLKIT_ID);
equal(targetApp.minVersion, "42.0a2.xpcshell");
equal(targetApp.maxVersion, "43.xpcshell");
equal(update.version, "0.2");
equal(update.strictCompatibility, true, "inferred strictCompatibility flag");
new file mode 100644
--- /dev/null
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_update_rdf.js
@@ -0,0 +1,77 @@
+"use strict";
+
+// Tests the update RDF to JSON converter.
+
+ChromeUtils.import("resource://gre/modules/addons/AddonUpdateChecker.jsm");
+ChromeUtils.import("resource://gre/modules/addons/UpdateRDFConverter.jsm");
+
+var testserver = AddonTestUtils.createHttpServer({hosts: ["example.com"]});
+
+testserver.registerDirectory("/data/", do_get_file("data"));
+
+const BASE_URL = "http://example.com/data";
+
+createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1");
+
+function checkUpdates(aId, aUpdateFile) {
+ return new Promise((resolve, reject) => {
+ AddonUpdateChecker.checkForUpdates(aId, `${BASE_URL}/${aUpdateFile}`, {
+ onUpdateCheckComplete: resolve,
+
+ onUpdateCheckError(status) {
+ let error = new Error("Update check failed with status " + status);
+ error.status = status;
+ reject(error);
+ }
+ });
+ });
+}
+
+function makeRequest(url) {
+ return new Promise((resolve, reject) => {
+ let xhr = new XMLHttpRequest();
+ xhr.open("GET", url);
+ xhr.addEventListener("load", () => resolve(xhr), {once: true});
+ xhr.addEventListener("error", reject, {once: true});
+ xhr.send();
+ });
+}
+
+add_task(async function test_update_rdf_to_json() {
+ for (let base of ["test_update", "test_updatecheck"]) {
+ info(`Testing ${base}.rdf`);
+
+ let rdfRequest = await makeRequest(`${BASE_URL}/${base}.rdf`);
+ let jsonRequest = await makeRequest(`${BASE_URL}/${base}_rdf.json`);
+
+ let rdfJSON = UpdateRDFConverter.convertToJSON(rdfRequest);
+ let json = JSON.parse(jsonRequest.responseText);
+
+ deepEqual(Object.keys(rdfJSON).sort(), Object.keys(json).sort(),
+ "Should have the same keys");
+ deepEqual(Object.keys(rdfJSON.addons).sort(), Object.keys(json.addons).sort(),
+ "Should have the same add-on IDs");
+
+ for (let addon of Object.keys(json.addons)) {
+ deepEqual(rdfJSON.addons[addon], json.addons[addon],
+ `Should have the same entry for add-on ${addon}`);
+ }
+
+ }
+});
+
+add_task(async function test_update_check() {
+ for (let file of ["test_updatecheck.rdf", "test_updatecheck.json"]) {
+ let updates = await checkUpdates("updatecheck1@tests.mozilla.org", file);
+
+ equal(updates.length, 5);
+ let update = AddonUpdateChecker.getNewestCompatibleUpdate(updates);
+ notEqual(update, null);
+ equal(update.version, "3.0");
+ update = AddonUpdateChecker.getCompatibilityUpdate(updates, "2");
+ notEqual(update, null);
+ equal(update.version, "2.0");
+ equal(update.targetApplications[0].minVersion, "1");
+ equal(update.targetApplications[0].maxVersion, "2");
+ }
+});
--- a/toolkit/mozapps/extensions/test/xpcshell/test_updatecheck.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_updatecheck.js
@@ -164,17 +164,17 @@ add_task(async function() {
for (let file of ["test_updatecheck.rdf", "test_updatecheck.json"]) {
let updates = await checkUpdates("test_bug378216_14@tests.mozilla.org",
file);
equal(updates.length, 0);
}
});
add_task(async function() {
- for (let file of ["test_updatecheck.rdf", "test_updatecheck.json"]) {
+ for (let file of ["test_updatecheck.json"]) {
try {
await checkUpdates("test_bug378216_15@tests.mozilla.org",
file);
throw "Update check should have failed";
} catch (e) {
equal(e.status, AddonManager.ERROR_PARSE_ERROR);
}
--- a/toolkit/mozapps/extensions/test/xpcshell/test_updateid.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_updateid.js
@@ -31,17 +31,17 @@ function promiseInstallUpdate(install) {
}
// Create and configure the HTTP server.
let testserver = AddonTestUtils.createHttpServer({hosts: ["example.com"]});
testserver.registerDirectory("/data/", do_get_file("data"));
testserver.registerDirectory("/addons/", do_get_file("addons"));
function run_test() {
- createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
+ createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1");
startupManager();
run_next_test();
}
// Verify that an update to an add-on with a new ID fails
add_task(async function test_update_new_id() {
await promiseInstallFile(do_get_addon("test_updateid1"));
--- a/toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini
+++ b/toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini
@@ -88,22 +88,16 @@ skip-if = os == "android"
tags = blocklist
[test_blocklist_regexp.js]
skip-if = os == "android"
tags = blocklist
[test_bootstrap.js]
skip-if = true # Bug 1358846 Bug 1365021 Bug 676992
[test_bootstrap_const.js]
[test_bootstrap_resource.js]
-[test_bug299716.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-[test_bug299716_2.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
[test_bug324121.js]
# Bug 676992: test consistently hangs on Android
# Bug 1026805: frequent hangs on OSX 10.8
skip-if = os == "android" || os == "mac"
[test_bug335238.js]
# Bug 676992: test consistently hangs on Android
skip-if = os == "android"
tags = blocklist
@@ -112,20 +106,16 @@ tags = blocklist
skip-if = os == "android"
[test_bug384052.js]
# Bug 676992: test consistently hangs on Android
skip-if = os == "android"
[test_bug393285.js]
# Bug 676992: test consistently hangs on Android
skip-if = os == "android"
tags = blocklist
-[test_bug394300.js]
-# Bug 676992: test consistently hangs on Android
-# Bug 1026805: frequent hangs on OSX 10.8
-skip-if = os == "android" || os == "mac"
[test_bug397778.js]
# Bug 676992: test consistently hangs on Android
skip-if = os == "android"
[test_bug406118.js]
# Bug 676992: test consistently hangs on Android
skip-if = os == "android"
tags = blocklist
[test_bug425657.js]
@@ -318,16 +308,17 @@ fail-if = os == "android"
[test_targetPlatforms.js]
[test_types.js]
[test_undouninstall.js]
skip-if = os == "win" # Bug 1358846
[test_uninstall.js]
[test_update.js]
# Bug 676992: test consistently hangs on Android; bug 1330227 - linux
skip-if = os == "android" || os == "linux"
+[test_update_rdf.js]
[test_update_webextensions.js]
tags = webextensions
[test_updateCancel.js]
[test_update_strictcompat.js]
# Bug 676992: test consistently hangs on Android
skip-if = os == "android"
[test_update_ignorecompat.js]
skip-if = true # Bug 676922 Bug 1437697