MozillaFirefox/mozilla-backout-677092.patch
Wolfgang Rosenauer 7a99168951 - added mozilla-libproxy-compat.patch for libproxy API compat
on openSUSE 11.2 and earlier
- backed out restartless language packs as it broke multi-locale
  setup (bmo#677092, bmo#818468)

OBS-URL: https://build.opensuse.org/package/show/mozilla:Factory/MozillaFirefox?expand=0&rev=309
2013-01-08 15:14:02 +00:00

297 lines
8.9 KiB
Diff

# 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"