[arch-commits] Commit in firefox/trunk (PKGBUILD bug677092.patch)
Jan Steffens
heftig at archlinux.org
Thu Jan 10 21:06:13 UTC 2013
Date: Thursday, January 10, 2013 @ 16:06:13
Author: heftig
Revision: 175006
Fix langpack regression
Added:
firefox/trunk/bug677092.patch
Modified:
firefox/trunk/PKGBUILD
-----------------+
PKGBUILD | 12 +
bug677092.patch | 330 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 339 insertions(+), 3 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2013-01-10 17:58:12 UTC (rev 175005)
+++ PKGBUILD 2013-01-10 21:06:13 UTC (rev 175006)
@@ -4,7 +4,7 @@
pkgname=firefox
pkgver=18.0
-pkgrel=1
+pkgrel=2
pkgdesc="Standalone web browser from mozilla.org"
arch=('i686' 'x86_64')
license=('MPL' 'GPL' 'LGPL')
@@ -18,13 +18,15 @@
install=firefox.install
options=(!emptydirs)
source=(https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/$pkgver/source/firefox-$pkgver.source.tar.bz2
- mozconfig firefox.desktop firefox-install-dir.patch vendor.js shared-libs.patch)
+ mozconfig firefox.desktop firefox-install-dir.patch vendor.js shared-libs.patch
+ bug677092.patch)
md5sums=('485d02563854c20a3788d89db07b0687'
'efdd58626b2f56dea31e26879eb2db3b'
'6174396b4788deffa399db3f6f010a94'
'150ac0fb3ac7b2114c8e8851a9e0516c'
'0d053487907de4376d67d8f499c5502b'
- '52e52f840a49eb1d14be1c0065b03a93')
+ '52e52f840a49eb1d14be1c0065b03a93'
+ 'e1204e0be964b6964ebfb6467e05141f')
build() {
cd mozilla-release
@@ -33,6 +35,10 @@
patch -Np1 -i ../firefox-install-dir.patch
patch -Np1 -i ../shared-libs.patch
+ # Back out https://bugzilla.mozilla.org/show_bug.cgi?id=677092
+ # in order to fix https://bugzilla.mozilla.org/show_bug.cgi?id=818468
+ patch -Rp1 -i ../bug677092.patch
+
# Fix PRE_RELEASE_SUFFIX
sed -i '/^PRE_RELEASE_SUFFIX := ""/s/ ""//' \
browser/base/Makefile.in
Added: bug677092.patch
===================================================================
--- bug677092.patch (rev 0)
+++ bug677092.patch 2013-01-10 21:06:13 UTC (rev 175006)
@@ -0,0 +1,330 @@
+exporting patch:
+# HG changeset patch
+# User Axel Hecht <axel at pike.org>
+# Date 1348128099 -7200
+# Node ID 812d0ba8317507c4026958a740960384eac1507a
+# Parent 97e49e7a33266a0680e5af59289264a07e4321f8
+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 -r 97e49e7a3326 -r 812d0ba83175 toolkit/mozapps/extensions/XPIProvider.jsm
+--- a/toolkit/mozapps/extensions/XPIProvider.jsm Wed Sep 26 13:08:50 2012 +0200
++++ b/toolkit/mozapps/extensions/XPIProvider.jsm Thu Sep 20 10:01:39 2012 +0200
+@@ -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 -r 97e49e7a3326 -r 812d0ba83175 toolkit/mozapps/extensions/test/addons/test_langpack/chrome.manifest
+--- /dev/null Thu Jan 01 00:00:00 1970 +0000
++++ b/toolkit/mozapps/extensions/test/addons/test_langpack/chrome.manifest Thu Sep 20 10:01:39 2012 +0200
+@@ -0,0 +1,1 @@
++locale test-langpack x-testing locale/x-testing
+diff -r 97e49e7a3326 -r 812d0ba83175 toolkit/mozapps/extensions/test/addons/test_langpack/install.rdf
+--- /dev/null Thu Jan 01 00:00:00 1970 +0000
++++ b/toolkit/mozapps/extensions/test/addons/test_langpack/install.rdf Thu Sep 20 10:01:39 2012 +0200
+@@ -0,0 +1,23 @@
++<?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>langpack-x-testing at tests.mozilla.org</em:id>
++ <em:type>8</em:type>
++ <em:version>1.0</em:version>
++
++ <!-- Front End MetaData -->
++ <em:name>Language Pack x-testing</em:name>
++
++ <em:targetApplication>
++ <Description>
++ <em:id>xpcshell at tests.mozilla.org</em:id>
++ <em:minVersion>1</em:minVersion>
++ <em:maxVersion>2</em:maxVersion>
++ </Description>
++ </em:targetApplication>
++
++ </Description>
++</RDF>
+diff -r 97e49e7a3326 -r 812d0ba83175 toolkit/mozapps/extensions/test/xpcshell/test_langpack.js
+--- /dev/null Thu Jan 01 00:00:00 1970 +0000
++++ b/toolkit/mozapps/extensions/test/xpcshell/test_langpack.js Thu Sep 20 10:01:39 2012 +0200
+@@ -0,0 +1,247 @@
++/* Any copyright is dedicated to the Public Domain.
++ * http://creativecommons.org/publicdomain/zero/1.0/
++ */
++
++// 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
++Services.prefs.setIntPref("extensions.enabledScopes",
++ AddonManager.SCOPE_PROFILE + AddonManager.SCOPE_USER);
++
++createAppInfo("xpcshell at 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);
++
++var chrome = Components.classes["@mozilla.org/chrome/chrome-registry;1"]
++ .getService(Components.interfaces.nsIXULChromeRegistry);
++
++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();
++
++ startupManager();
++
++ run_test_1();
++}
++
++// Tests that installing doesn't require a restart
++function run_test_1() {
++ prepare_test({ }, [
++ "onNewInstall"
++ ]);
++
++ AddonManager.getInstallForFile(do_get_addon("test_langpack"), function(install) {
++ ensure_test_completed();
++
++ do_check_neq(install, null);
++ do_check_eq(install.type, "locale");
++ do_check_eq(install.version, "1.0");
++ 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);
++
++ let addon = install.addon;
++ prepare_test({
++ "langpack-x-testing at tests.mozilla.org": [
++ ["onInstalling", false],
++ "onInstalled"
++ ]
++ }, [
++ "onInstallStarted",
++ "onInstallEnded",
++ ], function() {
++ do_check_true(addon.hasResource("install.rdf"));
++ check_test_1();
++ });
++ install.install();
++ });
++}
++
++function check_test_1() {
++ 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("langpack-x-testing at 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);
++ // 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"));
++
++ let dir = do_get_addon_root_uri(profileDir, "langpack-x-testing at tests.mozilla.org");
++
++ AddonManager.getAddonsWithOperationsByTypes(null, function(list) {
++ do_check_eq(list.length, 0);
++
++ run_test_2();
++ });
++ });
++ });
++}
++
++// Tests that disabling doesn't require a restart
++function run_test_2() {
++ AddonManager.getAddonByID("langpack-x-testing at tests.mozilla.org", function(b1) {
++ prepare_test({
++ "langpack-x-testing at tests.mozilla.org": [
++ ["onDisabling", false],
++ "onDisabled"
++ ]
++ });
++
++ do_check_eq(b1.operationsRequiringRestart &
++ AddonManager.OP_NEEDS_RESTART_DISABLE, 0);
++ b1.userDisabled = true;
++ ensure_test_completed();
++
++ do_check_neq(b1, null);
++ do_check_eq(b1.version, "1.0");
++ do_check_false(b1.appDisabled);
++ do_check_true(b1.userDisabled);
++ do_check_false(b1.isActive);
++ // check chrome reg that language pack is not registered
++ do_check_locale_not_registered("test-langpack");
++
++ AddonManager.getAddonByID("langpack-x-testing at tests.mozilla.org", function(newb1) {
++ do_check_neq(newb1, null);
++ do_check_eq(newb1.version, "1.0");
++ do_check_false(newb1.appDisabled);
++ do_check_true(newb1.userDisabled);
++ do_check_false(newb1.isActive);
++
++ run_test_3();
++ });
++ });
++}
++
++// Test that restarting doesn't accidentally re-enable
++function run_test_3() {
++ shutdownManager();
++ startupManager(false);
++ // check chrome reg that language pack is not registered
++ do_check_locale_not_registered("test-langpack");
++
++ AddonManager.getAddonByID("langpack-x-testing at tests.mozilla.org", function(b1) {
++ do_check_neq(b1, null);
++ do_check_eq(b1.version, "1.0");
++ do_check_false(b1.appDisabled);
++ do_check_true(b1.userDisabled);
++ do_check_false(b1.isActive);
++
++ run_test_4();
++ });
++}
++
++// Tests that enabling doesn't require a restart
++function run_test_4() {
++ AddonManager.getAddonByID("langpack-x-testing at tests.mozilla.org", function(b1) {
++ prepare_test({
++ "langpack-x-testing at tests.mozilla.org": [
++ ["onEnabling", false],
++ "onEnabled"
++ ]
++ });
++
++ do_check_eq(b1.operationsRequiringRestart &
++ AddonManager.OP_NEEDS_RESTART_ENABLE, 0);
++ b1.userDisabled = false;
++ ensure_test_completed();
++
++ 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);
++ // check chrome reg that language pack is registered
++ do_check_eq(chrome.getSelectedLocale("test-langpack"), "x-testing");
++
++ AddonManager.getAddonByID("langpack-x-testing at tests.mozilla.org", function(newb1) {
++ do_check_neq(newb1, null);
++ do_check_eq(newb1.version, "1.0");
++ do_check_false(newb1.appDisabled);
++ do_check_false(newb1.userDisabled);
++ do_check_true(newb1.isActive);
++
++ run_test_5();
++ });
++ });
++}
++
++// Tests that a restart shuts down and restarts the add-on
++function run_test_5() {
++ shutdownManager();
++ startupManager(false);
++ // check chrome reg that language pack is registered
++ do_check_eq(chrome.getSelectedLocale("test-langpack"), "x-testing");
++
++ AddonManager.getAddonByID("langpack-x-testing at 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_false(isExtensionInAddonsList(profileDir, b1.id));
++
++ run_test_7();
++ });
++}
++
++// Tests that uninstalling doesn't require a restart
++function run_test_7() {
++ AddonManager.getAddonByID("langpack-x-testing at tests.mozilla.org", function(b1) {
++ prepare_test({
++ "langpack-x-testing at tests.mozilla.org": [
++ ["onUninstalling", false],
++ "onUninstalled"
++ ]
++ });
++
++ do_check_eq(b1.operationsRequiringRestart &
++ AddonManager.OP_NEEDS_RESTART_UNINSTALL, 0);
++ b1.uninstall();
++
++ check_test_7();
++ });
++}
++
++function check_test_7() {
++ ensure_test_completed();
++ // check chrome reg that language pack is not registered
++ do_check_locale_not_registered("test-langpack");
++
++ AddonManager.getAddonByID("langpack-x-testing at tests.mozilla.org", function(b1) {
++ do_check_eq(b1, null);
++
++ restartManager();
++
++ AddonManager.getAddonByID("langpack-x-testing at tests.mozilla.org", function(newb1) {
++ do_check_eq(newb1, null);
++
++ do_test_finished();
++ });
++ });
++}
+diff -r 97e49e7a3326 -r 812d0ba83175 toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini
+--- a/toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini Wed Sep 26 13:08:50 2012 +0200
++++ b/toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini Thu Sep 20 10:01:39 2012 +0200
+@@ -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]
More information about the arch-commits
mailing list