Update to version 6.0b1
authorWolfgang Rosenauer <wr@rosenauer.org>
Fri, 08 Jul 2011 08:21:23 +0200
changeset 289 3c0dff7ca9c4
parent 288 d51f3999a1c2
child 290 8e4307c73cbd
Update to version 6.0b1 - removed obsolete patches - enabled beta channel - refreshed patches
MozillaFirefox/MozillaFirefox.changes
MozillaFirefox/MozillaFirefox.spec
MozillaFirefox/create-tar.sh
MozillaFirefox/firefox-linkorder.patch
MozillaFirefox/firefox-no-sync-l10n.patch
MozillaFirefox/firefox-shellservice.patch
MozillaFirefox/mozilla-gio.patch
MozillaFirefox/mozilla-ppc-ipc.patch
firefox-branded-icons.patch
firefox-kde.patch
firefox-linkorder.patch
firefox-multilocale-chrome.patch
firefox-no-sync-l10n.patch
firefox-shellservice.patch
mozilla-gio.patch
mozilla-kde.patch
mozilla-ppc-ipc.patch
mozilla-prefer_plugin_pref.patch
mozilla-repo.patch
mozilla-shared-nss-db.patch
series
--- a/MozillaFirefox/MozillaFirefox.changes	Thu Jul 07 08:00:10 2011 +0200
+++ b/MozillaFirefox/MozillaFirefox.changes	Fri Jul 08 08:21:23 2011 +0200
@@ -1,3 +1,14 @@
+-------------------------------------------------------------------
+Fri Jul  8 06:16:10 UTC 2011 - wr@rosenauer.org
+
+- update to 6.0b1
+  * removed obsolete patches
+    - firefox-shellservice.patch
+    - mozilla-gio.patch
+    - mozilla-ppc-ipc.patch
+    - firefox-linkorder.patch
+    - firefox-no-sync-l10n.patch
+
 -------------------------------------------------------------------
 Fri Jul  1 19:53:18 CEST 2011 - vuntz@opensuse.org
 
--- a/MozillaFirefox/MozillaFirefox.spec	Thu Jul 07 08:00:10 2011 +0200
+++ b/MozillaFirefox/MozillaFirefox.spec	Fri Jul 08 08:21:23 2011 +0200
@@ -19,7 +19,7 @@
 # norootforbuild
 
 %define major 5
-%define mainver %major.0
+%define mainver %major.99
 
 Name:           MozillaFirefox
 BuildRequires:  autoconf213 gcc-c++ libcurl-devel libgnomeui-devel libidl-devel libnotify-devel python startup-notification-devel unzip update-desktop-files zip fdupes Mesa-devel yasm
@@ -35,7 +35,7 @@
 License:        MPLv1.1 or GPLv2+ or LGPLv2+
 Version:        %{mainver}
 Release:        1
-%define         releasedate 2011061500
+%define         releasedate 2011070600
 Provides:       web_browser
 Provides:       firefox = %{version}-%{release}
 Provides:       firefox = %{mainver}
@@ -68,23 +68,18 @@
 Patch5:         mozilla-kde.patch
 Patch6:         mozilla-cairo-lcd.patch
 Patch7:         mozilla-language.patch
-Patch8:         mozilla-gio.patch
 Patch9:         mozilla-cairo-return.patch
 Patch10:        mozilla-ntlm-full-path.patch
-Patch11:        mozilla-ppc-ipc.patch
 Patch12:        mozilla-repo.patch
 Patch13:        mozilla-dump_syms-static.patch
 Patch14:        mozilla-sle11.patch
 # Firefox/browser
-Patch30:        firefox-linkorder.patch
 Patch31:        firefox-browser-css.patch
 Patch32:        firefox-cross-desktop.patch
 Patch33:        firefox-kde.patch
 Patch34:        firefox-kde-114.patch
-Patch36:        firefox-no-sync-l10n.patch
 Patch38:        firefox-no-default-ualocale.patch
 Patch39:        firefox-multilocale-chrome.patch
-Patch40:        firefox-shellservice.patch
 Patch41:        firefox-branded-icons.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 Requires(post):   coreutils shared-mime-info desktop-file-utils
@@ -201,17 +196,15 @@
 %patch5 -p1
 %patch6 -p1
 %patch7 -p1
-%patch8 -p1
 %patch9 -p1
 %patch10 -p1
-%patch11 -p1
 %patch12 -p1
 %patch13 -p1
 %if %suse_version < 1120
 %patch14 -p1
 %endif
 #
-%patch30 -p1
+#%patch30 -p1
 %patch31 -p1
 %patch32 -p1
 %if %suse_version >= 1110
@@ -222,10 +215,9 @@
 %if %suse_version >= 1140
 %patch34 -p1
 %endif
-%patch36 -p1
+#%patch36 -p1
 %patch38 -p1
 %patch39 -p1
-%patch40 -p1
 %patch41 -p1
 
 %build
@@ -276,7 +268,7 @@
 ac_add_options --disable-debug
 ac_add_options --enable-startup-notification
 #ac_add_options --enable-chrome-format=jar
-ac_add_options --enable-update-channel=default
+ac_add_options --enable-update-channel=beta
 EOF
 %if %suse_version > 1130
 cat << EOF >> $MOZCONFIG
@@ -501,6 +493,7 @@
 %{progdir}/distribution/extensions/
 %{progdir}/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}
 %{progdir}/icons/
+%{progdir}/hyphenation/
 %{progdir}/searchplugins/
 %attr(755,root,root) %{progdir}/%{progname}.sh
 %{progdir}/firefox-bin
--- a/MozillaFirefox/create-tar.sh	Thu Jul 07 08:00:10 2011 +0200
+++ b/MozillaFirefox/create-tar.sh	Fri Jul 08 08:21:23 2011 +0200
@@ -1,8 +1,8 @@
 #!/bin/bash
 
-BRANCH="releases/mozilla-release"
-RELEASE_TAG="FIREFOX_5_0_RELEASE"
-VERSION="5.0"
+BRANCH="releases/mozilla-beta"
+RELEASE_TAG="FIREFOX_6_0b1_RELEASE"
+VERSION="5.99"
 
 # mozilla
 hg clone http://hg.mozilla.org/$BRANCH mozilla
@@ -23,7 +23,7 @@
     ja-JP-mac|en-US)
       ;;
     *)
-      hg clone http://hg.mozilla.org/releases/l10n/mozilla-release/$locale l10n/$locale
+      hg clone http://hg.mozilla.org/releases/l10n/mozilla-beta/$locale l10n/$locale
       [ "$RELEASE_TAG" == "default" ] || hg -R l10n/$locale up -C -r $RELEASE_TAG
       ;;
   esac
--- a/MozillaFirefox/firefox-linkorder.patch	Thu Jul 07 08:00:10 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-../firefox-linkorder.patch
\ No newline at end of file
--- a/MozillaFirefox/firefox-no-sync-l10n.patch	Thu Jul 07 08:00:10 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-../firefox-no-sync-l10n.patch
\ No newline at end of file
--- a/MozillaFirefox/firefox-shellservice.patch	Thu Jul 07 08:00:10 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-../firefox-shellservice.patch
\ No newline at end of file
--- a/MozillaFirefox/mozilla-gio.patch	Thu Jul 07 08:00:10 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-../mozilla-gio.patch
\ No newline at end of file
--- a/MozillaFirefox/mozilla-ppc-ipc.patch	Thu Jul 07 08:00:10 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-../mozilla-ppc-ipc.patch
\ No newline at end of file
--- a/firefox-branded-icons.patch	Thu Jul 07 08:00:10 2011 +0200
+++ b/firefox-branded-icons.patch	Fri Jul 08 08:21:23 2011 +0200
@@ -1,10 +1,10 @@
 # HG changeset patch
-# Parent 20b50e5bd650d19c30c308bb3b10f9903c83f581
+# Parent 0a9fd1d7099ccdff12205e23f0d9bf4d93a328ee
 
 diff --git a/browser/app/Makefile.in b/browser/app/Makefile.in
 --- a/browser/app/Makefile.in
 +++ b/browser/app/Makefile.in
-@@ -277,16 +277,21 @@ endif
+@@ -221,16 +221,21 @@ endif
  
  ifeq ($(MOZ_WIDGET_TOOLKIT),gtk2)
  libs::
@@ -26,34 +26,9 @@
  	$(INSTALL) $(IFLAGS1) $(DIST)/branding/splash.bmp $(DIST)/bin
  endif
  endif
-diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
---- a/browser/installer/package-manifest.in
-+++ b/browser/installer/package-manifest.in
-@@ -423,18 +423,21 @@
- #ifdef SHIP_FEEDBACK
- @BINPATH@/distribution/extensions/testpilot@labs.mozilla.com.xpi
- #endif
- @BINPATH@/chrome/toolkit@JAREXT@
- @BINPATH@/chrome/toolkit.manifest
- #ifdef XP_UNIX
- #ifndef XP_MACOSX
- @BINPATH@/chrome/icons/default/default16.png
-+@BINPATH@/chrome/icons/default/default22.png
-+@BINPATH@/chrome/icons/default/default24.png
- @BINPATH@/chrome/icons/default/default32.png
- @BINPATH@/chrome/icons/default/default48.png
-+@BINPATH@/chrome/icons/default/default256.png
- #endif
- #endif
- 
- 
- ; shell icons
- #ifdef XP_UNIX
- #ifndef XP_MACOSX
- @BINPATH@/icons/*.xpm
-diff --git a/other-licenses/branding/firefox/Makefile.in b/other-licenses/branding/firefox/Makefile.in
---- a/other-licenses/branding/firefox/Makefile.in
-+++ b/other-licenses/branding/firefox/Makefile.in
+diff --git a/browser/branding/official/Makefile.in b/browser/branding/official/Makefile.in
+--- a/browser/branding/official/Makefile.in
++++ b/browser/branding/official/Makefile.in
 @@ -68,18 +68,21 @@ OSX_BRANDING_FILES = \
  	firefox.icns \
  	disk.icns \
@@ -76,3 +51,28 @@
  	firefox-os2.ico \
  	document-os2.ico \
  	$(NULL)
+diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
+--- a/browser/installer/package-manifest.in
++++ b/browser/installer/package-manifest.in
+@@ -416,18 +416,21 @@
+ #ifdef SHIP_FEEDBACK
+ @BINPATH@/distribution/extensions/testpilot@labs.mozilla.com.xpi
+ #endif
+ @BINPATH@/chrome/toolkit@JAREXT@
+ @BINPATH@/chrome/toolkit.manifest
+ #ifdef XP_UNIX
+ #ifndef XP_MACOSX
+ @BINPATH@/chrome/icons/default/default16.png
++@BINPATH@/chrome/icons/default/default22.png
++@BINPATH@/chrome/icons/default/default24.png
+ @BINPATH@/chrome/icons/default/default32.png
+ @BINPATH@/chrome/icons/default/default48.png
++@BINPATH@/chrome/icons/default/default256.png
+ #endif
+ #endif
+ 
+ 
+ ; shell icons
+ #ifdef XP_UNIX
+ #ifndef XP_MACOSX
+ @BINPATH@/icons/*.xpm
--- a/firefox-kde.patch	Thu Jul 07 08:00:10 2011 +0200
+++ b/firefox-kde.patch	Fri Jul 08 08:21:23 2011 +0200
@@ -1105,7 +1105,7 @@
 diff --git a/browser/base/jar.mn b/browser/base/jar.mn
 --- a/browser/base/jar.mn
 +++ b/browser/base/jar.mn
-@@ -22,16 +22,18 @@ browser.jar:
+@@ -21,16 +21,18 @@ browser.jar:
  *       content/browser/aboutHome.css                 (content/aboutHome.css)
          content/browser/aboutHome-restore-icon.png    (content/aboutHome-restore-icon.png)
          content/browser/aboutHome-restore-icon-small.png    (content/aboutHome-restore-icon-small.png)
@@ -1119,11 +1119,11 @@
  *       content/browser/browser-tabPreviews.xml       (content/browser-tabPreviews.xml)
  *       content/browser/fullscreen-video.xhtml        (content/fullscreen-video.xhtml)
  *       content/browser/inspector.html                (content/inspector.html)
+ *       content/browser/scratchpad.xul                (content/scratchpad.xul)
+ *       content/browser/scratchpad.js                 (content/scratchpad.js)
  *       content/browser/pageinfo/pageInfo.xul         (content/pageinfo/pageInfo.xul)
  *       content/browser/pageinfo/pageInfo.js          (content/pageinfo/pageInfo.js)
  *       content/browser/pageinfo/pageInfo.css         (content/pageinfo/pageInfo.css)
- *       content/browser/pageinfo/pageInfo.xml         (content/pageinfo/pageInfo.xml)
- *       content/browser/pageinfo/feeds.js             (content/pageinfo/feeds.js)
 diff --git a/browser/components/build/nsModule.cpp b/browser/components/build/nsModule.cpp
 --- a/browser/components/build/nsModule.cpp
 +++ b/browser/components/build/nsModule.cpp
@@ -1140,13 +1140,13 @@
 +#include "nsUnixShellService.h"
  #endif
  
- #ifndef WINCE
- 
  #include "nsProfileMigrator.h"
- #include "nsDogbertProfileMigrator.h"
  #if !defined(XP_OS2)
  #include "nsOperaProfileMigrator.h"
-@@ -82,18 +82,16 @@ using namespace mozilla::browser;
+ #endif
+ #include "nsSeamonkeyProfileMigrator.h"
+ #if defined(XP_WIN) && !defined(__MINGW32__)
+@@ -72,18 +72,16 @@ using namespace mozilla::browser;
  
  /////////////////////////////////////////////////////////////////////////////
  
@@ -1159,14 +1159,14 @@
 -NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsGNOMEShellService, Init)
  #endif
  
- #ifndef WINCE
- 
- NS_GENERIC_FACTORY_CONSTRUCTOR(nsDogbertProfileMigrator)
  #if !defined(XP_OS2)
  NS_GENERIC_FACTORY_CONSTRUCTOR(nsOperaProfileMigrator)
  #endif
-@@ -145,17 +143,17 @@ NS_DEFINE_NAMED_CID(NS_SEAMONKEYPROFILEM
- #endif /* WINCE */
+ NS_GENERIC_FACTORY_CONSTRUCTOR(nsProfileMigrator)
+ NS_GENERIC_FACTORY_CONSTRUCTOR(nsSeamonkeyProfileMigrator)
+ #if defined(XP_WIN) && !defined(__MINGW32__)
+@@ -117,17 +115,17 @@ NS_DEFINE_NAMED_CID(NS_OPERAPROFILEMIGRA
+ NS_DEFINE_NAMED_CID(NS_SEAMONKEYPROFILEMIGRATOR_CID);
  NS_DEFINE_NAMED_CID(NS_PRIVATE_BROWSING_SERVICE_WRAPPER_CID);
  
  static const mozilla::Module::CIDEntry kBrowserCIDs[] = {
@@ -1179,11 +1179,11 @@
  #endif
      { &kNS_FEEDSNIFFER_CID, false, NULL, nsFeedSnifferConstructor },
      { &kNS_BROWSER_ABOUT_REDIRECTOR_CID, false, NULL, AboutRedirector::Create },
- #ifndef WINCE
      { &kNS_FIREFOX_PROFILEMIGRATOR_CID, false, NULL, nsProfileMigratorConstructor },
  #if defined(XP_WIN) && !defined(__MINGW32__)
      { &kNS_WINIEPROFILEMIGRATOR_CID, false, NULL, nsIEProfileMigratorConstructor },
  #elif defined(XP_MACOSX)
+     { &kNS_SHELLSERVICE_CID, false, NULL, nsMacShellServiceConstructor },
 diff --git a/browser/components/preferences/advanced.js b/browser/components/preferences/advanced.js
 --- a/browser/components/preferences/advanced.js
 +++ b/browser/components/preferences/advanced.js
@@ -1236,7 +1236,7 @@
 +++ b/browser/components/shell/src/Makefile.in
 @@ -52,17 +52,18 @@ endif
  
- ifneq (,$(filter WINCE WINNT,$(OS_ARCH)))
+ ifeq ($(OS_ARCH),WINNT)
  CPPSRCS = nsWindowsShellService.cpp
  else
  ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))
@@ -1626,7 +1626,7 @@
 diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
 --- a/browser/installer/package-manifest.in
 +++ b/browser/installer/package-manifest.in
-@@ -442,16 +442,17 @@
+@@ -435,16 +435,17 @@
  #endif
  #endif
  
--- a/firefox-linkorder.patch	Thu Jul 07 08:00:10 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-From: Wolfgang Rosenauer
-Subject: Build fails with --as-needed
-References:
-
-diff --git a/browser/components/build/Makefile.in b/browser/components/build/Makefile.in
---- a/browser/components/build/Makefile.in
-+++ b/browser/components/build/Makefile.in
-@@ -61,19 +61,21 @@ LOCAL_INCLUDES += -I$(srcdir)/../migrati
- SHARED_LIBRARY_LIBS += ../migration/src/$(LIB_PREFIX)migration_s.$(LIB_SUFFIX)
- EXTRA_DSO_LDOPTS += $(LIBXUL_DIST)/lib/$(LIB_PREFIX)mozreg_s.$(LIB_SUFFIX)
- endif
- 
- # This has to come after the above chunk, because mozreg_s has dependencies on
- # stuff in MOZ_COMPONENT_LIBS.
- EXTRA_DSO_LDOPTS += \
- 	$(LIBXUL_DIST)/lib/$(LIB_PREFIX)xpcomglue_s.$(LIB_SUFFIX) \
--	$(MOZ_COMPONENT_LIBS) \
- 	$(NULL)
- 
-+# if built with --as-needed the NSPR libs need to be linked after mozreg_s
-+EXTRA_DSO_LDOPTS += $(MOZ_COMPONENT_LIBS)
-+
- # Mac: Need to link with CoreFoundation for Mac Migrators (PList reading code)
- # GTK2: Need to link with glib for GNOME shell service
- ifneq (,$(filter cocoa gtk2,$(MOZ_WIDGET_TOOLKIT)))
- EXTRA_DSO_LDOPTS += \
-   $(TK_LIBS) \
-   $(NULL)
- endif
- 
--- a/firefox-multilocale-chrome.patch	Thu Jul 07 08:00:10 2011 +0200
+++ b/firefox-multilocale-chrome.patch	Fri Jul 08 08:21:23 2011 +0200
@@ -1,16 +1,16 @@
 # HG changeset patch
 # User Wolfgang Rosenauer <wr@rosenauer.org>
-# Parent ec1efb28a1fea666f22730689d811fc67720f2db
+# Parent 8b1b35442fee96324a141ab5d7710c3a88769df5
 Add searchplugins to chrome packaging for proper localization
 
 diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js
 --- a/browser/app/profile/firefox.js
 +++ b/browser/app/profile/firefox.js
-@@ -327,16 +327,20 @@ pref("browser.download.manager.scanWhenD
+@@ -323,16 +323,20 @@ pref("browser.download.manager.scanWhenD
  pref("browser.download.manager.resumeOnWakeDelay", 10000);
  
  // search engines URL
- pref("browser.search.searchEnginesURL",      "https://addons.mozilla.org/%LOCALE%/%APP%/search-engines/");
+ pref("browser.search.searchEnginesURL",      "https://addons.mozilla.org/%LOCALE%/firefox/search-engines/");
  
  // pointer to the default engine name
  pref("browser.search.defaultenginename",      "chrome://browser-region/locale/region.properties");
@@ -30,7 +30,7 @@
 diff --git a/browser/locales/Makefile.in b/browser/locales/Makefile.in
 --- a/browser/locales/Makefile.in
 +++ b/browser/locales/Makefile.in
-@@ -167,31 +167,43 @@ libs:: $(call MERGE_FILES,$(addprefix pr
+@@ -167,29 +167,41 @@ libs:: $(call MERGE_FILES,$(addprefix pr
  install:: $(DESTDIR)$(mozappdir)/defaults/profile/bookmarks.html ;
  
  install:: $(addprefix generic/profile/,$(PROFILE_FILES))
@@ -67,22 +67,20 @@
  libs-%:
  	$(NSINSTALL) -D $(DIST)/install
  	@$(MAKE) -C ../../toolkit/locales libs-$* BOTH_MANIFESTS=1
- ifdef MOZ_SERVICES_SYNC
  	@$(MAKE) -C ../../services/sync/locales AB_CD=$* XPI_NAME=locale-$* BOTH_MANIFESTS=1
- endif
 +	@$(MAKE) -B searchplugins AB_CD=$* XPI_NAME=locale-$*
  	@$(MAKE) -C ../../extensions/spellcheck/locales AB_CD=$* XPI_NAME=locale-$* BOTH_MANIFESTS=1
- 	@$(MAKE) libs AB_CD=$* XPI_NAME=locale-$* PREF_DIR=defaults/pref BOTH_MANIFESTS=1
+ 	@$(MAKE) -C ../../intl/locales AB_CD=$* XPI_NAME=locale-$* BOTH_MANIFESTS=1
+ 	@$(MAKE) libs AB_CD=$* XPI_NAME=locale-$* PREF_DIR=$(PREF_DIR) BOTH_MANIFESTS=1
  	@$(MAKE) -C $(DEPTH)/$(MOZ_BRANDING_DIRECTORY)/locales AB_CD=$* XPI_NAME=locale-$* BOTH_MANIFESTS=1
  
  
  repackage-win32-installer: WIN32_INSTALLER_OUT=$(_ABS_DIST)/$(PKG_INST_PATH)$(PKG_INST_BASENAME).exe
  repackage-win32-installer: $(call ESCAPE_SPACE,$(WIN32_INSTALLER_IN)) $(SUBMAKEFILES) libs-$(AB_CD)
- 	@echo "Repackaging $(WIN32_INSTALLER_IN) into $(WIN32_INSTALLER_OUT)."
 diff --git a/browser/locales/jar.mn b/browser/locales/jar.mn
 --- a/browser/locales/jar.mn
 +++ b/browser/locales/jar.mn
-@@ -81,11 +81,12 @@
+@@ -84,11 +84,12 @@
      locale/browser-region/region.properties        (%chrome/browser-region/region.properties)
  # the following files are browser-specific overrides
  *   locale/browser/netError.dtd                (%chrome/overrides/netError.dtd)
--- a/firefox-no-sync-l10n.patch	Thu Jul 07 08:00:10 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-# HG changeset patch
-# Parent 0266a8a602473a4fa13393628be0b2fd50d0efc6
-
-diff --git a/browser/locales/Makefile.in b/browser/locales/Makefile.in
---- a/browser/locales/Makefile.in
-+++ b/browser/locales/Makefile.in
-@@ -179,17 +179,19 @@ libs:: $(addsuffix .xml,$(SEARCH_PLUGINS
- 
- install:: $(addsuffix .xml,$(SEARCH_PLUGINS))
- 	$(SYSINSTALL) $(IFLAGS1) $^ $(DESTDIR)$(mozappdir)/searchplugins
- 
- 
- libs-%:
- 	$(NSINSTALL) -D $(DIST)/install
- 	@$(MAKE) -C ../../toolkit/locales libs-$* BOTH_MANIFESTS=1
-+ifdef MOZ_SERVICES_SYNC
- 	@$(MAKE) -C ../../services/sync/locales AB_CD=$* XPI_NAME=locale-$* BOTH_MANIFESTS=1
-+endif
- 	@$(MAKE) -C ../../extensions/spellcheck/locales AB_CD=$* XPI_NAME=locale-$* BOTH_MANIFESTS=1
- 	@$(MAKE) libs AB_CD=$* XPI_NAME=locale-$* PREF_DIR=defaults/pref BOTH_MANIFESTS=1
- 	@$(MAKE) -C $(DEPTH)/$(MOZ_BRANDING_DIRECTORY)/locales AB_CD=$* XPI_NAME=locale-$* BOTH_MANIFESTS=1
- 
- 
- repackage-win32-installer: WIN32_INSTALLER_OUT=$(_ABS_DIST)/$(PKG_INST_PATH)$(PKG_INST_BASENAME).exe
- repackage-win32-installer: $(call ESCAPE_SPACE,$(WIN32_INSTALLER_IN)) $(SUBMAKEFILES) libs-$(AB_CD)
- 	@echo "Repackaging $(WIN32_INSTALLER_IN) into $(WIN32_INSTALLER_OUT)."
--- a/firefox-shellservice.patch	Thu Jul 07 08:00:10 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,326 +0,0 @@
-# HG changeset patch
-# Parent 948830682920db68e4b039f5babc34dea0040415
-Bug 611953 - GNOME 3.0 readiness (based on patch 3)
-
-diff --git a/browser/components/shell/src/nsGNOMEShellService.cpp b/browser/components/shell/src/nsGNOMEShellService.cpp
---- a/browser/components/shell/src/nsGNOMEShellService.cpp
-+++ b/browser/components/shell/src/nsGNOMEShellService.cpp
-@@ -101,30 +101,33 @@ static const char kDesktopOptionsKey[] =
- static const char kDesktopDrawBGKey[] = DG_BACKGROUND "/draw_background";
- static const char kDesktopColorKey[] = DG_BACKGROUND "/primary_color";
- 
- nsresult
- nsGNOMEShellService::Init()
- {
-   nsresult rv;
- 
--  // GConf _must_ be available, or we do not allow
-+  // GConf or GIO _must_ be available, or we do not allow
-   // CreateInstance to succeed.
- 
-   nsCOMPtr<nsIGConfService> gconf = do_GetService(NS_GCONFSERVICE_CONTRACTID);
-   nsCOMPtr<nsIGIOService> giovfs =
-     do_GetService(NS_GIOSERVICE_CONTRACTID);
- 
--  if (!gconf)
-+  if (!gconf && !giovfs)
-     return NS_ERROR_NOT_AVAILABLE;
- 
-   // Check G_BROKEN_FILENAMES.  If it's set, then filenames in glib use
-   // the locale encoding.  If it's not set, they use UTF-8.
-   mUseLocaleFilenames = PR_GetEnv("G_BROKEN_FILENAMES") != nsnull;
- 
-+  if (GetAppPathFromLauncher())
-+    return NS_OK;
-+
-   nsCOMPtr<nsIProperties> dirSvc
-     (do_GetService("@mozilla.org/file/directory_service;1"));
-   NS_ENSURE_TRUE(dirSvc, NS_ERROR_NOT_AVAILABLE);
- 
-   nsCOMPtr<nsILocalFile> appPath;
-   rv = dirSvc->Get(NS_XPCOM_CURRENT_PROCESS_DIR, NS_GET_IID(nsILocalFile),
-                    getter_AddRefs(appPath));
-   NS_ENSURE_SUCCESS(rv, rv);
-@@ -133,16 +136,44 @@ nsGNOMEShellService::Init()
-   NS_ENSURE_SUCCESS(rv, rv);
- 
-   return appPath->GetNativePath(mAppPath);
- }
- 
- NS_IMPL_ISUPPORTS1(nsGNOMEShellService, nsIShellService)
- 
- PRBool
-+nsGNOMEShellService::GetAppPathFromLauncher()
-+{
-+  gchar *tmp;
-+
-+  const char *launcher = PR_GetEnv("MOZ_APP_LAUNCHER");
-+  if (!launcher)
-+    return PR_FALSE;
-+
-+  if (g_path_is_absolute(launcher)) {
-+    mAppPath = launcher;
-+    tmp = g_path_get_basename(launcher);
-+    gchar *fullpath = g_find_program_in_path(tmp);
-+    if (fullpath && mAppPath.Equals(fullpath))
-+      mAppIsInPath = PR_TRUE;
-+    g_free(fullpath);
-+  } else {
-+    tmp = g_find_program_in_path(launcher);
-+    if (!tmp)
-+      return PR_FALSE;
-+    mAppPath = tmp;
-+    mAppIsInPath = PR_TRUE;
-+  }
-+
-+  g_free(tmp);
-+  return PR_TRUE;
-+}
-+
-+PRBool
- nsGNOMEShellService::KeyMatchesAppName(const char *aKeyValue) const
- {
- 
-   gchar *commandPath;
-   if (mUseLocaleFilenames) {
-     gchar *nativePath = g_filename_from_utf8(aKeyValue, -1, NULL, NULL, NULL);
-     if (!nativePath) {
-       NS_ERROR("Error converting path to filesystem encoding");
-@@ -158,84 +189,119 @@ nsGNOMEShellService::KeyMatchesAppName(c
-   if (!commandPath)
-     return PR_FALSE;
- 
-   PRBool matches = mAppPath.Equals(commandPath);
-   g_free(commandPath);
-   return matches;
- }
- 
-+PRBool
-+nsGNOMEShellService::CheckHandlerMatchesAppName(const nsACString &handler) const
-+{
-+  gint argc;
-+  gchar **argv;
-+  nsCAutoString command(handler);
-+
-+  // The string will be something of the form: [/path/to/]browser "%s"
-+  // We want to remove all of the parameters and get just the binary name.
-+  if (g_shell_parse_argv(command.get(), &argc, &argv, NULL) && argc > 0) {
-+    command.Assign(argv[0]);
-+    g_strfreev(argv);
-+  }
-+
-+  if (!KeyMatchesAppName(command.get()))
-+    return PR_FALSE; // the handler is disabled or set to another app
-+
-+  return PR_TRUE;
-+}
-+
- NS_IMETHODIMP
- nsGNOMEShellService::IsDefaultBrowser(PRBool aStartupCheck,
-                                       PRBool* aIsDefaultBrowser)
- {
-   *aIsDefaultBrowser = PR_FALSE;
-   if (aStartupCheck)
-     mCheckedThisSession = PR_TRUE;
- 
-   nsCOMPtr<nsIGConfService> gconf = do_GetService(NS_GCONFSERVICE_CONTRACTID);
-+  nsCOMPtr<nsIGIOService> giovfs = do_GetService(NS_GIOSERVICE_CONTRACTID);
- 
-   PRBool enabled;
-   nsCAutoString handler;
-+  nsCOMPtr<nsIGIOMimeApp> gioApp;
- 
-   for (unsigned int i = 0; i < NS_ARRAY_LENGTH(appProtocols); ++i) {
-     if (!appProtocols[i].essential)
-       continue;
- 
--    handler.Truncate();
--    gconf->GetAppForProtocol(nsDependentCString(appProtocols[i].name),
--                             &enabled, handler);
-+    if (gconf) {
-+      handler.Truncate();
-+      gconf->GetAppForProtocol(nsDependentCString(appProtocols[i].name),
-+                               &enabled, handler);
- 
--    // The string will be something of the form: [/path/to/]browser "%s"
--    // We want to remove all of the parameters and get just the binary name.
--
--    gint argc;
--    gchar **argv;
--
--    if (g_shell_parse_argv(handler.get(), &argc, &argv, NULL) && argc > 0) {
--      handler.Assign(argv[0]);
--      g_strfreev(argv);
-+      if (!CheckHandlerMatchesAppName(handler) || !enabled)
-+        return NS_OK; // the handler is disabled or set to another app
-     }
- 
--    if (!KeyMatchesAppName(handler.get()) || !enabled)
--      return NS_OK; // the handler is disabled or set to another app
-+    if (giovfs) {
-+      handler.Truncate();
-+      giovfs->GetAppForURIScheme(nsDependentCString(appProtocols[i].name),
-+                                 getter_AddRefs(gioApp));
-+      if (!gioApp)
-+        return NS_OK;
-+
-+      gioApp->GetCommand(handler);
-+
-+      if (!CheckHandlerMatchesAppName(handler))
-+        return NS_OK; // the handler is set to another app
-+    }
-   }
- 
-   *aIsDefaultBrowser = PR_TRUE;
- 
-   return NS_OK;
- }
- 
- NS_IMETHODIMP
- nsGNOMEShellService::SetDefaultBrowser(PRBool aClaimAllTypes,
-                                        PRBool aForAllUsers)
- {
- #ifdef DEBUG
-   if (aForAllUsers)
-     NS_WARNING("Setting the default browser for all users is not yet supported");
- #endif
- 
-+  nsCAutoString appKeyValue;
-   nsCOMPtr<nsIGConfService> gconf = do_GetService(NS_GCONFSERVICE_CONTRACTID);
-+  nsCOMPtr<nsIGIOService> giovfs = do_GetService(NS_GIOSERVICE_CONTRACTID);
-+
-+  if (mAppIsInPath) {
-+    // mAppPath is in the users path, so use only the basename as the
-+    // launcher
-+    gchar *tmp = g_path_get_basename(mAppPath.get());
-+    appKeyValue = tmp;
-+    g_free(tmp);
-+  } else {
-+    appKeyValue = mAppPath;
-+  }
-+  appKeyValue.AppendLiteral(" %s");
-+
-   if (gconf) {
--    nsCAutoString appKeyValue(mAppPath);
--    appKeyValue.Append(" \"%s\"");
-     for (unsigned int i = 0; i < NS_ARRAY_LENGTH(appProtocols); ++i) {
-       if (appProtocols[i].essential || aClaimAllTypes) {
-         gconf->SetAppForProtocol(nsDependentCString(appProtocols[i].name),
-                                  appKeyValue);
-       }
-     }
-   }
- 
--  // set handler for .html and xhtml files and MIME types:
--  if (aClaimAllTypes) {
-+  if (giovfs) {
-     nsresult rv;
--    nsCOMPtr<nsIGIOService> giovfs =
--      do_GetService(NS_GIOSERVICE_CONTRACTID, &rv);
--    NS_ENSURE_SUCCESS(rv, NS_OK);
-+    unsigned int i;
- 
-     nsCOMPtr<nsIStringBundleService> bundleService =
-       do_GetService(NS_STRINGBUNDLE_CONTRACTID, &rv);
-     NS_ENSURE_SUCCESS(rv, rv);
- 
-     nsCOMPtr<nsIStringBundle> brandBundle;
-     rv = bundleService->CreateBundle(BRAND_PROPERTIES, getter_AddRefs(brandBundle));
-     NS_ENSURE_SUCCESS(rv, rv);
-@@ -249,20 +315,30 @@ nsGNOMEShellService::SetDefaultBrowser(P
-     // use brandShortName as the application id.
-     NS_ConvertUTF16toUTF8 id(brandShortName);
-     nsCOMPtr<nsIGIOMimeApp> appInfo;
-     rv = giovfs->CreateAppFromCommand(mAppPath,
-                                       id,
-                                       getter_AddRefs(appInfo));
-     NS_ENSURE_SUCCESS(rv, rv);
- 
--    // Add mime types for html, xhtml extension and set app to just created appinfo.
--    for (unsigned int i = 0; i < NS_ARRAY_LENGTH(appTypes); ++i) {
--      appInfo->SetAsDefaultForMimeType(nsDependentCString(appTypes[i].mimeType));
--      appInfo->SetAsDefaultForFileExtensions(nsDependentCString(appTypes[i].extensions));
-+    // set handler for the protocols
-+    for (i = 0; i < NS_ARRAY_LENGTH(appProtocols); ++i) {
-+      if (appProtocols[i].essential || aClaimAllTypes) {
-+        appInfo->SetAsDefaultForURIScheme(nsDependentCString(appProtocols[i].name));
-+      }
-+    }
-+
-+    // set handler for .html and xhtml files and MIME types:
-+    if (aClaimAllTypes) {
-+      // Add mime types for html, xhtml extension and set app to just created appinfo.
-+      for (i = 0; i < NS_ARRAY_LENGTH(appTypes); ++i) {
-+        appInfo->SetAsDefaultForMimeType(nsDependentCString(appTypes[i].mimeType));
-+        appInfo->SetAsDefaultForFileExtensions(nsDependentCString(appTypes[i].extensions));
-+      }
-     }
-   }
- 
-   return NS_OK;
- }
- 
- NS_IMETHODIMP
- nsGNOMEShellService::GetShouldCheckDefaultBrowser(PRBool* aResult)
-@@ -451,17 +527,27 @@ nsGNOMEShellService::OpenApplication(PRI
-   nsCAutoString scheme;
-   if (aApplication == APPLICATION_MAIL)
-     scheme.Assign("mailto");
-   else if (aApplication == APPLICATION_NEWS)
-     scheme.Assign("news");
-   else
-     return NS_ERROR_NOT_AVAILABLE;
- 
-+  nsCOMPtr<nsIGIOService> giovfs = do_GetService(NS_GIOSERVICE_CONTRACTID);
-+  if (giovfs) {
-+    nsCOMPtr<nsIGIOMimeApp> gioApp;
-+    giovfs->GetAppForURIScheme(scheme, getter_AddRefs(gioApp));
-+    if (gioApp)
-+      return gioApp->Launch(EmptyCString());
-+  }
-+
-   nsCOMPtr<nsIGConfService> gconf = do_GetService(NS_GCONFSERVICE_CONTRACTID);
-+  if (!gconf)
-+    return NS_ERROR_FAILURE;
- 
-   PRBool enabled;
-   nsCAutoString appCommand;
-   gconf->GetAppForProtocol(scheme, &enabled, appCommand);
- 
-   if (!enabled)
-     return NS_ERROR_FAILURE;
- 
-diff --git a/browser/components/shell/src/nsGNOMEShellService.h b/browser/components/shell/src/nsGNOMEShellService.h
---- a/browser/components/shell/src/nsGNOMEShellService.h
-+++ b/browser/components/shell/src/nsGNOMEShellService.h
-@@ -38,26 +38,29 @@
- #define nsgnomeshellservice_h____
- 
- #include "nsIShellService.h"
- #include "nsStringAPI.h"
- 
- class nsGNOMEShellService : public nsIShellService
- {
- public:
--  nsGNOMEShellService() : mCheckedThisSession(PR_FALSE) { }
-+  nsGNOMEShellService() : mCheckedThisSession(PR_FALSE), mAppIsInPath(PR_FALSE) { }
- 
-   NS_DECL_ISUPPORTS
-   NS_DECL_NSISHELLSERVICE
- 
-   nsresult Init() NS_HIDDEN;
- 
- private:
-   ~nsGNOMEShellService() {}
- 
-   NS_HIDDEN_(PRBool) KeyMatchesAppName(const char *aKeyValue) const;
-+  NS_HIDDEN_(PRBool) CheckHandlerMatchesAppName(const nsACString& handler) const;
- 
-+  NS_HIDDEN_(PRBool) GetAppPathFromLauncher();
-   PRPackedBool mCheckedThisSession;
-   PRPackedBool mUseLocaleFilenames;
-   nsCString    mAppPath;
-+  PRPackedBool mAppIsInPath;
- };
- 
- #endif // nsgnomeshellservice_h____
--- a/mozilla-gio.patch	Thu Jul 07 08:00:10 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,284 +0,0 @@
-# HG changeset patch
-# User Chris Coulson
-# Parent 0ebe30f9eacfe67fa0b699457e524d5a9c96359e
-Bug 611953 - GNOME 3.0 readiness (patch 2 + 3)
-
-diff --git a/toolkit/system/gnome/nsGIOService.cpp b/toolkit/system/gnome/nsGIOService.cpp
---- a/toolkit/system/gnome/nsGIOService.cpp
-+++ b/toolkit/system/gnome/nsGIOService.cpp
-@@ -101,25 +101,25 @@ nsGIOMimeApp::GetName(nsACString& aName)
-   return NS_OK;
- }
- 
- NS_IMETHODIMP
- nsGIOMimeApp::GetCommand(nsACString& aCommand)
- {
-   get_commandline_t g_app_info_get_commandline_ptr;
- 
--  void *libHandle = dlopen("libgio-2.0.so", RTLD_LAZY);
-+  void *libHandle = dlopen("libgio-2.0.so.0", RTLD_LAZY);
-   if (!libHandle) {
-     return NS_ERROR_FAILURE;
-   }
-   dlerror(); /* clear any existing error */
-   g_app_info_get_commandline_ptr =
-     (get_commandline_t) dlsym(libHandle, "g_app_info_get_commandline");
--  if (dlerror() != NULL) {
--    const char cmd = *g_app_info_get_commandline_ptr(mApp);
-+  if (dlerror() == NULL) {
-+    const char *cmd = g_app_info_get_commandline_ptr(mApp);
-     if (!cmd) {
-       dlclose(libHandle);
-       return NS_ERROR_FAILURE;
-     }
-     aCommand.Assign(cmd);
-   }
-   dlclose(libHandle);
-   return NS_OK;
-@@ -277,16 +277,43 @@ nsGIOMimeApp::SetAsDefaultForFileExtensi
-     } else {
-       *ext_pos = '\0';
-     }
-   }
-   g_free(extensions);
-   return NS_OK;
- }
- 
-+/**
-+ * Set default application for URI's of a particular scheme
-+ * @param aURIScheme string containing the URI scheme
-+ * @return NS_OK when application was set as default for URI scheme,
-+ * NS_ERROR_FAILURE otherwise
-+ */
-+NS_IMETHODIMP
-+nsGIOMimeApp::SetAsDefaultForURIScheme(nsACString const& aURIScheme)
-+{
-+  GError *error = NULL;
-+  nsCAutoString contentType("x-scheme-handler/");
-+  contentType.Append(aURIScheme);
-+
-+  g_app_info_set_as_default_for_type(mApp,
-+                                     contentType.get(),
-+                                     &error);
-+  if (error) {
-+    g_warning("Cannot set application as default for URI scheme (%s): %s",
-+              PromiseFlatCString(aURIScheme).get(),
-+              error->message);
-+    g_error_free(error);
-+    return NS_ERROR_FAILURE;
-+  }
-+
-+  return NS_OK;
-+}
-+
- nsresult
- nsGIOService::Init()
- {
-   // do nothing, gvfs/gio does not init.
-   return NS_OK;
- }
- 
- NS_IMPL_ISUPPORTS1(nsGIOService, nsIGIOService)
-@@ -317,29 +344,45 @@ nsGIOService::GetMimeTypeFromExtension(c
-   g_free(mime_type);
-   g_free(content_type);
- 
-   return NS_OK;
- }
- // used in nsGNOMERegistry
- // -----------------------------------------------------------------------------
- NS_IMETHODIMP
-+nsGIOService::GetAppForURIScheme(const nsACString& aURIScheme,
-+                                 nsIGIOMimeApp** aApp)
-+{
-+  *aApp = nsnull;
-+
-+  GAppInfo *app_info = g_app_info_get_default_for_uri_scheme(
-+                         PromiseFlatCString(aURIScheme).get());
-+  if (app_info) {
-+    nsGIOMimeApp *mozApp = new nsGIOMimeApp(app_info);
-+    NS_ADDREF(*aApp = mozApp);
-+  } else {
-+    return NS_ERROR_FAILURE;
-+  }
-+  return NS_OK;
-+}
-+
-+NS_IMETHODIMP
- nsGIOService::GetAppForMimeType(const nsACString& aMimeType,
-                                 nsIGIOMimeApp**   aApp)
- {
-   *aApp = nsnull;
-   char *content_type =
-     get_content_type_from_mime_type(PromiseFlatCString(aMimeType).get());
-   if (!content_type)
-     return NS_ERROR_FAILURE;
- 
-   GAppInfo *app_info = g_app_info_get_default_for_type(content_type, false);
-   if (app_info) {
-     nsGIOMimeApp *mozApp = new nsGIOMimeApp(app_info);
--    NS_ENSURE_TRUE(mozApp, NS_ERROR_OUT_OF_MEMORY);
-     NS_ADDREF(*aApp = mozApp);
-   } else {
-     g_free(content_type);
-     return NS_ERROR_FAILURE;
-   }
-   g_free(content_type);
-   return NS_OK;
- }
-@@ -414,75 +457,46 @@ nsGIOService::CreateAppFromCommand(nsACS
-                                    nsIGIOMimeApp**   appInfo)
- {
-   GError *error = NULL;
-   *appInfo = nsnull;
- 
-   GAppInfo *app_info = NULL, *app_info_from_list = NULL;
-   GList *apps = g_app_info_get_all();
-   GList *apps_p = apps;
--  get_commandline_t g_app_info_get_commandline_ptr;
--
--  void *libHandle = dlopen("libgio-2.0.so", RTLD_LAZY);
--  if (!libHandle) {
--    return NS_ERROR_FAILURE;
--  }
--  dlerror(); /* clear any existing error */
--  g_app_info_get_commandline_ptr =
--    (get_commandline_t) dlsym(libHandle, "g_app_info_get_commandline");
--  if (dlerror() != NULL) {
--    g_app_info_get_commandline_ptr = NULL;
--  }
- 
-   // Try to find relevant and existing GAppInfo in all installed application
-+  // We do this by comparing each GAppInfo's executable with out own
-   while (apps_p) {
-     app_info_from_list = (GAppInfo*) apps_p->data;
--    /* This is  a silly test. It just compares app names but not
--     * commands. This is due to old version of Glib/Gio. The required
--     * function which allows to do a regular check of existence of desktop file
--     * is possible by using function g_app_info_get_commandline. This function
--     * has been introduced in Glib 2.20. */
--    if (app_info_from_list && strcmp(g_app_info_get_name(app_info_from_list),
--                                     PromiseFlatCString(appName).get()) == 0 )
--    {
--      if (g_app_info_get_commandline_ptr)
--      {
--        /* Following test is only possible with Glib >= 2.20.
--         * Compare path only by using strncmp */
--        if (strncmp(g_app_info_get_commandline_ptr(app_info_from_list),
--                    PromiseFlatCString(cmd).get(),
--                    strlen(PromiseFlatCString(cmd).get())) == 0)
--        {
--          app_info = app_info_from_list;
--          break;
--        } else {
--          g_object_unref(app_info_from_list);
--        }
--      } else {
-+    if (!app_info) {
-+      // If the executable is not absolute, get it's full path
-+      char *executable = g_find_program_in_path(g_app_info_get_executable(app_info_from_list));
-+
-+      if (executable && strcmp(executable, PromiseFlatCString(cmd).get()) == 0) {
-+        g_object_ref (app_info_from_list);
-         app_info = app_info_from_list;
--        break;
-       }
--    } else {
--      g_object_unref(app_info_from_list);
-+      g_free(executable);
-     }
-+
-+    g_object_unref(app_info_from_list);
-     apps_p = apps_p->next;
-   }
-   g_list_free(apps);
- 
-   if (!app_info) {
-     app_info = g_app_info_create_from_commandline(PromiseFlatCString(cmd).get(),
-                                                   PromiseFlatCString(appName).get(),
-                                                   G_APP_INFO_CREATE_SUPPORTS_URIS,
-                                                   &error);
-   }
- 
-   if (!app_info) {
-     g_warning("Cannot create application info from command: %s", error->message);
-     g_error_free(error);
--    dlclose(libHandle);
-     return NS_ERROR_FAILURE;
-   }
-   nsGIOMimeApp *mozApp = new nsGIOMimeApp(app_info);
-   NS_ENSURE_TRUE(mozApp, NS_ERROR_OUT_OF_MEMORY);
-   NS_ADDREF(*appInfo = mozApp);
--  dlclose(libHandle);
-   return NS_OK;
- }
-diff --git a/xpcom/system/nsIGIOService.idl b/xpcom/system/nsIGIOService.idl
---- a/xpcom/system/nsIGIOService.idl
-+++ b/xpcom/system/nsIGIOService.idl
-@@ -39,17 +39,17 @@
- 
- #include "nsISupports.idl"
- 
- interface nsIUTF8StringEnumerator;
- interface nsIURI;
- 
- /* nsIGIOMimeApp holds information about an application that is looked up
-    with nsIGIOService::GetAppForMimeType. */
--// 66009894-9877-405b-9321-bf30420e34e6 prev uuid
-+// e77021b4-4012-407d-b686-7a1f18050109 prev uuid
- 
- [scriptable, uuid(e77021b4-4012-407d-b686-7a1f18050109)] 
- interface nsIGIOMimeApp : nsISupports
- {
-   const long EXPECTS_URIS  = 0;
-   const long EXPECTS_PATHS = 1;
-   const long EXPECTS_URIS_FOR_NON_FILES = 2;
- 
-@@ -57,41 +57,45 @@ interface nsIGIOMimeApp : nsISupports
-   readonly attribute AUTF8String         name;
-   readonly attribute AUTF8String         command;
-   readonly attribute long                expectsURIs;  // see constants above
-   readonly attribute nsIUTF8StringEnumerator supportedURISchemes;
- 
-   void launch(in AUTF8String uri);
-   void setAsDefaultForMimeType(in AUTF8String mimeType);
-   void setAsDefaultForFileExtensions(in AUTF8String extensions);
-+  void setAsDefaultForURIScheme(in AUTF8String uriScheme);
- };
- 
- /*
-  * The VFS service makes use of two distinct registries.
-  *
-  * The application registry holds information about applications (uniquely
-  * identified by id), such as which MIME types and URI schemes they are
-  * capable of handling, whether they run in a terminal, etc.
-  *
-  * The MIME registry holds information about MIME types, such as which
-  * extensions map to a given MIME type.  The MIME registry also stores the
-  * id of the application selected to handle each MIME type.
-  */
- 
--// prev id dea20bf0-4e4d-48c5-b932-dc3e116dc64b
--[scriptable, uuid(47e372c2-78bb-4899-8114-56aa7d9cdac5)]
-+// prev id 47e372c2-78bb-4899-8114-56aa7d9cdac5
-+[scriptable, uuid(74ca8791-330d-4786-9569-2a2a19f0b486)]
- interface nsIGIOService : nsISupports
- {
- 
-   /*** MIME registry methods ***/
- 
-   /* Obtain the MIME type registered for an extension.  The extension
-      should not include a leading dot. */
-   AUTF8String        getMimeTypeFromExtension(in AUTF8String extension);
- 
-+  /* Obtain the preferred application for opening a given URI scheme */
-+  nsIGIOMimeApp      getAppForURIScheme(in AUTF8String aURIScheme);
-+
-   /* Obtain the preferred application for opening a given MIME type */
-   nsIGIOMimeApp      getAppForMimeType(in AUTF8String mimeType);
- 
-   /* Obtain the preferred application for opening a given MIME type */
-   nsIGIOMimeApp      createAppFromCommand(in AUTF8String cmd, 
-                                           in AUTF8String appName);
- 
-   /* Obtain a description for the given MIME type */
--- a/mozilla-kde.patch	Thu Jul 07 08:00:10 2011 +0200
+++ b/mozilla-kde.patch	Fri Jul 08 08:21:23 2011 +0200
@@ -1,7 +1,7 @@
 diff --git a/modules/libpref/src/Makefile.in b/modules/libpref/src/Makefile.in
 --- a/modules/libpref/src/Makefile.in
 +++ b/modules/libpref/src/Makefile.in
-@@ -90,14 +90,16 @@ GREPREF_FILES = $(topsrcdir)/netwerk/bas
+@@ -87,14 +87,16 @@ GREPREF_FILES = $(topsrcdir)/netwerk/bas
  # Optimizer bug with GCC 3.2.2 on OS/2
  ifeq ($(OS_ARCH), OS2)
  nsPrefService.$(OBJ_SUFFIX): nsPrefService.cpp
@@ -18,9 +18,9 @@
  
  libs:: greprefs.js
  	$(INSTALL) $^ $(DIST)/bin/
-diff --git a/modules/libpref/src/nsPrefService.cpp b/modules/libpref/src/nsPrefService.cpp
---- a/modules/libpref/src/nsPrefService.cpp
-+++ b/modules/libpref/src/nsPrefService.cpp
+diff --git a/modules/libpref/src/Preferences.cpp b/modules/libpref/src/Preferences.cpp
+--- a/modules/libpref/src/Preferences.cpp
++++ b/modules/libpref/src/Preferences.cpp
 @@ -53,16 +53,17 @@
  #include "nsIStringEnumerator.h"
  #include "nsIZipReader.h"
@@ -39,7 +39,7 @@
  #include "prefapi.h"
  #include "prefread.h"
  #include "prefapi_private_data.h"
-@@ -758,30 +759,48 @@ pref_LoadPrefsInDir(nsIFile* aDir, char 
+@@ -822,30 +823,48 @@ pref_LoadPrefsInDir(nsIFile* aDir, char 
  }
  
  static nsresult pref_LoadPrefsInDirList(const char *listId)
@@ -88,44 +88,48 @@
    return NS_OK;
  }
  
- //----------------------------------------------------------------------------------------
-@@ -876,24 +895,36 @@ static nsresult pref_InitInitialObjects(
-   /* these pref file names should not be used: we process them after all other application pref files for backwards compatibility */
-   static const char* specialFiles[] = {
- #if defined(XP_MAC) || defined(XP_MACOSX)
+ static nsresult pref_ReadPrefFromJar(nsZipArchive* jarReader, const char *name)
+@@ -938,28 +957,40 @@ static nsresult pref_InitInitialObjects(
+     /* these pref file names should not be used: we process them after all other application pref files for backwards compatibility */
+     static const char* specialFiles[] = {
+ #if defined(XP_MACOSX)
        "macprefs.js"
  #elif defined(XP_WIN)
        "winpref.js"
  #elif defined(XP_UNIX)
        "unix.js"
 +      , "" // placeholder for KDE  (empty is otherwise harmless)
- #if defined(_AIX)
+ #if defined(VMS)
+       , "openvms.js"
+ #elif defined(_AIX)
        , "aix.js"
  #endif
  #elif defined(XP_OS2)
        "os2pref.js"
+ #elif defined(XP_BEOS)
+       "beos.js"
  #endif
-   };
+     };
  
-+  if(nsKDEUtils::kdeSession()) { // TODO what if some setup actually requires the helper?
-+    for( int i = 0;
-+        i < NS_ARRAY_LENGTH(specialFiles);
-+        ++i ) {
-+      if( *specialFiles[ i ] == '\0' ) {
-+        specialFiles[ i ] = "kde.js";
-+        break;
++    if(nsKDEUtils::kdeSession()) { // TODO what if some setup actually requires the helper?
++      for( int i = 0;
++          i < NS_ARRAY_LENGTH(specialFiles);
++          ++i ) {
++        if( *specialFiles[ i ] == '\0' ) {
++          specialFiles[ i ] = "kde.js";
++          break;
++        }
 +      }
 +    }
-+  }
 +
-   rv = pref_LoadPrefsInDir(defaultPrefDir, specialFiles, NS_ARRAY_LENGTH(specialFiles));
-   if (NS_FAILED(rv)) {
-     NS_WARNING("Error parsing application default preferences.");
+     rv = pref_LoadPrefsInDir(defaultPrefDir, specialFiles, NS_ARRAY_LENGTH(specialFiles));
+     if (NS_FAILED(rv))
+       NS_WARNING("Error parsing application default preferences.");
    }
  
-   rv = pref_LoadPrefsInDirList(NS_APP_PREFS_DEFAULTS_DIR_LIST);
-   NS_ENSURE_SUCCESS(rv, rv);
- 
+   // Load jar:$app/omni.jar!/defaults/preferences/*.js
+   nsZipArchive *appJarReader = mozilla::Omnijar::GetReader(mozilla::Omnijar::APP);
+   if (appJarReader) {
 diff --git a/toolkit/components/downloads/Makefile.in b/toolkit/components/downloads/Makefile.in
 --- a/toolkit/components/downloads/Makefile.in
 +++ b/toolkit/components/downloads/Makefile.in
@@ -145,7 +149,7 @@
 +++ b/toolkit/components/downloads/nsDownloadManager.cpp
 @@ -71,16 +71,20 @@
  
- #if defined(XP_WIN) && !defined(WINCE)
+ #ifdef XP_WIN
  #include <shlobj.h>
  #ifdef DOWNLOAD_SCANNER
  #include "nsDownloadScanner.h"
@@ -164,7 +168,7 @@
  #include "AndroidBridge.h"
  #endif
  
-@@ -2203,16 +2207,25 @@ nsDownload::SetState(DownloadState aStat
+@@ -2192,16 +2196,25 @@ nsDownload::SetState(DownloadState aStat
        nsCOMPtr<nsIPrefBranch> pref(do_GetService(NS_PREFSERVICE_CONTRACTID));
  
        // Master pref to control this function.
@@ -190,7 +194,7 @@
          PRInt64 goat = PR_Now() - mStartTime;
          showTaskbarAlert = goat > alertIntervalUSec;
  
-@@ -2236,18 +2249,19 @@ nsDownload::SetState(DownloadState aStat
+@@ -2225,19 +2238,20 @@ nsDownload::SetState(DownloadState aStat
                // If downloads are automatically removed per the user's
                // retention policy, there's no reason to make the text clickable
                // because if it is, they'll click open the download manager and
@@ -202,15 +206,16 @@
 -            }
 +          }
          }
-+        } // end non-KDE block
        }
++      }
  
- #if (defined(XP_WIN) && !defined(WINCE)) || defined(XP_MACOSX) || defined(ANDROID)
+ #if defined(XP_WIN) || defined(XP_MACOSX) || defined(ANDROID)
        nsCOMPtr<nsIFileURL> fileURL = do_QueryInterface(mTarget);
        nsCOMPtr<nsIFile> file;
        nsAutoString path;
  
        if (fileURL &&
+           NS_SUCCEEDED(fileURL->GetFile(getter_AddRefs(file))) &&
 diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn
 --- a/toolkit/content/jar.mn
 +++ b/toolkit/content/jar.mn
@@ -2173,7 +2178,7 @@
 diff --git a/toolkit/xre/Makefile.in b/toolkit/xre/Makefile.in
 --- a/toolkit/xre/Makefile.in
 +++ b/toolkit/xre/Makefile.in
-@@ -94,17 +94,18 @@ EXPORTS = nsWindowsDllInterceptor.h
+@@ -97,17 +97,18 @@ EXPORTS = nsWindowsDllInterceptor.h
  else
  ifeq ($(MOZ_WIDGET_TOOLKIT),cocoa)
  CMMSRCS = nsNativeAppSupportCocoa.mm
@@ -3187,7 +3192,7 @@
 diff --git a/widget/src/gtk2/Makefile.in b/widget/src/gtk2/Makefile.in
 --- a/widget/src/gtk2/Makefile.in
 +++ b/widget/src/gtk2/Makefile.in
-@@ -157,11 +157,14 @@ endif
+@@ -158,11 +158,14 @@ endif
  
  DEFINES		+= -DCAIRO_GFX
  
@@ -3556,7 +3561,7 @@
 diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestParser.cpp
 --- a/xpcom/components/ManifestParser.cpp
 +++ b/xpcom/components/ManifestParser.cpp
-@@ -55,16 +55,17 @@
+@@ -59,16 +59,17 @@
  #include "nsTextFormatter.h"
  #include "nsVersionComparator.h"
  #include "nsXPCOMCIDInternal.h"
@@ -3574,7 +3579,7 @@
  
    // Some directives should only be delivered for NS_COMPONENT_LOCATION
    // manifests.
-@@ -422,16 +423,17 @@ ParseManifestCommon(NSLocationType aType
+@@ -426,16 +427,17 @@ ParseManifestCommon(NSLocationType aType
  
    NS_NAMED_LITERAL_STRING(kPlatform, "platform");
    NS_NAMED_LITERAL_STRING(kContentAccessible, "contentaccessible");
@@ -3592,7 +3597,7 @@
    nsAutoString appVersion;
    nsAutoString osTarget;
    nsAutoString abi;
-@@ -461,35 +463,39 @@ ParseManifestCommon(NSLocationType aType
+@@ -465,39 +467,44 @@ ParseManifestCommon(NSLocationType aType
          CopyUTF8toUTF16(s, abi);
          abi.Insert(PRUnichar('_'), 0);
          abi.Insert(osTarget, 0);
@@ -3624,6 +3629,11 @@
                                         gtk_major_version,
                                         gtk_minor_version);
 +  desktop = nsKDEUtils::kdeSession() ? NS_LITERAL_STRING("kde") : NS_LITERAL_STRING("gnome");
+ #elif defined(ANDROID)
+   if (mozilla::AndroidBridge::Bridge()) {
+     mozilla::AndroidBridge::Bridge()->GetStaticStringField("android/os/Build$VERSION", "RELEASE", osVersion);
+   }
++  desktop = NS_LITERAL_STRING("android");
  #endif
  
    // Because contracts must be registered after CIDs, we save and process them
@@ -3632,7 +3642,7 @@
  
    char *token;
    char *newline = buf;
-@@ -558,24 +564,26 @@ ParseManifestCommon(NSLocationType aType
+@@ -566,24 +573,26 @@ ParseManifestCommon(NSLocationType aType
      bool ok = true;
      TriState stAppVersion = eUnspecified;
      TriState stApp = eUnspecified;
@@ -3659,7 +3669,7 @@
            (CheckFlag(kPlatform, wtoken, platform) ||
             CheckFlag(kContentAccessible, wtoken, contentAccessible)))
          continue;
-@@ -594,16 +602,17 @@ ParseManifestCommon(NSLocationType aType
+@@ -602,16 +611,17 @@ ParseManifestCommon(NSLocationType aType
        ok = false;
      }
  
@@ -3720,7 +3730,7 @@
  #include "prmem.h"
  #include "plbase64.h"
  
-@@ -1730,44 +1731,50 @@ nsLocalFile::SetPersistentDescriptor(con
+@@ -1769,44 +1770,50 @@ nsLocalFile::SetPersistentDescriptor(con
      return InitWithNativePath(aPersistentDescriptor);
  #endif
  }
@@ -3785,7 +3795,7 @@
        return rv;
      }
      return NS_ERROR_FAILURE;
-@@ -1793,16 +1800,23 @@ nsLocalFile::Launch()
+@@ -1832,16 +1839,23 @@ nsLocalFile::Launch()
  
      if (nsnull == connection)
        return NS_ERROR_FAILURE;
--- a/mozilla-ppc-ipc.patch	Thu Jul 07 08:00:10 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,222 +0,0 @@
-# HG changeset patch
-# Parent f6996f95c7f8007fd7bf759092488ead6843441a
-Bug 587188 - Failed to build firefox from trunk on PPC (fixed m-c)
-
-diff --git a/ipc/chromium/Makefile.in b/ipc/chromium/Makefile.in
---- a/ipc/chromium/Makefile.in
-+++ b/ipc/chromium/Makefile.in
-@@ -241,17 +241,16 @@ CPPSRCS += \
- 
- endif # } OS_MACOSX
- 
- ifdef OS_LINUX # {
- 
- CPPSRCS += \
-   atomicops_internals_x86_gcc.cc \
-   base_paths_linux.cc \
--  data_pack.cc \
-   file_util_linux.cc \
-   file_version_info_linux.cc \
-   idle_timer_none.cc \
-   process_util_linux.cc \
-   time_posix.cc \
-   $(NULL)
- 
- ifdef MOZ_ENABLE_GTK2
-diff --git a/ipc/chromium/src/base/atomicops.h b/ipc/chromium/src/base/atomicops.h
---- a/ipc/chromium/src/base/atomicops.h
-+++ b/ipc/chromium/src/base/atomicops.h
-@@ -127,13 +127,15 @@ Atomic64 Release_Load(volatile const Ato
- #if defined(OS_WIN) && defined(COMPILER_MSVC) && defined(ARCH_CPU_X86_FAMILY)
- #include "base/atomicops_internals_x86_msvc.h"
- #elif defined(OS_MACOSX) && defined(ARCH_CPU_X86_FAMILY)
- #include "base/atomicops_internals_x86_macosx.h"
- #elif defined(COMPILER_GCC) && defined(ARCH_CPU_X86_FAMILY)
- #include "base/atomicops_internals_x86_gcc.h"
- #elif defined(COMPILER_GCC) && defined(ARCH_CPU_ARM_FAMILY)
- #include "base/atomicops_internals_arm_gcc.h"
-+//#elif defined(COMPILER_GCC) && defined(ARCH_CPU_PPC_FAMILY)
-+//#include "base/atomicops_internals_ppc_gcc.h"
- #else
- #include "base/atomicops_internals_mutex.h"
- #endif
- 
- #endif  // BASE_ATOMICOPS_H_
-diff --git a/ipc/chromium/src/base/atomicops_internals_ppc_gcc.h b/ipc/chromium/src/base/atomicops_internals_ppc_gcc.h
-new file mode 100644
---- /dev/null
-+++ b/ipc/chromium/src/base/atomicops_internals_ppc_gcc.h
-@@ -0,0 +1,148 @@
-+// Copyright (c) 2010 JJDaNiMoTh <jjdanimoth@gmail.com>. All rights reserved.
-+// Use of this source code is governed by a BSD-style license that can be
-+// found in the LICENSE file.
-+
-+// This file is an internal atomic implementation, use base/atomicops.h instead.
-+
-+#ifndef BASE_ATOMICOPS_INTERNALS_PPC_GCC_H_
-+#define BASE_ATOMICOPS_INTERNALS_PPC_GCC_H_
-+#define ATOMICOPS_COMPILER_BARRIER() __asm__ __volatile__("" : : : "memory")
-+
-+#define PPC_ACQUIRE_BARRIER     "\nisync\n"
-+#define PPC_RELEASE_BARRIER     "\nlwsync\n"
-+
-+namespace base {
-+namespace subtle {
-+
-+// 32-bit low-level operations on any platform.
-+
-+/*
-+ * Compare and exchange - if *ptr == old, set it to new,
-+ * and return the old value of *p.
-+ */
-+inline Atomic32 NoBarrier_CompareAndSwap(volatile Atomic32* ptr,
-+                                         Atomic32 old_value,
-+                                         Atomic32 new_value) {
-+	Atomic32 prev;
-+
-+	__asm__ __volatile__ (
-+	"1: lwarx   %0,0,%2\n"
-+	"cmpw    0,%0,%3\n"
-+	"bne-    2f\n"
-+	"stwcx.  %4,0,%2\n"
-+	"bne-    1b\n"
-+	"2:\n"
-+	: "=&r" (prev), "+m" (*ptr)
-+	: "r" (ptr), "r" (old_value), "r" (new_value)
-+	: "cc", "memory");
-+
-+	return prev;
-+}
-+
-+/*
-+* Atomic exchange
-+*
-+* Changes the memory location '*ptr' to be new_value and returns
-+* the previous value stored there.
-+*/
-+inline Atomic32 NoBarrier_AtomicExchange(volatile Atomic32* ptr,
-+                                         Atomic32 new_value) {
-+        Atomic32 prev;
-+
-+        __asm__ __volatile__(
-+"1:     lwarx   %0,0,%2 \n"
-+"       stwcx.  %3,0,%2 \n\
-+        bne-    1b"
-+        : "=&r" (prev), "+m" (*ptr)
-+        : "r" (ptr), "r" (new_value)
-+        : "cc", "memory");
-+
-+        return prev;
-+}
-+
-+inline Atomic32 NoBarrier_AtomicIncrement(volatile Atomic32* ptr,
-+                                          Atomic32 increment) {
-+        Atomic32 temp;
-+
-+        __asm__ __volatile__(
-+"1:     lwarx   %0,0,%2\n\
-+        add     %0,%1,%0\n"
-+"       stwcx.  %0,0,%2 \n\
-+        bne-    1b"
-+        : "=&r" (temp)
-+        : "r" (increment), "r" (ptr)
-+        : "cc", "memory");
-+
-+        return temp;
-+}
-+
-+inline Atomic32 Barrier_AtomicIncrement(volatile Atomic32* ptr,
-+                                        Atomic32 increment) {
-+        Atomic32 temp;
-+
-+        __asm__ __volatile__(
-+	PPC_RELEASE_BARRIER
-+"1:     lwarx   %0,0,%2\n\
-+        add     %0,%1,%0\n"
-+"       stwcx.  %0,0,%2 \n\
-+        bne-    1b"
-+        PPC_ACQUIRE_BARRIER
-+        : "=&r" (temp)
-+        : "r" (increment), "r" (ptr)
-+        : "cc", "memory");
-+
-+        return temp;
-+}
-+
-+inline Atomic32 Acquire_CompareAndSwap(volatile Atomic32* ptr,
-+                                       Atomic32 old_value,
-+                                       Atomic32 new_value) {
-+  return NoBarrier_CompareAndSwap(ptr, old_value, new_value);
-+}
-+
-+inline Atomic32 Release_CompareAndSwap(volatile Atomic32* ptr,
-+                                       Atomic32 old_value,
-+                                       Atomic32 new_value) {
-+  return NoBarrier_CompareAndSwap(ptr, old_value, new_value);
-+}
-+
-+inline void NoBarrier_Store(volatile Atomic32* ptr, Atomic32 value) {
-+  *ptr = value;
-+}
-+
-+inline void MemoryBarrier() {
-+  __asm__ __volatile__("sync" : : : "memory");
-+}
-+
-+inline void Acquire_Store(volatile Atomic32* ptr, Atomic32 value) {
-+  *ptr = value;
-+  MemoryBarrier();
-+}
-+
-+inline void Release_Store(volatile Atomic32* ptr, Atomic32 value) {
-+  MemoryBarrier();
-+  *ptr = value;
-+}
-+
-+inline Atomic32 NoBarrier_Load(volatile const Atomic32* ptr) {
-+  return *ptr;
-+}
-+
-+inline Atomic32 Acquire_Load(volatile const Atomic32* ptr) {
-+  Atomic32 value = *ptr;
-+  MemoryBarrier();
-+  return value;
-+
-+}
-+
-+inline Atomic32 Release_Load(volatile const Atomic32* ptr) {
-+  MemoryBarrier();
-+  return *ptr;
-+}
-+
-+} // namespace base::subtle
-+} // namespace base
-+
-+#undef ATOMICOPS_COMPILER_BARRIER
-+
-+#endif  // BASE_ATOMICOPS_INTERNALS_PPC_GCC_H_
-diff --git a/ipc/chromium/src/build/build_config.h b/ipc/chromium/src/build/build_config.h
---- a/ipc/chromium/src/build/build_config.h
-+++ b/ipc/chromium/src/build/build_config.h
-@@ -52,19 +52,20 @@
- #define ARCH_CPU_X86_FAMILY 1
- #define ARCH_CPU_X86 1
- #define ARCH_CPU_32_BITS 1
- #elif defined(__ARMEL__)
- #define ARCH_CPU_ARM_FAMILY 1
- #define ARCH_CPU_ARMEL 1
- #define ARCH_CPU_32_BITS 1
- #define WCHAR_T_IS_UNSIGNED 1
--#elif defined(__ppc__)
-+#elif defined(__ppc__) || defined(__powerpc) || defined(__PPC__)
- #define ARCH_CPU_PPC 1
- #define ARCH_CPU_32_BITS 1
-+#define ARCH_CPU_PPC_FAMILY 1
- #else
- #error Please add support for your architecture in build/build_config.h
- #endif
- 
- // Type detection for wchar_t.
- #ifndef CHROMIUM_MOZILLA_BUILD
- 
- #if defined(OS_WIN)
--- a/mozilla-prefer_plugin_pref.patch	Thu Jul 07 08:00:10 2011 +0200
+++ b/mozilla-prefer_plugin_pref.patch	Fri Jul 08 08:21:23 2011 +0200
@@ -1,54 +1,55 @@
 From: Ubuntu
 Subject: introduce a pref to prefer certain plugins for mime-types
 
-diff --git a/modules/plugin/base/src/nsPluginHost.cpp b/modules/plugin/base/src/nsPluginHost.cpp
---- a/modules/plugin/base/src/nsPluginHost.cpp
-+++ b/modules/plugin/base/src/nsPluginHost.cpp
-@@ -1620,17 +1620,47 @@ nsPluginHost::FindPluginForType(const ch
-   nsPluginTag *plugins = nsnull;
-   PRInt32     variants, cnt;
+diff --git a/dom/plugins/base/nsPluginHost.cpp b/dom/plugins/base/nsPluginHost.cpp
+--- a/dom/plugins/base/nsPluginHost.cpp
++++ b/dom/plugins/base/nsPluginHost.cpp
+@@ -1637,17 +1637,48 @@ nsPluginHost::FindPluginForType(const ch
+                                 PRBool aCheckEnabled)
+ {
+   if (!aMimeType) {
+     return nsnull;
+   }
  
    LoadPlugins();
  
-   // if we have a mimetype passed in, search the mPlugins
-   // linked list for a match
-   if (aMimeType) {
-+    nsresult res;
-+    nsCOMPtr<nsIPrefBranch> prefB (do_QueryInterface(mPrefService));
++  nsresult res;
++  nsCOMPtr<nsIPrefBranch> prefB (do_QueryInterface(mPrefService));
 +
-+    char *preferredPluginPath = NULL;
-+    nsCAutoString mimetypePrefString ("modules.plugins.mimetype.");
-+    mimetypePrefString.Append(aMimeType);
-+    const char *mimetypePrefChar = mimetypePrefString.get();
-+    res = prefB->GetCharPref(mimetypePrefChar, &preferredPluginPath);
++  char *preferredPluginPath = NULL;
++  nsCAutoString mimetypePrefString ("modules.plugins.mimetype.");
++  mimetypePrefString.Append(aMimeType);
++  const char *mimetypePrefChar = mimetypePrefString.get();
++  res = prefB->GetCharPref(mimetypePrefChar, &preferredPluginPath);
 +
-+    if(!NS_SUCCEEDED(res)) preferredPluginPath = NULL;
++  if(!NS_SUCCEEDED(res)) preferredPluginPath = NULL;
 +
-     plugins = mPlugins;
-+    if(preferredPluginPath) {
-+      while (nsnull != plugins) {
-+        if (0 == PL_strcasecmp(plugins->mFileName.get(), preferredPluginPath) ||
-+            0 == PL_strcasecmp(plugins->mFullPath.get(), preferredPluginPath)) {
-+          return plugins;
-+        }
-+        plugins = plugins->mNext;
+   nsPluginTag *plugin = mPlugins;
++  if(preferredPluginPath) {
++    while (nsnull != plugin) {
++      if (0 == PL_strcasecmp(plugin->mFileName.get(), preferredPluginPath) ||
++          0 == PL_strcasecmp(plugin->mFullPath.get(), preferredPluginPath)) {
++        return plugin;
 +      }
++      plugin = plugin->mNext;
++    }
 +
-+      // now lets search for substrings
-+      plugins=mPlugins;
-+      while (nsnull != plugins) {
-+        if (nsnull != PL_strstr(plugins->mFileName.get(), preferredPluginPath) ||
-+            nsnull != PL_strstr(plugins->mFullPath.get(), preferredPluginPath)) {
-+          return plugins;
-+        }
-+        plugins = plugins->mNext;
++    // now lets search for substrings
++    plugin = mPlugins;
++    while (nsnull != plugin) {
++      if (nsnull != PL_strstr(plugin->mFileName.get(), preferredPluginPath) ||
++          nsnull != PL_strstr(plugin->mFullPath.get(), preferredPluginPath)) {
++        return plugin;
 +      }
++      plugin = plugin->mNext;
 +    }
- 
-     while (plugins) {
-       variants = plugins->mVariants;
-       for (cnt = 0; cnt < variants; cnt++) {
-         if ((!aCheckEnabled || plugins->IsEnabled()) &&
-             plugins->mMimeTypeArray[cnt] &&
-             (0 == PL_strcasecmp(plugins->mMimeTypeArray[cnt], aMimeType))) {
-           return plugins;
++  }
++
+   while (plugin) {
+     if (!aCheckEnabled || plugin->IsEnabled()) {
+       PRInt32 mimeCount = plugin->mMimeTypes.Length();
+       for (PRInt32 i = 0; i < mimeCount; i++) {
+         if (0 == PL_strcasecmp(plugin->mMimeTypes[i].get(), aMimeType)) {
+           return plugin;
+         }
+       }
--- a/mozilla-repo.patch	Thu Jul 07 08:00:10 2011 +0200
+++ b/mozilla-repo.patch	Fri Jul 08 08:21:23 2011 +0200
@@ -1,5 +1,5 @@
 # HG changeset patch
-# Parent 84ecc6172ec5f01c80346bdb819520d08f982bac
+# Parent 1eb30390d6af83e41be9143c5d8c5fedf2ef69ef
 
 diff --git a/browser/app/Makefile.in b/browser/app/Makefile.in
 --- a/browser/app/Makefile.in
@@ -19,10 +19,10 @@
  DEFINES += -DMOZ_SOURCE_REPO="$(SOURCE_REPO)"
  endif
  
- LIBS += $(JEMALLOC_LIBS)
+ DEFINES += -DMOZ_APP_BASENAME="$(MOZ_APP_BASENAME)" \
+            -DMOZ_APP_VENDOR="$(MOZ_APP_VENDOR)"
  
- ifdef LIBXUL_SDK
- include $(topsrcdir)/config/rules.mk
+ ifdef MOZ_APP_PROFILE
 diff --git a/toolkit/content/Makefile.in b/toolkit/content/Makefile.in
 --- a/toolkit/content/Makefile.in
 +++ b/toolkit/content/Makefile.in
@@ -71,7 +71,7 @@
 diff --git a/toolkit/xre/Makefile.in b/toolkit/xre/Makefile.in
 --- a/toolkit/xre/Makefile.in
 +++ b/toolkit/xre/Makefile.in
-@@ -235,17 +235,17 @@ DEFINES += -DHAVE_USR_LIB64_DIR
+@@ -229,17 +229,17 @@ DEFINES += -DHAVE_USR_LIB64_DIR
  endif
  endif
  
--- a/mozilla-shared-nss-db.patch	Thu Jul 07 08:00:10 2011 +0200
+++ b/mozilla-shared-nss-db.patch	Fri Jul 08 08:21:23 2011 +0200
@@ -7,7 +7,7 @@
 diff --git a/config/autoconf.mk.in b/config/autoconf.mk.in
 --- a/config/autoconf.mk.in
 +++ b/config/autoconf.mk.in
-@@ -571,16 +571,20 @@ MOZ_ALSA_LIBS           = @MOZ_ALSA_LIBS
+@@ -582,16 +582,20 @@ MOZ_ALSA_LIBS           = @MOZ_ALSA_LIBS
  
  GLIB_CFLAGS	= @GLIB_CFLAGS@
  GLIB_LIBS	= @GLIB_LIBS@
@@ -31,7 +31,7 @@
 diff --git a/configure.in b/configure.in
 --- a/configure.in
 +++ b/configure.in
-@@ -8610,16 +8610,31 @@ AC_SUBST(QCMS_LIBS)
+@@ -8507,16 +8507,31 @@ AC_SUBST(QCMS_LIBS)
  
  dnl ========================================================
  dnl HarfBuzz
@@ -66,7 +66,7 @@
 diff --git a/security/manager/ssl/src/Makefile.in b/security/manager/ssl/src/Makefile.in
 --- a/security/manager/ssl/src/Makefile.in
 +++ b/security/manager/ssl/src/Makefile.in
-@@ -117,19 +117,20 @@ CSRCS += md4.c
+@@ -114,19 +114,20 @@ CSRCS += md4.c
  
  
  EXTRA_DEPS = $(NSS_DEP_LIBS)
@@ -115,7 +115,7 @@
  
  #include "nsNetUtil.h"
  #include "nsAppDirectoryServiceDefs.h"
-@@ -1658,18 +1665,34 @@ nsNSSComponent::InitializeNSS(PRBool sho
+@@ -1733,18 +1740,34 @@ nsNSSComponent::InitializeNSS(PRBool sho
      ConfigureInternalPKCS11Token();
  
      // The NSS_INIT_NOROOTINIT flag turns off the loading of the root certs
@@ -155,12 +155,12 @@
 diff --git a/toolkit/library/Makefile.in b/toolkit/library/Makefile.in
 --- a/toolkit/library/Makefile.in
 +++ b/toolkit/library/Makefile.in
-@@ -169,17 +169,17 @@ ifndef MOZ_ENABLE_LIBXUL
- EXTRA_DSO_LDOPTS += \
- 	$(MOZ_COMPONENT_LIBS) \
- 	$(MOZ_JS_LIBS) \
- 	$(NULL)
+@@ -139,17 +139,17 @@ ifdef MOZ_DEBUG
+ EXTRA_DSO_LDOPTS += -INCREMENTAL:NO
  endif
+ endif
+ 
+ EXTRA_DSO_LDOPTS += $(LIBS_DIR) $(EXTRA_DSO_LIBS)
  
  DEFINES += -DIMPL_XREAPI
  
--- a/series	Thu Jul 07 08:00:10 2011 +0200
+++ b/series	Fri Jul 08 08:21:23 2011 +0200
@@ -11,24 +11,19 @@
 #toolkit-ui-lockdown.patch
 mozilla-cairo-lcd.patch
 mozilla-language.patch
-mozilla-gio.patch
 mozilla-cairo-return.patch
 mozilla-ntlm-full-path.patch
-mozilla-ppc-ipc.patch
 mozilla-repo.patch
 mozilla-dump_syms-static.patch
 mozilla-sle11.patch
 
 # Firefox patches
-firefox-linkorder.patch
 firefox-browser-css.patch
 firefox-cross-desktop.patch
 firefox-kde.patch
 firefox-kde-114.patch
 #firefox-ui-lockdown.patch
-firefox-no-sync-l10n.patch
 firefox-libxulsdk-locales.patch
 firefox-no-default-ualocale.patch
 firefox-multilocale-chrome.patch
-firefox-shellservice.patch
 firefox-branded-icons.patch