--- a/mozilla-backout-677092.patch Sun Jan 13 14:26:10 2013 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,296 +0,0 @@
-# HG changeset patch
-# Parent 297b3a7802b2488cca8f2e6febc77e9dbf7f16e0
-# User Wolfgang Rosenauer <wr@rosenauer.org>
-Bug 818468 - Langpacks bundled in distribution/extensions are registered but disabled even if shown enabled
-(backing out Bug 677092 - Make language packs restartless by default)
-
-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
-@@ -757,18 +757,18 @@ function loadManifestFromRDF(aUri, aStre
- if (addon.optionsType &&
- addon.optionsType != AddonManager.OPTIONS_TYPE_DIALOG &&
- addon.optionsType != AddonManager.OPTIONS_TYPE_INLINE &&
- addon.optionsType != AddonManager.OPTIONS_TYPE_TAB) {
- throw new Error("Install manifest specifies unknown type: " + addon.optionsType);
- }
- }
- else {
-- // spell check dictionaries and language packs never require a restart
-- if (addon.type == "dictionary" || addon.type == "locale")
-+ // spell check dictionaries never require a restart
-+ if (addon.type == "dictionary")
- addon.bootstrap = true;
-
- // Only extensions are allowed to provide an optionsURL, optionsType or aboutURL. For
- // all other types they are silently ignored
- addon.optionsURL = null;
- addon.optionsType = null;
- addon.aboutURL = null;
-
-@@ -3712,21 +3712,16 @@ var XPIProvider = {
- // Never call any bootstrap methods in safe mode
- if (Services.appinfo.inSafeMode)
- return;
-
- if (aMethod == "startup")
- 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);
-
- if (!(aMethod in this.bootstrapScopes[aId])) {
- WARN("Add-on " + aId + " is missing bootstrap method " + aMethod);
- return;
- }
-diff --git a/toolkit/mozapps/extensions/test/xpcshell/test_dictionary.js b/toolkit/mozapps/extensions/test/xpcshell/test_dictionary.js
---- a/toolkit/mozapps/extensions/test/xpcshell/test_dictionary.js
-+++ b/toolkit/mozapps/extensions/test/xpcshell/test_dictionary.js
-@@ -4,19 +4,16 @@
-
- // This verifies that bootstrappable add-ons can be used without restarts.
- Components.utils.import("resource://gre/modules/Services.jsm");
-
- // Enable loading extensions from the user scopes
- Services.prefs.setIntPref("extensions.enabledScopes",
- AddonManager.SCOPE_PROFILE + AddonManager.SCOPE_USER);
-
--// The test extension uses an insecure update url.
--Services.prefs.setBoolPref(PREF_EM_CHECK_UPDATE_SECURITY, false);
--
- createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
-
- const profileDir = gProfD.clone();
- profileDir.append("extensions");
- const userExtDir = gProfD.clone();
- userExtDir.append("extensions2");
- userExtDir.append(gAppInfo.ID);
- registerDirectory("XREUSysExt", userExtDir.parent);
-@@ -98,17 +95,16 @@ var HunspellEngine = {
- }
- };
-
- function run_test() {
- do_test_pending();
-
- // Create and configure the HTTP server.
- testserver = new HttpServer();
-- testserver.registerDirectory("/data/", do_get_file("data"));
- testserver.registerDirectory("/addons/", do_get_file("addons"));
- testserver.start(4444);
-
- startupManager();
-
- run_test_1();
- }
-
-@@ -563,17 +559,17 @@ function check_test_23() {
- 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();
-
-- run_test_25();
-+ testserver.stop(run_test_25);
- });
- });
- });
- });
- }
-
- // Tests that updating from a bootstrappable add-on to a normal add-on calls
- // the uninstall method
-@@ -631,160 +627,15 @@ function run_test_26() {
-
- 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();
-- b1.uninstall();
-- restartManager();
-- run_test_27();
-+
-+ do_test_finished();
- });
- });
- });
- }
-
--// Tests that an update check from a normal add-on to a bootstrappable add-on works
--function run_test_27() {
-- writeInstallRDFForExtension({
-- id: "ab-CD@dictionaries.addons.mozilla.org",
-- version: "1.0",
-- updateURL: "http://localhost:4444/data/test_dictionary.rdf",
-- targetApplications: [{
-- id: "xpcshell@tests.mozilla.org",
-- minVersion: "1",
-- maxVersion: "1"
-- }],
-- name: "Test Dictionary",
-- }, profileDir);
-- restartManager();
--
-- prepare_test({
-- "ab-CD@dictionaries.addons.mozilla.org": [
-- "onInstalling"
-- ]
-- }, [
-- "onNewInstall",
-- "onDownloadStarted",
-- "onDownloadEnded",
-- "onInstallStarted",
-- "onInstallEnded"
-- ], check_test_27);
--
-- AddonManagerPrivate.backgroundUpdateCheck();
--}
--
--function check_test_27(install) {
-- do_check_eq(install.existingAddon.pendingUpgrade.install, install);
--
-- restartManager();
-- AddonManager.getAddonByID("ab-CD@dictionaries.addons.mozilla.org", function(b1) {
-- do_check_neq(b1, null);
-- do_check_eq(b1.version, "2.0");
-- do_check_eq(b1.type, "dictionary");
-- b1.uninstall();
-- restartManager();
--
-- run_test_28();
-- });
--}
--
--// Tests that an update check from a bootstrappable add-on to a normal add-on works
--function run_test_28() {
-- writeInstallRDFForExtension({
-- id: "ef@dictionaries.addons.mozilla.org",
-- version: "1.0",
-- type: "64",
-- updateURL: "http://localhost:4444/data/test_dictionary.rdf",
-- targetApplications: [{
-- id: "xpcshell@tests.mozilla.org",
-- minVersion: "1",
-- maxVersion: "1"
-- }],
-- name: "Test Dictionary ef",
-- }, profileDir);
-- restartManager();
--
-- prepare_test({
-- "ef@dictionaries.addons.mozilla.org": [
-- "onInstalling"
-- ]
-- }, [
-- "onNewInstall",
-- "onDownloadStarted",
-- "onDownloadEnded",
-- "onInstallStarted",
-- "onInstallEnded"
-- ], check_test_28);
--
-- AddonManagerPrivate.backgroundUpdateCheck();
--}
--
--function check_test_28(install) {
-- do_check_eq(install.existingAddon.pendingUpgrade.install, install);
--
-- restartManager();
-- AddonManager.getAddonByID("ef@dictionaries.addons.mozilla.org", function(b2) {
-- do_check_neq(b2, null);
-- do_check_eq(b2.version, "2.0");
-- do_check_eq(b2.type, "extension");
-- b2.uninstall();
-- restartManager();
--
-- run_test_29();
-- });
--}
--
--// Tests that an update check from a bootstrappable add-on to a bootstrappable add-on works
--function run_test_29() {
-- writeInstallRDFForExtension({
-- id: "gh@dictionaries.addons.mozilla.org",
-- version: "1.0",
-- type: "64",
-- updateURL: "http://localhost:4444/data/test_dictionary.rdf",
-- targetApplications: [{
-- id: "xpcshell@tests.mozilla.org",
-- minVersion: "1",
-- maxVersion: "1"
-- }],
-- name: "Test Dictionary gh",
-- }, profileDir);
-- restartManager();
--
-- prepare_test({
-- "gh@dictionaries.addons.mozilla.org": [
-- ["onInstalling", false /* = no restart */],
-- ["onInstalled", false]
-- ]
-- }, [
-- "onNewInstall",
-- "onDownloadStarted",
-- "onDownloadEnded",
-- "onInstallStarted",
-- "onInstallEnded"
-- ], check_test_29);
--
-- AddonManagerPrivate.backgroundUpdateCheck();
--}
--
--function check_test_29(install) {
-- AddonManager.getAddonByID("gh@dictionaries.addons.mozilla.org", function(b2) {
-- do_check_neq(b2, null);
-- do_check_eq(b2.version, "2.0");
-- do_check_eq(b2.type, "dictionary");
--
-- prepare_test({
-- "gh@dictionaries.addons.mozilla.org": [
-- ["onUninstalling", false],
-- ["onUninstalled", false],
-- ]
-- }, [
-- ], finish_test_29);
--
-- b2.uninstall();
-- });
--}
--
--function finish_test_29() {
-- testserver.stop(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
-@@ -136,17 +136,16 @@ fail-if = os == "android"
- [test_cacheflush.js]
- [test_checkcompatibility.js]
- [test_ChromeManifestParser.js]
- [test_compatoverrides.js]
- [test_corrupt.js]
- [test_corrupt_strictcompat.js]
- [test_db_sanity.js]
- [test_dictionary.js]
--[test_langpack.js]
- [test_disable.js]
- [test_distribution.js]
- [test_dss.js]
- # Bug 676992: test consistently fails on Android
- fail-if = os == "android"
- [test_duplicateplugins.js]
- # Bug 676992: test consistently hangs on Android
- skip-if = os == "android"