summaryrefslogtreecommitdiffstats
path: root/mozilla-677092-restartless-lang.patch
diff options
context:
space:
mode:
Diffstat (limited to 'mozilla-677092-restartless-lang.patch')
-rw-r--r--mozilla-677092-restartless-lang.patch698
1 files changed, 0 insertions, 698 deletions
diff --git a/mozilla-677092-restartless-lang.patch b/mozilla-677092-restartless-lang.patch
deleted file mode 100644
index a08de9b..0000000
--- a/mozilla-677092-restartless-lang.patch
+++ /dev/null
@@ -1,698 +0,0 @@
-# HG changeset patch
-# User Axel Hecht <axel@pike.org>
-# Date 1348128099 -7200
-# Node ID 38adce439c3c0b5fd7a035dc53ffd853e80f87ba
-# Parent 08d435dedc7fc19bfad3d31c62daec9013525c6d
-bug 677092, make language packs restartless, r=Unfocused
-Make language packs just trigger the chrome registration hooks, and
-disable picking up bootstrap.js, and declare them restartless.
-
-diff --git a/toolkit/mozapps/extensions/XPIProvider.jsm b/toolkit/mozapps/extensions/XPIProvider.jsm
---- a/toolkit/mozapps/extensions/XPIProvider.jsm
-+++ b/toolkit/mozapps/extensions/XPIProvider.jsm
-@@ -740,8 +740,8 @@
- }
- }
- else {
-- // spell check dictionaries never require a restart
-- if (addon.type == "dictionary")
-+ // spell check dictionaries and language packs never require a restart
-+ if (addon.type == "dictionary" || addon.type == "locale")
- addon.bootstrap = true;
-
- // Only extensions are allowed to provide an optionsURL, optionsType or aboutURL. For
-@@ -3695,6 +3695,11 @@
- Components.manager.addBootstrappedManifestLocation(aFile);
-
- try {
-+ // Don't call bootstrap.js methods for language packs,
-+ // they only contain chrome.
-+ if (aType == "locale")
-+ return;
-+
- // Load the scope if it hasn't already been loaded
- if (!(aId in this.bootstrapScopes))
- this.loadBootstrapScope(aId, aFile, aVersion, aType);
-diff --git a/toolkit/mozapps/extensions/test/addons/test_chromemanifest_1/chrome.manifest b/toolkit/mozapps/extensions/test/addons/test_langpack/chrome.manifest
-copy from toolkit/mozapps/extensions/test/addons/test_chromemanifest_1/chrome.manifest
-copy to toolkit/mozapps/extensions/test/addons/test_langpack/chrome.manifest
---- a/toolkit/mozapps/extensions/test/addons/test_chromemanifest_1/chrome.manifest
-+++ b/toolkit/mozapps/extensions/test/addons/test_langpack/chrome.manifest
-@@ -1,6 +1,1 @@
--content test-addon-1 chrome/content
--# comment!
-- locale test-addon-1 en-US locale/en-US
-- # commentaire!
-- locale test-addon-1 fr-FR locale/fr-FR
--overlay chrome://browser/content/browser.xul chrome://test-addon-1/content/overlay.xul
-+locale test-langpack x-testing locale/x-testing
-diff --git a/toolkit/mozapps/extensions/test/addons/test_chromemanifest_1/install.rdf b/toolkit/mozapps/extensions/test/addons/test_langpack/install.rdf
-copy from toolkit/mozapps/extensions/test/addons/test_chromemanifest_1/install.rdf
-copy to toolkit/mozapps/extensions/test/addons/test_langpack/install.rdf
---- a/toolkit/mozapps/extensions/test/addons/test_chromemanifest_1/install.rdf
-+++ b/toolkit/mozapps/extensions/test/addons/test_langpack/install.rdf
-@@ -4,12 +4,12 @@
- xmlns:em="http://www.mozilla.org/2004/em-rdf#">
-
- <Description about="urn:mozilla:install-manifest">
-- <em:id>addon1@tests.mozilla.org</em:id>
-+ <em:id>langpack-x-testing@tests.mozilla.org</em:id>
-+ <em:type>8</em:type>
- <em:version>1.0</em:version>
-
- <!-- Front End MetaData -->
-- <em:name>Test 1</em:name>
-- <em:description>Test Description</em:description>
-+ <em:name>Language Pack x-testing</em:name>
-
- <em:targetApplication>
- <Description>
-diff --git a/toolkit/mozapps/extensions/test/xpcshell/test_dictionary.js b/toolkit/mozapps/extensions/test/xpcshell/test_langpack.js
-copy from toolkit/mozapps/extensions/test/xpcshell/test_dictionary.js
-copy to toolkit/mozapps/extensions/test/xpcshell/test_langpack.js
---- a/toolkit/mozapps/extensions/test/xpcshell/test_dictionary.js
-+++ b/toolkit/mozapps/extensions/test/xpcshell/test_langpack.js
-@@ -2,7 +2,7 @@
- * http://creativecommons.org/publicdomain/zero/1.0/
- */
-
--// This verifies that bootstrappable add-ons can be used without restarts.
-+// This verifies that language packs can be used without restarts.
- Components.utils.import("resource://gre/modules/Services.jsm");
-
- // Enable loading extensions from the user scopes
-@@ -18,91 +18,22 @@
- userExtDir.append(gAppInfo.ID);
- registerDirectory("XREUSysExt", userExtDir.parent);
-
--Components.utils.import("resource://testing-common/httpd.js");
--var testserver;
-+var chrome = Components.classes["@mozilla.org/chrome/chrome-registry;1"]
-+ .getService(Components.interfaces.nsIXULChromeRegistry);
-
--/**
-- * This object is both a factory and an mozISpellCheckingEngine implementation (so, it
-- * is de-facto a service). It's also an interface requestor that gives out
-- * itself when asked for mozISpellCheckingEngine.
-- */
--var HunspellEngine = {
-- dictionaryDirs: [],
-- listener: null,
--
-- QueryInterface: function hunspell_qi(iid) {
-- if (iid.equals(Components.interfaces.nsISupports) ||
-- iid.equals(Components.interfaces.nsIFactory) ||
-- iid.equals(Components.interfaces.mozISpellCheckingEngine))
-- return this;
-- throw Components.results.NS_ERROR_NO_INTERFACE;
-- },
-- createInstance: function hunspell_ci(outer, iid) {
-- if (outer)
-- throw Components.results.NS_ERROR_NO_AGGREGATION;
-- return this.QueryInterface(iid);
-- },
-- lockFactory: function hunspell_lockf(lock) {
-- throw Components.results.NS_ERROR_NOT_IMPLEMENTED;
-- },
--
-- addDirectory: function hunspell_addDirectory(dir) {
-- this.dictionaryDirs.push(dir);
-- if (this.listener)
-- this.listener("addDirectory");
-- },
--
-- removeDirectory: function hunspell_addDirectory(dir) {
-- this.dictionaryDirs.splice(this.dictionaryDirs.indexOf(dir), 1);
-- if (this.listener)
-- this.listener("removeDirectory");
-- },
--
-- getInterface: function hunspell_gi(iid) {
-- if (iid.equals(Components.interfaces.mozISpellCheckingEngine))
-- return this;
-- throw Components.results.NS_ERROR_NO_INTERFACE;
-- },
--
-- contractID: "@mozilla.org/spellchecker/engine;1",
-- classID: Components.ID("{6f3c63bc-a4fd-449b-9a58-a2d9bd972cce}"),
--
-- activate: function hunspell_activate() {
-- this.origClassID = Components.manager.nsIComponentRegistrar
-- .contractIDToCID(this.contractID);
-- this.origFactory = Components.manager
-- .getClassObject(Components.classes[this.contractID],
-- Components.interfaces.nsIFactory);
--
-- Components.manager.nsIComponentRegistrar
-- .unregisterFactory(this.origClassID, this.origFactory);
-- Components.manager.nsIComponentRegistrar.registerFactory(this.classID,
-- "Test hunspell", this.contractID, this);
-- },
--
-- deactivate: function hunspell_deactivate() {
-- Components.manager.nsIComponentRegistrar.unregisterFactory(this.classID, this);
-- Components.manager.nsIComponentRegistrar.registerFactory(this.origClassID,
-- "Hunspell", this.contractID, this.origFactory);
-- },
--
-- isDictionaryEnabled: function hunspell_isDictionaryEnabled(name) {
-- return this.dictionaryDirs.some(function(dir) {
-- var dic = dir.clone();
-- dic.append(name);
-- return dic.exists();
-- });
-+function do_check_locale_not_registered(provider) {
-+ let didThrow = false;
-+ try {
-+ chrome.getSelectedLocale(provider);
-+ } catch (e) {
-+ didThrow = true;
- }
--};
-+ do_check_true(didThrow);
-+}
-
- function run_test() {
- do_test_pending();
-
-- // Create and configure the HTTP server.
-- testserver = new HttpServer();
-- testserver.registerDirectory("/addons/", do_get_file("addons"));
-- testserver.start(4444);
--
- startupManager();
-
- run_test_1();
-@@ -114,25 +45,22 @@
- "onNewInstall"
- ]);
-
-- HunspellEngine.activate();
--
-- AddonManager.getInstallForFile(do_get_addon("test_dictionary"), function(install) {
-+ AddonManager.getInstallForFile(do_get_addon("test_langpack"), function(install) {
- ensure_test_completed();
-
- do_check_neq(install, null);
-- do_check_eq(install.type, "dictionary");
-+ do_check_eq(install.type, "locale");
- do_check_eq(install.version, "1.0");
-- do_check_eq(install.name, "Test Dictionary");
-+ do_check_eq(install.name, "Language Pack x-testing");
- do_check_eq(install.state, AddonManager.STATE_DOWNLOADED);
- do_check_true(install.addon.hasResource("install.rdf"));
- do_check_false(install.addon.hasResource("bootstrap.js"));
- do_check_eq(install.addon.operationsRequiringRestart &
- AddonManager.OP_NEEDS_RESTART_INSTALL, 0);
-- do_check_not_in_crash_annotation("ab-CD@dictionaries.addons.mozilla.org", "1.0");
-
- let addon = install.addon;
- prepare_test({
-- "ab-CD@dictionaries.addons.mozilla.org": [
-+ "langpack-x-testing@tests.mozilla.org": [
- ["onInstalling", false],
- "onInstalled"
- ]
-@@ -141,11 +69,7 @@
- "onInstallEnded",
- ], function() {
- do_check_true(addon.hasResource("install.rdf"));
-- HunspellEngine.listener = function(aEvent) {
-- HunspellEngine.listener = null;
-- do_check_eq(aEvent, "addDirectory");
-- check_test_1();
-- };
-+ check_test_1();
- });
- install.install();
- });
-@@ -157,18 +81,18 @@
- // doesn't require a restart.
- do_check_eq(installs.length, 0);
-
-- AddonManager.getAddonByID("ab-CD@dictionaries.addons.mozilla.org", function(b1) {
-+ AddonManager.getAddonByID("langpack-x-testing@tests.mozilla.org", function(b1) {
- do_check_neq(b1, null);
- do_check_eq(b1.version, "1.0");
- do_check_false(b1.appDisabled);
- do_check_false(b1.userDisabled);
- do_check_true(b1.isActive);
-- do_check_true(HunspellEngine.isDictionaryEnabled("ab-CD.dic"));
-+ // check chrome reg that language pack is registered
-+ do_check_eq(chrome.getSelectedLocale("test-langpack"), "x-testing");
- do_check_true(b1.hasResource("install.rdf"));
- do_check_false(b1.hasResource("bootstrap.js"));
-- do_check_in_crash_annotation("ab-CD@dictionaries.addons.mozilla.org", "1.0");
-
-- let dir = do_get_addon_root_uri(profileDir, "ab-CD@dictionaries.addons.mozilla.org");
-+ let dir = do_get_addon_root_uri(profileDir, "langpack-x-testing@tests.mozilla.org");
-
- AddonManager.getAddonsWithOperationsByTypes(null, function(list) {
- do_check_eq(list.length, 0);
-@@ -181,9 +105,9 @@
-
- // Tests that disabling doesn't require a restart
- function run_test_2() {
-- AddonManager.getAddonByID("ab-CD@dictionaries.addons.mozilla.org", function(b1) {
-+ AddonManager.getAddonByID("langpack-x-testing@tests.mozilla.org", function(b1) {
- prepare_test({
-- "ab-CD@dictionaries.addons.mozilla.org": [
-+ "langpack-x-testing@tests.mozilla.org": [
- ["onDisabling", false],
- "onDisabled"
- ]
-@@ -199,10 +123,10 @@
- do_check_false(b1.appDisabled);
- do_check_true(b1.userDisabled);
- do_check_false(b1.isActive);
-- do_check_false(HunspellEngine.isDictionaryEnabled("ab-CD.dic"));
-- do_check_not_in_crash_annotation("ab-CD@dictionaries.addons.mozilla.org", "1.0");
-+ // check chrome reg that language pack is not registered
-+ do_check_locale_not_registered("test-langpack");
-
-- AddonManager.getAddonByID("ab-CD@dictionaries.addons.mozilla.org", function(newb1) {
-+ AddonManager.getAddonByID("langpack-x-testing@tests.mozilla.org", function(newb1) {
- do_check_neq(newb1, null);
- do_check_eq(newb1.version, "1.0");
- do_check_false(newb1.appDisabled);
-@@ -217,12 +141,11 @@
- // Test that restarting doesn't accidentally re-enable
- function run_test_3() {
- shutdownManager();
-- do_check_false(HunspellEngine.isDictionaryEnabled("ab-CD.dic"));
- startupManager(false);
-- do_check_false(HunspellEngine.isDictionaryEnabled("ab-CD.dic"));
-- do_check_not_in_crash_annotation("ab-CD@dictionaries.addons.mozilla.org", "1.0");
-+ // check chrome reg that language pack is not registered
-+ do_check_locale_not_registered("test-langpack");
-
-- AddonManager.getAddonByID("ab-CD@dictionaries.addons.mozilla.org", function(b1) {
-+ AddonManager.getAddonByID("langpack-x-testing@tests.mozilla.org", function(b1) {
- do_check_neq(b1, null);
- do_check_eq(b1.version, "1.0");
- do_check_false(b1.appDisabled);
-@@ -235,9 +158,9 @@
-
- // Tests that enabling doesn't require a restart
- function run_test_4() {
-- AddonManager.getAddonByID("ab-CD@dictionaries.addons.mozilla.org", function(b1) {
-+ AddonManager.getAddonByID("langpack-x-testing@tests.mozilla.org", function(b1) {
- prepare_test({
-- "ab-CD@dictionaries.addons.mozilla.org": [
-+ "langpack-x-testing@tests.mozilla.org": [
- ["onEnabling", false],
- "onEnabled"
- ]
-@@ -253,10 +176,10 @@
- do_check_false(b1.appDisabled);
- do_check_false(b1.userDisabled);
- do_check_true(b1.isActive);
-- do_check_true(HunspellEngine.isDictionaryEnabled("ab-CD.dic"));
-- do_check_in_crash_annotation("ab-CD@dictionaries.addons.mozilla.org", "1.0");
-+ // check chrome reg that language pack is registered
-+ do_check_eq(chrome.getSelectedLocale("test-langpack"), "x-testing");
-
-- AddonManager.getAddonByID("ab-CD@dictionaries.addons.mozilla.org", function(newb1) {
-+ AddonManager.getAddonByID("langpack-x-testing@tests.mozilla.org", function(newb1) {
- do_check_neq(newb1, null);
- do_check_eq(newb1.version, "1.0");
- do_check_false(newb1.appDisabled);
-@@ -271,13 +194,11 @@
- // Tests that a restart shuts down and restarts the add-on
- function run_test_5() {
- shutdownManager();
-- do_check_false(HunspellEngine.isDictionaryEnabled("ab-CD.dic"));
-- do_check_not_in_crash_annotation("ab-CD@dictionaries.addons.mozilla.org", "1.0");
- startupManager(false);
-- do_check_true(HunspellEngine.isDictionaryEnabled("ab-CD.dic"));
-- do_check_in_crash_annotation("ab-CD@dictionaries.addons.mozilla.org", "1.0");
-+ // check chrome reg that language pack is registered
-+ do_check_eq(chrome.getSelectedLocale("test-langpack"), "x-testing");
-
-- AddonManager.getAddonByID("ab-CD@dictionaries.addons.mozilla.org", function(b1) {
-+ AddonManager.getAddonByID("langpack-x-testing@tests.mozilla.org", function(b1) {
- do_check_neq(b1, null);
- do_check_eq(b1.version, "1.0");
- do_check_false(b1.appDisabled);
-@@ -291,9 +212,9 @@
-
- // Tests that uninstalling doesn't require a restart
- function run_test_7() {
-- AddonManager.getAddonByID("ab-CD@dictionaries.addons.mozilla.org", function(b1) {
-+ AddonManager.getAddonByID("langpack-x-testing@tests.mozilla.org", function(b1) {
- prepare_test({
-- "ab-CD@dictionaries.addons.mozilla.org": [
-+ "langpack-x-testing@tests.mozilla.org": [
- ["onUninstalling", false],
- "onUninstalled"
- ]
-@@ -309,333 +230,18 @@
-
- function check_test_7() {
- ensure_test_completed();
-- do_check_false(HunspellEngine.isDictionaryEnabled("ab-CD.dic"));
-- do_check_not_in_crash_annotation("ab-CD@dictionaries.addons.mozilla.org", "1.0");
-+ // check chrome reg that language pack is not registered
-+ do_check_locale_not_registered("test-langpack");
-
-- AddonManager.getAddonByID("ab-CD@dictionaries.addons.mozilla.org", function(b1) {
-+ AddonManager.getAddonByID("langpack-x-testing@tests.mozilla.org", function(b1) {
- do_check_eq(b1, null);
-
- restartManager();
-
-- AddonManager.getAddonByID("ab-CD@dictionaries.addons.mozilla.org", function(newb1) {
-+ AddonManager.getAddonByID("langpack-x-testing@tests.mozilla.org", function(newb1) {
- do_check_eq(newb1, null);
-
-- run_test_8();
-+ do_test_finished();
- });
- });
- }
--
--// Test that a bootstrapped extension dropped into the profile loads properly
--// on startup and doesn't cause an EM restart
--function run_test_8() {
-- shutdownManager();
--
-- let dir = profileDir.clone();
-- dir.append("ab-CD@dictionaries.addons.mozilla.org");
-- dir.create(AM_Ci.nsIFile.DIRECTORY_TYPE, 0755);
-- let zip = AM_Cc["@mozilla.org/libjar/zip-reader;1"].
-- createInstance(AM_Ci.nsIZipReader);
-- zip.open(do_get_addon("test_dictionary"));
-- dir.append("install.rdf");
-- zip.extract("install.rdf", dir);
-- dir = dir.parent;
-- dir.append("dictionaries");
-- dir.create(AM_Ci.nsIFile.DIRECTORY_TYPE, 0755);
-- dir.append("ab-CD.dic");
-- zip.extract("dictionaries/ab-CD.dic", dir);
-- zip.close();
--
-- startupManager(false);
--
-- AddonManager.getAddonByID("ab-CD@dictionaries.addons.mozilla.org", function(b1) {
-- do_check_neq(b1, null);
-- do_check_eq(b1.version, "1.0");
-- do_check_false(b1.appDisabled);
-- do_check_false(b1.userDisabled);
-- do_check_true(b1.isActive);
-- do_check_true(HunspellEngine.isDictionaryEnabled("ab-CD.dic"));
-- do_check_in_crash_annotation("ab-CD@dictionaries.addons.mozilla.org", "1.0");
--
-- run_test_9();
-- });
--}
--
--// Test that items detected as removed during startup get removed properly
--function run_test_9() {
-- shutdownManager();
--
-- let dir = profileDir.clone();
-- dir.append("ab-CD@dictionaries.addons.mozilla.org");
-- dir.remove(true);
-- startupManager(false);
--
-- AddonManager.getAddonByID("ab-CD@dictionaries.addons.mozilla.org", function(b1) {
-- do_check_eq(b1, null);
-- do_check_not_in_crash_annotation("ab-CD@dictionaries.addons.mozilla.org", "1.0");
--
-- run_test_12();
-- });
--}
--
--
--// Tests that bootstrapped extensions are correctly loaded even if the app is
--// upgraded at the same time
--function run_test_12() {
-- shutdownManager();
--
-- let dir = profileDir.clone();
-- dir.append("ab-CD@dictionaries.addons.mozilla.org");
-- dir.create(AM_Ci.nsIFile.DIRECTORY_TYPE, 0755);
-- let zip = AM_Cc["@mozilla.org/libjar/zip-reader;1"].
-- createInstance(AM_Ci.nsIZipReader);
-- zip.open(do_get_addon("test_dictionary"));
-- dir.append("install.rdf");
-- zip.extract("install.rdf", dir);
-- dir = dir.parent;
-- dir.append("dictionaries");
-- dir.create(AM_Ci.nsIFile.DIRECTORY_TYPE, 0755);
-- dir.append("ab-CD.dic");
-- zip.extract("dictionaries/ab-CD.dic", dir);
-- zip.close();
--
-- startupManager(true);
--
-- AddonManager.getAddonByID("ab-CD@dictionaries.addons.mozilla.org", function(b1) {
-- do_check_neq(b1, null);
-- do_check_eq(b1.version, "1.0");
-- do_check_false(b1.appDisabled);
-- do_check_false(b1.userDisabled);
-- do_check_true(b1.isActive);
-- do_check_true(HunspellEngine.isDictionaryEnabled("ab-CD.dic"));
-- do_check_in_crash_annotation("ab-CD@dictionaries.addons.mozilla.org", "1.0");
--
-- b1.uninstall();
-- restartManager();
--
-- run_test_16();
-- });
--}
--
--
--// Tests that bootstrapped extensions don't get loaded when in safe mode
--function run_test_16() {
-- installAllFiles([do_get_addon("test_dictionary")], function() {
-- AddonManager.getAddonByID("ab-CD@dictionaries.addons.mozilla.org", function(b1) {
-- // Should have installed and started
-- do_check_true(HunspellEngine.isDictionaryEnabled("ab-CD.dic"));
--
-- shutdownManager();
--
-- // Should have stopped
-- do_check_false(HunspellEngine.isDictionaryEnabled("ab-CD.dic"));
--
-- gAppInfo.inSafeMode = true;
-- startupManager(false);
--
-- AddonManager.getAddonByID("ab-CD@dictionaries.addons.mozilla.org", function(b1) {
-- // Should still be stopped
-- do_check_false(HunspellEngine.isDictionaryEnabled("ab-CD.dic"));
-- do_check_false(b1.isActive);
--
-- shutdownManager();
-- gAppInfo.inSafeMode = false;
-- startupManager(false);
--
-- // Should have started
-- do_check_true(HunspellEngine.isDictionaryEnabled("ab-CD.dic"));
--
-- AddonManager.getAddonByID("ab-CD@dictionaries.addons.mozilla.org", function(b1) {
-- b1.uninstall();
--
-- run_test_17();
-- });
-- });
-- });
-- });
--}
--
--// Check that a bootstrapped extension in a non-profile location is loaded
--function run_test_17() {
-- shutdownManager();
--
-- let dir = userExtDir.clone();
-- dir.append("ab-CD@dictionaries.addons.mozilla.org");
-- dir.create(AM_Ci.nsIFile.DIRECTORY_TYPE, 0755);
-- let zip = AM_Cc["@mozilla.org/libjar/zip-reader;1"].
-- createInstance(AM_Ci.nsIZipReader);
-- zip.open(do_get_addon("test_dictionary"));
-- dir.append("install.rdf");
-- zip.extract("install.rdf", dir);
-- dir = dir.parent;
-- dir.append("dictionaries");
-- dir.create(AM_Ci.nsIFile.DIRECTORY_TYPE, 0755);
-- dir.append("ab-CD.dic");
-- zip.extract("dictionaries/ab-CD.dic", dir);
-- zip.close();
--
-- startupManager();
--
-- AddonManager.getAddonByID("ab-CD@dictionaries.addons.mozilla.org", function(b1) {
-- // Should have installed and started
-- do_check_true(HunspellEngine.isDictionaryEnabled("ab-CD.dic"));
-- do_check_neq(b1, null);
-- do_check_eq(b1.version, "1.0");
-- do_check_true(b1.isActive);
--
-- // From run_test_21
-- dir = userExtDir.clone();
-- dir.append("ab-CD@dictionaries.addons.mozilla.org");
-- dir.remove(true);
--
-- restartManager();
--
-- run_test_23();
-- });
--}
--
--// Tests that installing from a URL doesn't require a restart
--function run_test_23() {
-- prepare_test({ }, [
-- "onNewInstall"
-- ]);
--
-- let url = "http://localhost:4444/addons/test_dictionary.xpi";
-- AddonManager.getInstallForURL(url, function(install) {
-- ensure_test_completed();
--
-- do_check_neq(install, null);
--
-- prepare_test({ }, [
-- "onDownloadStarted",
-- "onDownloadEnded"
-- ], function() {
-- do_check_eq(install.type, "dictionary");
-- do_check_eq(install.version, "1.0");
-- do_check_eq(install.name, "Test Dictionary");
-- do_check_eq(install.state, AddonManager.STATE_DOWNLOADED);
-- do_check_true(install.addon.hasResource("install.rdf"));
-- do_check_false(install.addon.hasResource("bootstrap.js"));
-- do_check_eq(install.addon.operationsRequiringRestart &
-- AddonManager.OP_NEEDS_RESTART_INSTALL, 0);
-- do_check_not_in_crash_annotation("ab-CD@dictionaries.addons.mozilla.org", "1.0");
--
-- let addon = install.addon;
-- prepare_test({
-- "ab-CD@dictionaries.addons.mozilla.org": [
-- ["onInstalling", false],
-- "onInstalled"
-- ]
-- }, [
-- "onInstallStarted",
-- "onInstallEnded",
-- ], function() {
-- do_check_true(addon.hasResource("install.rdf"));
-- check_test_23();
-- });
-- });
-- install.install();
-- }, "application/x-xpinstall");
--}
--
--function check_test_23() {
-- AddonManager.getAllInstalls(function(installs) {
-- // There should be no active installs now since the install completed and
-- // doesn't require a restart.
-- do_check_eq(installs.length, 0);
--
-- AddonManager.getAddonByID("ab-CD@dictionaries.addons.mozilla.org", function(b1) {
-- do_check_neq(b1, null);
-- do_check_eq(b1.version, "1.0");
-- do_check_false(b1.appDisabled);
-- do_check_false(b1.userDisabled);
-- do_check_true(b1.isActive);
-- do_check_true(HunspellEngine.isDictionaryEnabled("ab-CD.dic"));
-- do_check_true(b1.hasResource("install.rdf"));
-- do_check_false(b1.hasResource("bootstrap.js"));
-- do_check_in_crash_annotation("ab-CD@dictionaries.addons.mozilla.org", "1.0");
--
-- let dir = do_get_addon_root_uri(profileDir, "ab-CD@dictionaries.addons.mozilla.org");
--
-- AddonManager.getAddonsWithOperationsByTypes(null, function(list) {
-- do_check_eq(list.length, 0);
--
-- restartManager();
-- AddonManager.getAddonByID("ab-CD@dictionaries.addons.mozilla.org", function(b1) {
-- b1.uninstall();
-- restartManager();
--
-- testserver.stop(run_test_25);
-- });
-- });
-- });
-- });
--}
--
--// Tests that updating from a bootstrappable add-on to a normal add-on calls
--// the uninstall method
--function run_test_25() {
-- installAllFiles([do_get_addon("test_dictionary")], function() {
-- HunspellEngine.listener = function(aEvent) {
-- HunspellEngine.listener = null;
-- do_check_eq(aEvent, "addDirectory");
-- do_check_true(HunspellEngine.isDictionaryEnabled("ab-CD.dic"));
--
-- installAllFiles([do_get_addon("test_dictionary_2")], function() {
-- // Needs a restart to complete this so the old version stays running
-- do_check_true(HunspellEngine.isDictionaryEnabled("ab-CD.dic"));
--
-- AddonManager.getAddonByID("ab-CD@dictionaries.addons.mozilla.org", function(b1) {
-- do_check_neq(b1, null);
-- do_check_eq(b1.version, "1.0");
-- do_check_true(b1.isActive);
-- do_check_true(hasFlag(b1.pendingOperations, AddonManager.PENDING_UPGRADE));
--
-- restartManager();
--
-- do_check_false(HunspellEngine.isDictionaryEnabled("ab-CD.dic"));
--
-- AddonManager.getAddonByID("ab-CD@dictionaries.addons.mozilla.org", function(b1) {
-- do_check_neq(b1, null);
-- do_check_eq(b1.version, "2.0");
-- do_check_true(b1.isActive);
-- do_check_eq(b1.pendingOperations, AddonManager.PENDING_NONE);
--
-- run_test_26();
-- });
-- });
-- });
-- };
-- });
--}
--
--// Tests that updating from a normal add-on to a bootstrappable add-on calls
--// the install method
--function run_test_26() {
-- installAllFiles([do_get_addon("test_dictionary")], function() {
-- // Needs a restart to complete this
-- do_check_false(HunspellEngine.isDictionaryEnabled("ab-CD.dic"));
--
-- AddonManager.getAddonByID("ab-CD@dictionaries.addons.mozilla.org", function(b1) {
-- do_check_neq(b1, null);
-- do_check_eq(b1.version, "2.0");
-- do_check_true(b1.isActive);
-- do_check_true(hasFlag(b1.pendingOperations, AddonManager.PENDING_UPGRADE));
--
-- restartManager();
--
-- do_check_true(HunspellEngine.isDictionaryEnabled("ab-CD.dic"));
--
-- AddonManager.getAddonByID("ab-CD@dictionaries.addons.mozilla.org", function(b1) {
-- do_check_neq(b1, null);
-- do_check_eq(b1.version, "1.0");
-- do_check_true(b1.isActive);
-- do_check_eq(b1.pendingOperations, AddonManager.PENDING_NONE);
--
-- HunspellEngine.deactivate();
--
-- do_test_finished();
-- });
-- });
-- });
--}
--
-diff --git a/toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini b/toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini
---- a/toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini
-+++ b/toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini
-@@ -139,6 +139,7 @@
- [test_corrupt_strictcompat.js]
- [test_db_sanity.js]
- [test_dictionary.js]
-+[test_langpack.js]
- [test_disable.js]
- [test_distribution.js]
- [test_dss.js]