Aurora 24 update
authorWolfgang Rosenauer <wr@rosenauer.org>
Tue, 16 Jul 2013 12:35:11 +0200
changeset 659 fa96cf6ffd14
parent 653 38c67b6b2f37
child 661 aac91d5705b1
child 671 f5edfe756055
Aurora 24 update
MozillaFirefox/MozillaFirefox.changes
MozillaFirefox/MozillaFirefox.spec
MozillaFirefox/create-tar.sh
MozillaFirefox/gecko.js
firefox-branded-icons.patch
firefox-kde.patch
mozilla-kde.patch
mozilla-shared-nss-db.patch
--- a/MozillaFirefox/MozillaFirefox.changes	Mon Jun 17 22:57:16 2013 +0200
+++ b/MozillaFirefox/MozillaFirefox.changes	Tue Jul 16 12:35:11 2013 +0200
@@ -1,16 +1,52 @@
 -------------------------------------------------------------------
-Mon Jun 17 20:56:08 UTC 2013 - wr@rosenauer.org
-
-- update to Firefox 23.0pre (20130616)
+Sat Jul 13 20:53:28 UTC 2013 - wr@rosenauer.org
+
+- update to Firefox 24.0pre (20130713)
 - requires NSPR 4.10 and NSS 3.15
-
--------------------------------------------------------------------
-Sun Jun 16 21:54:10 UTC 2013 - wr@rosenauer.org
-
-- update to Firefox 22.0b5
+- enable gstreamer via pref
+
+-------------------------------------------------------------------
+Wed Jul  3 17:14:35 UTC 2013 - dmueller@suse.com
+
+- fix build on ARM (/-g/ matches /-grecord-switches/)
+
+-------------------------------------------------------------------
+Sat Jun 22 17:48:06 UTC 2013 - wr@rosenauer.org
+
+- update to Firefox 22.0 (bnc#825935)
   * removed obsolete patches
     + mozilla-qcms-ppc.patch
     + mozilla-gstreamer-760140.patch
+  * GStreamer support does not build on 12.1 anymore (build only
+    on 12.2 and later)
+  * MFSA 2013-49/CVE-2013-1682/CVE-2013-1683
+    Miscellaneous memory safety hazards
+  * MFSA 2013-50/CVE-2013-1684/CVE-2013-1685/CVE-2013-1686
+    Memory corruption found using Address Sanitizer
+  * MFSA 2013-51/CVE-2013-1687 (bmo#863933, bmo#866823)
+    Privileged content access and execution via XBL
+  * MFSA 2013-52/CVE-2013-1688 (bmo#873966)
+    Arbitrary code execution within Profiler
+  * MFSA 2013-53/CVE-2013-1690 (bmo#857883)
+    Execution of unmapped memory through onreadystatechange event
+  * MFSA 2013-54/CVE-2013-1692 (bmo#866915)
+    Data in the body of XHR HEAD requests leads to CSRF attacks
+  * MFSA 2013-55/CVE-2013-1693 (bmo#711043)
+    SVG filters can lead to information disclosure
+  * MFSA 2013-56/CVE-2013-1694 (bmo#848535)
+    PreserveWrapper has inconsistent behavior
+  * MFSA 2013-57/CVE-2013-1695 (bmo#849791)
+    Sandbox restrictions not applied to nested frame elements
+  * MFSA 2013-58/CVE-2013-1696 (bmo#761667)
+    X-Frame-Options ignored when using server push with multi-part
+    responses
+  * MFSA 2013-59/CVE-2013-1697 (bmo#858101)
+    XrayWrappers can be bypassed to run user defined methods in a
+    privileged context
+  * MFSA 2013-60/CVE-2013-1698 (bmo#876044)
+    getUserMedia permission dialog incorrectly displays location
+  * MFSA 2013-61/CVE-2013-1699 (bmo#840882)
+    Homograph domain spoofing in .com, .net and .name
 
 -------------------------------------------------------------------
 Tue Jun 11 21:06:58 UTC 2013 - dvaleev@suse.com
--- a/MozillaFirefox/MozillaFirefox.spec	Mon Jun 17 22:57:16 2013 +0200
+++ b/MozillaFirefox/MozillaFirefox.spec	Tue Jul 16 12:35:11 2013 +0200
@@ -17,7 +17,7 @@
 #
 
 
-%define major 22
+%define major 23
 %define mainver %major.98
 %define update_channel aurora
 
@@ -53,14 +53,14 @@
 BuildRequires:  mozilla-nspr-devel >= 4.10
 BuildRequires:  mozilla-nss-devel >= 3.15
 BuildRequires:  nss-shared-helper-devel
-%if %suse_version > 1140
+%if %suse_version > 1210
 BuildRequires:  pkgconfig(gstreamer-%gstreamer_ver)
 BuildRequires:  pkgconfig(gstreamer-app-%gstreamer_ver)
 BuildRequires:  pkgconfig(gstreamer-plugins-base-%gstreamer_ver)
 %endif
 Version:        %{mainver}
 Release:        0
-%define         releasedate 2013061600
+%define         releasedate 2013071300
 Provides:       firefox = %{mainver}
 Provides:       firefox = %{version}-%{release}
 Provides:       web_browser
@@ -88,6 +88,7 @@
 Source12:       mozilla-get-app-id
 Source13:       add-plugins.sh.in
 Source14:       create-tar.sh
+Source15:       gecko.js
 # Gecko/Toolkit
 Patch1:         toolkit-download-folder.patch
 Patch2:         mozilla-nongnome-proxies.patch
@@ -268,7 +269,7 @@
 export MOZ_TELEMETRY_REPORTING=1
 export CFLAGS="$RPM_OPT_FLAGS -Os -fno-strict-aliasing"
 %ifarch %arm
-export CFLAGS="${CFLAGS/-g/}"
+export CFLAGS="${CFLAGS/-g / }"
 %endif
 %ifarch ppc64
 export CFLAGS="$CFLAGS -mminimal-toc"
@@ -306,9 +307,9 @@
 ac_add_options --enable-gio
 EOF
 %endif
-%if %suse_version > 1140
+%if %suse_version < 1220
 cat << EOF >> $MOZCONFIG
-ac_add_options --enable-gstreamer
+ac_add_options --disable-gstreamer
 EOF
 %endif
 %if %branding
@@ -358,6 +359,9 @@
 install -m 644 %{SOURCE6} $RPM_BUILD_ROOT%{progdir}/browser/defaults/preferences/kde.js
 install -m 644 %{SOURCE9} $RPM_BUILD_ROOT%{progdir}/browser/defaults/preferences/firefox.js
 %endif
+# core configuration (e.g. temporary gstreamer pref)
+# this is expected to be just temporary and therefore not handled in openSUSE branding
+install -m 644 %{SOURCE15} $RPM_BUILD_ROOT%{progdir}/defaults/pref/gecko.js
 # install add-plugins.sh
 sed "s:%%PROGDIR:%{progdir}:g" \
   %{SOURCE13} > $RPM_BUILD_ROOT%{progdir}/add-plugins.sh
@@ -368,7 +372,7 @@
 touch %{_tmppath}/translations.{common,other}
 for locale in $(awk '{ print $1; }' ../mozilla/browser/locales/shipped-locales); do
   case $locale in
-   ja-JP-mac|en-US)
+   ja-JP-mac|en-US|mn|ta-LK)
 	;;
    *)
    	pushd $RPM_BUILD_DIR/compare-locales
--- a/MozillaFirefox/create-tar.sh	Mon Jun 17 22:57:16 2013 +0200
+++ b/MozillaFirefox/create-tar.sh	Tue Jul 16 12:35:11 2013 +0200
@@ -3,7 +3,7 @@
 CHANNEL="aurora"
 BRANCH="releases/mozilla-$CHANNEL"
 RELEASE_TAG="default"
-VERSION="22.98"
+VERSION="23.98"
 
 # mozilla
 if [ -d mozilla ]; then
@@ -27,6 +27,7 @@
   hg clone http://hg.mozilla.org/$BRANCH mozilla
 fi
 pushd mozilla
+hg update --check
 [ "$RELEASE_TAG" == "default" ] || hg update -r $RELEASE_TAG
 # get repo and source stamp
 echo -n "REV=" > ../source-stamp.txt
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MozillaFirefox/gecko.js	Tue Jul 16 12:35:11 2013 +0200
@@ -0,0 +1,1 @@
+pref("media.gstreamer.enabled", true);
--- a/firefox-branded-icons.patch	Mon Jun 17 22:57:16 2013 +0200
+++ b/firefox-branded-icons.patch	Tue Jul 16 12:35:11 2013 +0200
@@ -1,13 +1,13 @@
 # HG changeset patch
-# Parent a5cc092ab98bc6d4c1b09b5cc86791bae1313c73
+# Parent 5defe7bd2f041c227fe4a65f8a90e6cc42a9a339
 
 diff --git a/browser/app/Makefile.in b/browser/app/Makefile.in
 --- a/browser/app/Makefile.in
 +++ b/browser/app/Makefile.in
-@@ -136,16 +136,21 @@ GARBAGE += $(addprefix $(FINAL_TARGET)/d
+@@ -133,16 +133,21 @@ GARBAGE += $(addprefix $(FINAL_TARGET)/d
  endif
  
- ifeq ($(MOZ_WIDGET_TOOLKIT),gtk2)
+ ifdef MOZ_WIDGET_GTK
  libs::
  	$(INSTALL) $(IFLAGS1) $(DIST)/branding/mozicon128.png $(FINAL_TARGET)/icons
  	$(INSTALL) $(IFLAGS1) $(DIST)/branding/default16.png  $(FINAL_TARGET)/chrome/icons/default
@@ -54,14 +54,14 @@
 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
-@@ -574,18 +574,21 @@
+@@ -571,18 +571,21 @@
  @BINPATH@/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf
  @BINPATH@/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png
  @BINPATH@/chrome/toolkit@JAREXT@
  @BINPATH@/chrome/toolkit.manifest
  @BINPATH@/chrome/recording.manifest
  @BINPATH@/chrome/recording/*
- #ifdef MOZ_GTK2
+ #ifdef MOZ_GTK
  @BINPATH@/browser/chrome/icons/default/default16.png
 +@BINPATH@/browser/chrome/icons/default/default22.png
 +@BINPATH@/browser/chrome/icons/default/default24.png
--- a/firefox-kde.patch	Mon Jun 17 22:57:16 2013 +0200
+++ b/firefox-kde.patch	Tue Jul 16 12:35:11 2013 +0200
@@ -1214,11 +1214,11 @@
 +*       content/browser/browser-kde.xul               (content/browser-kde.xul)
 +%       override chrome://browser/content/browser.xul chrome://browser/content/browser-kde.xul desktop=kde
  *       content/browser/browser-tabPreviews.xml       (content/browser-tabPreviews.xml)
+ *       content/browser/chatWindow.xul                (content/chatWindow.xul)
          content/browser/content.js                    (content/content.js)
          content/browser/newtab/newTab.xul             (content/newtab/newTab.xul)
  *       content/browser/newtab/newTab.js              (content/newtab/newTab.js)
          content/browser/newtab/newTab.css             (content/newtab/newTab.css)
-         content/browser/newtab/preload.xhtml          (content/newtab/preload.xhtml)
  *       content/browser/pageinfo/pageInfo.xul         (content/pageinfo/pageInfo.xul)
          content/browser/pageinfo/pageInfo.js          (content/pageinfo/pageInfo.js)
 diff --git a/browser/components/build/nsModule.cpp b/browser/components/build/nsModule.cpp
@@ -1232,7 +1232,7 @@
  #include "nsWindowsShellService.h"
  #elif defined(XP_MACOSX)
  #include "nsMacShellService.h"
- #elif defined(MOZ_WIDGET_GTK2)
+ #elif defined(MOZ_WIDGET_GTK)
 -#include "nsGNOMEShellService.h"
 +#include "nsUnixShellService.h"
  #endif
@@ -1252,7 +1252,7 @@
  NS_GENERIC_FACTORY_CONSTRUCTOR(nsWindowsShellService)
  #elif defined(XP_MACOSX)
  NS_GENERIC_FACTORY_CONSTRUCTOR(nsMacShellService)
--#elif defined(MOZ_WIDGET_GTK2)
+-#elif defined(MOZ_WIDGET_GTK)
 -NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsGNOMEShellService, Init)
  #endif
  
@@ -1270,7 +1270,7 @@
      { &kNS_BROWSERDIRECTORYPROVIDER_CID, false, NULL, DirectoryProviderConstructor },
  #if defined(XP_WIN)
      { &kNS_SHELLSERVICE_CID, false, NULL, nsWindowsShellServiceConstructor },
- #elif defined(MOZ_WIDGET_GTK2)
+ #elif defined(MOZ_WIDGET_GTK)
 -    { &kNS_SHELLSERVICE_CID, false, NULL, nsGNOMEShellServiceConstructor },
 +    { &kNS_SHELLSERVICE_CID, false, NULL, nsUnixShellServiceConstructor },
  #endif
@@ -1307,7 +1307,7 @@
      // when the user will select the default.  We refresh here periodically
      // in case the default changes.  On other Windows OS's defaults can also
      // be set while the prefs are open.
-@@ -797,14 +803,25 @@ var gAdvancedPane = {
+@@ -857,14 +863,25 @@ var gAdvancedPane = {
     * Set browser as the operating system default browser.
     */
    setDefaultBrowser: function()
@@ -1336,26 +1336,42 @@
 diff --git a/browser/components/shell/src/Makefile.in b/browser/components/shell/src/Makefile.in
 --- a/browser/components/shell/src/Makefile.in
 +++ b/browser/components/shell/src/Makefile.in
-@@ -15,17 +15,18 @@ USE_STATIC_LIBS = 1
+@@ -17,10 +17,12 @@ DISABLED_EXTRA_COMPONENTS = nsSetDefault
+ 
+ include $(topsrcdir)/config/rules.mk
+ 
+ DEFINES += -DMOZ_APP_NAME=\"$(MOZ_APP_NAME)\" \
+   -DMOZ_APP_VERSION=\"$(MOZ_APP_VERSION)\"
+ 
+ CXXFLAGS += $(TK_CFLAGS)
  
- ifeq ($(OS_ARCH),WINNT)
- CPPSRCS = nsWindowsShellService.cpp
- else
- ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))
- CPPSRCS = nsMacShellService.cpp
- else
- ifeq ($(MOZ_WIDGET_TOOLKIT), gtk2)
--CPPSRCS = nsGNOMEShellService.cpp
-+CPPSRCS = nsUnixShellService.cpp nsGNOMEShellService.cpp nsKDEShellService.cpp
 +LOCAL_INCLUDES += -I$(topsrcdir)/toolkit/xre
- endif
- endif
- endif
++
+ clobber::
+ 	rm -f $(DIST)/lib/$(LIBRARY_NAME).lib
+diff --git a/browser/components/shell/src/moz.build b/browser/components/shell/src/moz.build
+--- a/browser/components/shell/src/moz.build
++++ b/browser/components/shell/src/moz.build
+@@ -11,17 +11,19 @@ if CONFIG['OS_ARCH'] == 'WINNT':
+         'nsWindowsShellService.cpp',
+     ]
+ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
+     CPP_SOURCES += [
+         'nsMacShellService.cpp',
+     ]
+ elif CONFIG['MOZ_WIDGET_GTK']:
+     CPP_SOURCES += [
++        'nsUnixShellService.cpp',
+         'nsGNOMEShellService.cpp',
++	'nsKDEShellService.cpp'
+     ]
  
- ifdef CPPSRCS
- LIBRARY_NAME = shellservice_s
- endif
+ if CPP_SOURCES:
+     LIBRARY_NAME = 'shellservice_s'
  
+ EXTRA_COMPONENTS += [
+     'nsSetDefaultBrowser.js',
+     'nsSetDefaultBrowser.manifest',
 diff --git a/browser/components/shell/src/nsKDEShellService.cpp b/browser/components/shell/src/nsKDEShellService.cpp
 new file mode 100644
 --- /dev/null
@@ -1769,7 +1785,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
-@@ -604,19 +604,21 @@
+@@ -601,19 +601,21 @@
  @BINPATH@/defaults/autoconfig/prefcalls.js
  @BINPATH@/browser/defaults/profile/prefs.js
  
--- a/mozilla-kde.patch	Mon Jun 17 22:57:16 2013 +0200
+++ b/mozilla-kde.patch	Tue Jul 16 12:35:11 2013 +0200
@@ -7,7 +7,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
-@@ -56,14 +56,15 @@ endif
+@@ -49,14 +49,15 @@ endif
  # Optimizer bug with GCC 3.2.2 on OS/2
  ifeq ($(OS_ARCH), OS2)
  nsPrefService.$(OBJ_SUFFIX): nsPrefService.cpp
@@ -44,7 +44,7 @@
  #include "prefread.h"
  #include "prefapi_private_data.h"
  
-@@ -966,16 +967,34 @@ pref_LoadPrefsInDir(nsIFile* aDir, char 
+@@ -972,16 +973,34 @@ pref_LoadPrefsInDir(nsIFile* aDir, char 
  
  static nsresult pref_LoadPrefsInDirList(const char *listId)
  {
@@ -79,7 +79,7 @@
      return NS_OK;
  
    bool hasMore;
-@@ -991,17 +1010,17 @@ static nsresult pref_LoadPrefsInDirList(
+@@ -997,17 +1016,17 @@ static nsresult pref_LoadPrefsInDirList(
  
      nsAutoCString leaf;
      path->GetNativeLeafName(leaf);
@@ -98,7 +98,7 @@
  {
    nsZipItemPtr<char> manifest(jarReader, name, true);
    NS_ENSURE_TRUE(manifest.Buffer(), NS_ERROR_NOT_AVAILABLE);
-@@ -1095,28 +1114,40 @@ static nsresult pref_InitInitialObjects(
+@@ -1101,28 +1120,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)
@@ -184,8 +184,8 @@
 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
-@@ -32,9 +32,11 @@ ifndef MOZ_SUITE
- EXTRA_COMPONENTS = \
+@@ -23,9 +23,11 @@ ifndef MOZ_SUITE
+ DISABLED_EXTRA_COMPONENTS = \
    nsDownloadManagerUI.js \
    nsDownloadManagerUI.manifest \
    $(NULL)
@@ -220,7 +220,7 @@
  #include "AndroidBridge.h"
  #endif
  
-@@ -2603,16 +2607,25 @@ nsDownload::SetState(DownloadState aStat
+@@ -2609,16 +2613,25 @@ nsDownload::SetState(DownloadState aStat
        nsCOMPtr<nsIPrefBranch> pref(do_GetService(NS_PREFSERVICE_CONTRACTID));
  
        // Master pref to control this function.
@@ -246,7 +246,7 @@
          int64_t goat = PR_Now() - mStartTime;
          showTaskbarAlert = goat > alertIntervalUSec;
  
-@@ -2639,19 +2652,20 @@ nsDownload::SetState(DownloadState aStat
+@@ -2645,19 +2658,20 @@ nsDownload::SetState(DownloadState aStat
                // retention policy, there's no reason to make the text clickable
                // because if it is, they'll click open the download manager and
                // the items they downloaded will have been removed.
@@ -2200,29 +2200,30 @@
 +  return NS_OK;
 +}
 +
-diff --git a/toolkit/xre/Makefile.in b/toolkit/xre/Makefile.in
---- a/toolkit/xre/Makefile.in
-+++ b/toolkit/xre/Makefile.in
-@@ -60,17 +60,18 @@ DEFINES += -DWIN32_LEAN_AND_MEAN -DUNICO
- else
- ifeq ($(MOZ_WIDGET_TOOLKIT),cocoa)
- CMMSRCS = nsNativeAppSupportCocoa.mm
- else
- ifeq ($(MOZ_WIDGET_TOOLKIT),os2)
- CPPSRCS += nsNativeAppSupportOS2.cpp
- else
- ifeq ($(MOZ_WIDGET_TOOLKIT),gtk2)
--CPPSRCS += nsNativeAppSupportUnix.cpp
-+CPPSRCS += nsNativeAppSupportUnix.cpp nsKDEUtils.cpp
-+EXPORTS += nsKDEUtils.h
- else
- ifeq ($(MOZ_WIDGET_TOOLKIT),qt)
- MOCSRCS += moc_nsNativeAppSupportQt.cpp
- CPPSRCS += $(MOCSRCS)
- CPPSRCS += nsNativeAppSupportQt.cpp
- CPPSRCS += nsQAppInstance.cpp
- else
- CPPSRCS += nsNativeAppSupportDefault.cpp
+diff --git a/toolkit/xre/moz.build b/toolkit/xre/moz.build
+--- a/toolkit/xre/moz.build
++++ b/toolkit/xre/moz.build
+@@ -38,18 +38,20 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'qt
+         'nsNativeAppSupportQt.cpp',
+         'nsQAppInstance.cpp',
+     ]
+ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'os2':
+     CPP_SOURCES += [
+         'nsNativeAppSupportOS2.cpp',
+     ]
+ elif CONFIG['MOZ_ENABLE_GTK']:
++    EXPORTS += ['nsKDEUtils.h']
+     CPP_SOURCES += [
+         'nsNativeAppSupportUnix.cpp',
++	'nsKDEUtils.cpp'
+     ]
+ else:
+     CPP_SOURCES += [
+         'nsNativeAppSupportDefault.cpp',
+     ]
+ 
+ if CONFIG['MOZ_X11']:
+     CPP_SOURCES += [
 diff --git a/toolkit/xre/nsKDEUtils.cpp b/toolkit/xre/nsKDEUtils.cpp
 new file mode 100644
 --- /dev/null
@@ -2623,27 +2624,39 @@
 diff --git a/uriloader/exthandler/Makefile.in b/uriloader/exthandler/Makefile.in
 --- a/uriloader/exthandler/Makefile.in
 +++ b/uriloader/exthandler/Makefile.in
-@@ -53,18 +53,19 @@ LOCAL_INCLUDES = -I$(srcdir)
- LOCAL_INCLUDES += -I$(topsrcdir)/dom/base \
-             -I$(topsrcdir)/dom/ipc \
-             -I$(topsrcdir)/content/base/src \
-             -I$(topsrcdir)/content/events/src \
-             -I$(topsrcdir)/netwerk/base/src \
-             -I$(topsrcdir)/netwerk/protocol/http
+@@ -86,9 +86,10 @@ EXTRA_COMPONENTS = \
+ # we don't want the shared lib, but we want to force the creation of a static lib.
+ FORCE_STATIC_LIB = 1
+ include $(topsrcdir)/config/config.mk
+ include $(topsrcdir)/ipc/chromium/chromium-config.mk
+ include $(topsrcdir)/config/rules.mk
  
- ifeq ($(MOZ_WIDGET_TOOLKIT),gtk2)
--OSHELPER	+= nsGNOMERegistry.cpp
-+OSHELPER	+= nsCommonRegistry.cpp nsGNOMERegistry.cpp nsKDERegistry.cpp
- OSHELPER  += nsMIMEInfoUnix.cpp
+ ifneq (,$(filter qt gtk2 gtk3, $(MOZ_WIDGET_TOOLKIT)))
+ CXXFLAGS += $(TK_CFLAGS) $(MOZ_DBUS_GLIB_CFLAGS)
 +LOCAL_INCLUDES += -I$(topsrcdir)/toolkit/xre
  endif
+diff --git a/uriloader/exthandler/moz.build b/uriloader/exthandler/moz.build
+--- a/uriloader/exthandler/moz.build
++++ b/uriloader/exthandler/moz.build
+@@ -68,16 +68,18 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'coco
+     pass
+ else:
+     CPP_SOURCES += [
+         'nsOSHelperAppService.cpp',
+     ]
  
- ifeq ($(MOZ_WIDGET_TOOLKIT),android)
- OSHELPER += nsMIMEInfoAndroid.cpp
- OSHELPER += nsAndroidHandlerApp.cpp
- OSHELPER += nsExternalSharingAppService.cpp
- OSHELPER += nsExternalURLHandlerService.cpp
- endif
+ if CONFIG['MOZ_ENABLE_GTK']:
+     CPP_SOURCES += [
++        'nsCommonRegistry.cpp',
++	'nsKDERegistry.cpp',
+         'nsGNOMERegistry.cpp',
+         'nsMIMEInfoUnix.cpp',
+     ]
+ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android':
+     CPP_SOURCES += [
+         'nsMIMEInfoAndroid.cpp',
+         'nsAndroidHandlerApp.cpp',
+         'nsExternalSharingAppService.cpp',
 diff --git a/uriloader/exthandler/unix/nsCommonRegistry.cpp b/uriloader/exthandler/unix/nsCommonRegistry.cpp
 new file mode 100644
 --- /dev/null
@@ -2735,7 +2748,7 @@
 new file mode 100644
 --- /dev/null
 +++ b/uriloader/exthandler/unix/nsKDERegistry.cpp
-@@ -0,0 +1,90 @@
+@@ -0,0 +1,88 @@
 +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 +/* This Source Code Form is subject to the terms of the Mozilla Public
 + * License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -2820,9 +2833,7 @@
 +        nsCString handlerAppName = output[ 2 ];
 +        mimeInfo->SetDefaultDescription(NS_ConvertUTF8toUTF16(handlerAppName));
 +        mimeInfo->SetPreferredAction(nsIMIMEInfo::useSystemDefault);
-+        nsMIMEInfoBase* retval;
-+        NS_ADDREF((retval = mimeInfo));
-+        return retval;
++        return mimeInfo.forget();
 +        }
 +    return nullptr;
 +}
@@ -2988,7 +2999,7 @@
  
  #include "nsOSHelperAppService.h"
  #include "nsMIMEInfoUnix.h"
- #ifdef MOZ_WIDGET_GTK2
+ #ifdef MOZ_WIDGET_GTK
 -#include "nsGNOMERegistry.h"
 +#include "nsCommonRegistry.h"
  #endif
@@ -3006,7 +3017,7 @@
      *aHandlerExists = true;
  #endif
  
- #ifdef MOZ_WIDGET_GTK2
+ #ifdef MOZ_WIDGET_GTK
    // Check the GConf registry for a protocol handler
 -  *aHandlerExists = nsGNOMERegistry::HandlerExists(aProtocolScheme);
 +  *aHandlerExists = nsCommonRegistry::HandlerExists(aProtocolScheme);
@@ -3020,7 +3031,7 @@
  
  NS_IMETHODIMP nsOSHelperAppService::GetApplicationDescription(const nsACString& aScheme, nsAString& _retval)
  {
- #ifdef MOZ_WIDGET_GTK2
+ #ifdef MOZ_WIDGET_GTK
 -  nsGNOMERegistry::GetAppDescForScheme(aScheme, _retval);
 +  nsCommonRegistry::GetAppDescForScheme(aScheme, _retval);
    return _retval.IsEmpty() ? NS_ERROR_NOT_AVAILABLE : NS_OK;
@@ -3037,7 +3048,7 @@
  
    if (NS_FAILED(rv) || majorType.IsEmpty()) {
      
- #ifdef MOZ_WIDGET_GTK2
+ #ifdef MOZ_WIDGET_GTK
      LOG(("Looking in GNOME registry\n"));
      nsRefPtr<nsMIMEInfoBase> gnomeInfo =
 -      nsGNOMERegistry::GetFromExtension(aFileExt);
@@ -3051,7 +3062,7 @@
      rv = LookUpTypeAndDescription(NS_ConvertUTF8toUTF16(aFileExt),
                                    majorType,
 @@ -1389,17 +1389,17 @@ nsOSHelperAppService::GetFromType(const 
- #ifdef MOZ_WIDGET_GTK2
+ #ifdef MOZ_WIDGET_GTK
    nsRefPtr<nsMIMEInfoBase> gnomeInfo;
    if (handler.IsEmpty()) {
      // No useful data yet.  Check the GNOME registry.  Unfortunately, newer
@@ -3072,7 +3083,7 @@
 diff --git a/widget/gtk2/Makefile.in b/widget/gtk2/Makefile.in
 --- a/widget/gtk2/Makefile.in
 +++ b/widget/gtk2/Makefile.in
-@@ -96,11 +96,14 @@ DEFINES		+= -DCAIRO_GFX -DMOZ_APP_NAME='
+@@ -67,11 +67,14 @@ DEFINES		+= -DCAIRO_GFX -DMOZ_APP_NAME='
  
  INCLUDES	+= \
  		-I$(srcdir)/../xpwidgets \
@@ -3124,7 +3135,7 @@
  using namespace mozilla;
  
  #define MAX_PREVIEW_SIZE 180
-@@ -236,17 +238,19 @@ nsFilePicker::AppendFilters(int32_t aFil
+@@ -242,17 +244,19 @@ nsFilePicker::AppendFilters(int32_t aFil
    return nsBaseFilePicker::AppendFilters(aFilterMask);
  }
  
@@ -3145,7 +3156,7 @@
  
    mFilters.AppendElement(filter);
    mFilterNames.AppendElement(name);
-@@ -360,16 +364,32 @@ nsFilePicker::Show(int16_t *aReturn)
+@@ -366,16 +370,32 @@ nsFilePicker::Show(int16_t *aReturn)
  
  NS_IMETHODIMP
  nsFilePicker::Open(nsIFilePickerShownCallback *aCallback)
@@ -3178,7 +3189,7 @@
  
    GtkFileChooserAction action = GetGtkFileChooserAction(mMode);
    const gchar *accept_button = (action == GTK_FILE_CHOOSER_ACTION_SAVE)
-@@ -561,8 +581,235 @@ nsFilePicker::Done(GtkWidget* file_choos
+@@ -567,8 +587,235 @@ nsFilePicker::Done(GtkWidget* file_choos
    if (mCallback) {
      mCallback->Done(result);
      mCallback = nullptr;
@@ -3438,17 +3449,16 @@
 diff --git a/xpcom/components/Makefile.in b/xpcom/components/Makefile.in
 --- a/xpcom/components/Makefile.in
 +++ b/xpcom/components/Makefile.in
-@@ -34,10 +34,11 @@ LOCAL_INCLUDES	= \
- # we don't want the shared lib, but we want to force the creation of a static lib.
+@@ -28,9 +28,10 @@ LOCAL_INCLUDES	= \
  FORCE_STATIC_LIB = 1
  
  include $(topsrcdir)/config/rules.mk
  
  DEFINES	+= -D_IMPL_NS_COM
  
- ifneq (,$(filter gtk2,$(MOZ_WIDGET_TOOLKIT)))
+ ifdef MOZ_WIDGET_GTK
+ CXXFLAGS        += $(TK_CFLAGS)
 +LOCAL_INCLUDES += -I$(topsrcdir)/toolkit/xre
- CXXFLAGS += $(MOZ_GTK2_CFLAGS)
  endif
 diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestParser.cpp
 --- a/xpcom/components/ManifestParser.cpp
@@ -3516,7 +3526,7 @@
                                           minorVersion);
    }
 +  desktop = NS_LITERAL_STRING("macosx");
- #elif defined(MOZ_WIDGET_GTK2)
+ #elif defined(MOZ_WIDGET_GTK)
    nsTextFormatter::ssprintf(osVersion, NS_LITERAL_STRING("%ld.%ld").get(),
                                         gtk_major_version,
                                         gtk_minor_version);
@@ -3584,7 +3594,7 @@
 diff --git a/xpcom/io/Makefile.in b/xpcom/io/Makefile.in
 --- a/xpcom/io/Makefile.in
 +++ b/xpcom/io/Makefile.in
-@@ -77,17 +77,17 @@ include $(topsrcdir)/ipc/chromium/chromi
+@@ -43,17 +43,17 @@ include $(topsrcdir)/ipc/chromium/chromi
  DEFINES		+= -D_IMPL_NS_COM
  
  ifeq ($(OS_ARCH),Linux)
@@ -3624,7 +3634,7 @@
  #include "prmem.h"
  #include "plbase64.h"
  
-@@ -1752,44 +1753,51 @@ nsLocalFile::SetPersistentDescriptor(con
+@@ -1753,44 +1754,51 @@ nsLocalFile::SetPersistentDescriptor(con
      return InitWithNativePath(aPersistentDescriptor);
  #endif
  }
@@ -3690,7 +3700,7 @@
        return rv;
      }
      return NS_ERROR_FAILURE;
-@@ -1815,16 +1823,23 @@ nsLocalFile::Launch()
+@@ -1816,16 +1824,23 @@ nsLocalFile::Launch()
  
      if (nullptr == connection)
        return NS_ERROR_FAILURE;
--- a/mozilla-shared-nss-db.patch	Mon Jun 17 22:57:16 2013 +0200
+++ b/mozilla-shared-nss-db.patch	Tue Jul 16 12:35:11 2013 +0200
@@ -7,7 +7,7 @@
 diff --git a/configure.in b/configure.in
 --- a/configure.in
 +++ b/configure.in
-@@ -8309,16 +8309,31 @@ AC_SUBST(QCMS_LIBS)
+@@ -8330,16 +8330,31 @@ AC_SUBST(QCMS_LIBS)
  
  dnl ========================================================
  dnl HarfBuzz
@@ -42,7 +42,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
-@@ -87,10 +87,13 @@ endif
+@@ -18,10 +18,13 @@ LIBXUL_LIBRARY	= 1
  CSRCS += md4.c
  
  DEFINES += \
@@ -78,12 +78,12 @@
  #include "nsNSSComponent.h"
  
  #include "CertVerifier.h"
- #include "nsNSSCallbacks.h"
- #include "nsNSSIOLayer.h"
  #include "nsCertVerificationThread.h"
- 
- #include "nsNetUtil.h"
-@@ -1721,18 +1728,34 @@ nsNSSComponent::InitializeNSS(bool showW
+ #include "nsAppDirectoryServiceDefs.h"
+ #include "nsComponentManagerUtils.h"
+ #include "nsDirectoryServiceDefs.h"
+ #include "nsICertOverrideService.h"
+@@ -1132,18 +1139,34 @@ nsNSSComponent::InitializeNSS(bool showW
      ConfigureInternalPKCS11Token();
  
      // The NSS_INIT_NOROOTINIT flag turns off the loading of the root certs
@@ -123,12 +123,12 @@
 diff --git a/toolkit/library/Makefile.in b/toolkit/library/Makefile.in
 --- a/toolkit/library/Makefile.in
 +++ b/toolkit/library/Makefile.in
-@@ -510,17 +510,17 @@ EXTRA_DSO_LDOPTS += -INCREMENTAL:NO
+@@ -490,17 +490,17 @@ EXTRA_DSO_LDOPTS += -INCREMENTAL:NO
  endif
  endif
  endif
  
- EXTRA_DSO_LDOPTS += $(LIBS_DIR) $(EXTRA_DSO_LIBS)
+ EXTRA_DSO_LDOPTS += $(LIBS_DIR)
  
  DEFINES += -DIMPL_XREAPI