From 2ea3069057e565c25a5cfa6f3c1653cbf77cde05907bd77b852fe7efecab2676 Mon Sep 17 00:00:00 2001
From: Wolfgang Rosenauer <wolfgang@rosenauer.org>
Date: Tue, 26 Jan 2016 22:39:03 +0000
Subject: [PATCH] - update to Firefox 44.0 (boo#963520)   * MFSA
 2016-01/CVE-2016-1930/CVE-2016-1931     Miscellaneous memory safety hazards  
 * MFSA 2016-02/CVE-2016-1933 (bmo#1231761)     Out of Memory crash when
 parsing GIF format images   * MFSA 2016-03/CVE-2016-1935 (bmo#1220450)    
 Buffer overflow in WebGL after out of memory allocation   * MFSA
 2016-04/CVE-2015-7208/CVE-2016-1939 (bmo#1191423, bmo#1233784)     Firefox
 allows for control characters to be set in cookie names   * MFSA
 2016-06/CVE-2016-1937 (bmo#724353)     Missing delay following user click
 events in protocol handler dialog   * MFSA 2016-07/CVE-2016-1938
 (bmo#1190248)     Errors in mp_div and mp_exptmod cryptographic functions in
 NSS     (fixed by requiring NSS 3.21)   * MFSA
 2016-09/CVE-2016-1942/CVE-2016-1943 (bmo#1189082, bmo#1228590)     Addressbar
 spoofing attacks   * MFSA 2016-10/CVE-2016-1944/CVE-2016-1945/CVE-2016-1946  
   (bmo#1186621, bmo#1214782, bmo#1232096)     Unsafe memory manipulation
 found through code inspection   * MFSA 2016-11/CVE-2016-1947 (bmo#1237103)   
  Application Reputation service disabled in Firefox 43   * requires NSPR 4.11
   * requires NSS 3.21 - prepare mozilla-kde.patch for Gtk3 builds - rebased
 patches

OBS-URL: https://build.opensuse.org/package/show/mozilla:Factory/MozillaFirefox?expand=0&rev=480
---
 MozillaFirefox.changes        | 29 +++++++++++
 MozillaFirefox.spec           | 19 ++++---
 compare-locales.tar.xz        |  4 +-
 create-tar.sh                 |  4 +-
 firefox-43.0.4-source.tar.xz  |  3 --
 firefox-44.0-source.tar.xz    |  3 ++
 firefox-branded-icons.patch   | 10 ++--
 firefox-kde.patch             | 94 ++++++++++++++++++++++-------------
 l10n-43.0.4.tar.xz            |  3 --
 l10n-44.0.tar.xz              |  3 ++
 mozilla-kde.patch             | 40 +++++++--------
 mozilla-language.patch        |  4 +-
 mozilla-no-stdcxx-check.patch | 24 ++-------
 source-stamp.txt              |  2 +-
 14 files changed, 142 insertions(+), 100 deletions(-)
 delete mode 100644 firefox-43.0.4-source.tar.xz
 create mode 100644 firefox-44.0-source.tar.xz
 delete mode 100644 l10n-43.0.4.tar.xz
 create mode 100644 l10n-44.0.tar.xz

diff --git a/MozillaFirefox.changes b/MozillaFirefox.changes
index 7cb6f8f..dca3192 100644
--- a/MozillaFirefox.changes
+++ b/MozillaFirefox.changes
@@ -1,3 +1,32 @@
+-------------------------------------------------------------------
+Sun Jan 24 09:33:15 UTC 2016 - wr@rosenauer.org
+
+- update to Firefox 44.0 (boo#963520)
+  * MFSA 2016-01/CVE-2016-1930/CVE-2016-1931
+    Miscellaneous memory safety hazards
+  * MFSA 2016-02/CVE-2016-1933 (bmo#1231761)
+    Out of Memory crash when parsing GIF format images
+  * MFSA 2016-03/CVE-2016-1935 (bmo#1220450)
+    Buffer overflow in WebGL after out of memory allocation
+  * MFSA 2016-04/CVE-2015-7208/CVE-2016-1939 (bmo#1191423, bmo#1233784)
+    Firefox allows for control characters to be set in cookie names
+  * MFSA 2016-06/CVE-2016-1937 (bmo#724353)
+    Missing delay following user click events in protocol handler dialog
+  * MFSA 2016-07/CVE-2016-1938 (bmo#1190248)
+    Errors in mp_div and mp_exptmod cryptographic functions in NSS
+    (fixed by requiring NSS 3.21)
+  * MFSA 2016-09/CVE-2016-1942/CVE-2016-1943 (bmo#1189082, bmo#1228590)
+    Addressbar spoofing attacks
+  * MFSA 2016-10/CVE-2016-1944/CVE-2016-1945/CVE-2016-1946
+    (bmo#1186621, bmo#1214782, bmo#1232096)
+    Unsafe memory manipulation found through code inspection
+  * MFSA 2016-11/CVE-2016-1947 (bmo#1237103)
+    Application Reputation service disabled in Firefox 43
+  * requires NSPR 4.11
+  * requires NSS 3.21
+- prepare mozilla-kde.patch for Gtk3 builds
+- rebased patches
+
 -------------------------------------------------------------------
 Mon Jan 11 08:04:24 UTC 2016 - astieger@suse.com
 
diff --git a/MozillaFirefox.spec b/MozillaFirefox.spec
index be59cec..1073782 100644
--- a/MozillaFirefox.spec
+++ b/MozillaFirefox.spec
@@ -2,7 +2,7 @@
 # spec file for package MozillaFirefox
 #
 # Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
-#               2006-2015 Wolfgang Rosenauer
+#               2006-2016 Wolfgang Rosenauer
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,10 +18,10 @@
 
 
 # changed with every update
-%define major 43
-%define mainver %major.0.4
+%define major 44
+%define mainver %major.0
 %define update_channel release
-%define releasedate 2016010600
+%define releasedate 2016012300
 
 # general build definitions
 %if "%{update_channel}" != "aurora"
@@ -77,8 +77,8 @@ BuildRequires:  libiw-devel
 BuildRequires:  libnotify-devel
 BuildRequires:  libproxy-devel
 BuildRequires:  makeinfo
-BuildRequires:  mozilla-nspr-devel >= 4.10.10
-BuildRequires:  mozilla-nss-devel >= 3.20.2
+BuildRequires:  mozilla-nspr-devel >= 4.11
+BuildRequires:  mozilla-nss-devel >= 3.21
 BuildRequires:  nss-shared-helper-devel
 BuildRequires:  python-devel
 BuildRequires:  startup-notification-devel
@@ -320,6 +320,9 @@ ac_add_options --sysconfdir=%{_sysconfdir}
 ac_add_options --mandir=%{_mandir}
 ac_add_options --includedir=%{_includedir}
 ac_add_options --enable-release
+%if 0%{?suse_version} > 1320
+#ac_add_options --enable-default-toolkit=cairo-gtk3
+%endif
 %ifarch %ix86 %arm
 %if 0%{?suse_version} > 1230
 ac_add_options --disable-optimize
@@ -568,6 +571,10 @@ exit 0
 %{progdir}/components/
 %{progdir}/defaults/
 %{progdir}/dictionaries/
+%if 0%{?suse_version} > 1320
+#%dir %{progdir}/gtk2
+#%{progdir}/gtk2/libmozgtk.so
+%endif
 %{progdir}/webapprt/
 %{progdir}/gmp-clearkey/
 %attr(755,root,root) %{progdir}/%{progname}.sh
diff --git a/compare-locales.tar.xz b/compare-locales.tar.xz
index 1dd6b8c..f736f20 100644
--- a/compare-locales.tar.xz
+++ b/compare-locales.tar.xz
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:c33238a571724750a2429fc48d56cf84b82a3bcae876b1e71b102aea4170120c
-size 28624
+oid sha256:59988a3e83eb70d10eee27acc3f255f01cf35f45ad2eee70fc269655227172e0
+size 28356
diff --git a/create-tar.sh b/create-tar.sh
index d31e58e..af58001 100644
--- a/create-tar.sh
+++ b/create-tar.sh
@@ -2,8 +2,8 @@
 
 CHANNEL="release"
 BRANCH="releases/mozilla-$CHANNEL"
-RELEASE_TAG="FIREFOX_43_0_4_RELEASE"
-VERSION="43.0.4"
+RELEASE_TAG="FIREFOX_44_0_RELEASE"
+VERSION="44.0"
 
 # mozilla
 if [ -d mozilla ]; then
diff --git a/firefox-43.0.4-source.tar.xz b/firefox-43.0.4-source.tar.xz
deleted file mode 100644
index d2f5eaf..0000000
--- a/firefox-43.0.4-source.tar.xz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a4f3dbdc7063a6ef421cd9931e09bd099834933037b4cd173e028886619d6750
-size 185574652
diff --git a/firefox-44.0-source.tar.xz b/firefox-44.0-source.tar.xz
new file mode 100644
index 0000000..d1eb905
--- /dev/null
+++ b/firefox-44.0-source.tar.xz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e4e4edcd14b74b35973af5b7615dc1dac5df71aee8c369a5956eedba0e614aed
+size 191818888
diff --git a/firefox-branded-icons.patch b/firefox-branded-icons.patch
index 508c3dc..dea926d 100644
--- a/firefox-branded-icons.patch
+++ b/firefox-branded-icons.patch
@@ -1,6 +1,6 @@
 # HG changeset patch
 # Parent e0751ad74e835e80041a61ea00c2a63bf6fbe2de
-# Parent  dbca8a673de340999f67eb321169b44cc4109faf
+# Parent  e10e9bf6ab3a74655998bd0286d248f5d17a601a
 
 diff --git a/browser/app/Makefile.in b/browser/app/Makefile.in
 --- a/browser/app/Makefile.in
@@ -21,12 +21,12 @@ diff --git a/browser/app/Makefile.in b/browser/app/Makefile.in
 +endif
  endif
  
- ifndef LIBXUL_SDK
  # channel-prefs.js is handled separate from other prefs due to bug 756325
  libs:: $(srcdir)/profile/channel-prefs.js
  	$(NSINSTALL) -D $(DIST)/bin/defaults/pref
  	$(call py_action,preprocessor,-Fsubstitution $(PREF_PPFLAGS) $(ACDEFINES) $^ -o $(DIST)/bin/defaults/pref/channel-prefs.js)
- endif
+ 
+ ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))
 diff --git a/browser/branding/branding-common.mozbuild b/browser/branding/branding-common.mozbuild
 --- a/browser/branding/branding-common.mozbuild
 +++ b/browser/branding/branding-common.mozbuild
@@ -49,7 +49,7 @@ diff --git a/browser/branding/branding-common.mozbuild b/browser/branding/brandi
 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
-@@ -669,18 +669,21 @@
+@@ -670,18 +670,21 @@
  @RESPATH@/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png
  @RESPATH@/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf
  @RESPATH@/chrome/toolkit@JAREXT@
@@ -70,4 +70,4 @@ diff --git a/browser/installer/package-manifest.in b/browser/installer/package-m
  @RESPATH@/browser/chrome/webide.manifest
  @RESPATH@/browser/@PREF_DIR@/webide-prefs.js
  
- ; shell icons
+ ; DevTools
diff --git a/firefox-kde.patch b/firefox-kde.patch
index 52c65d9..32b3694 100644
--- a/firefox-kde.patch
+++ b/firefox-kde.patch
@@ -1,11 +1,11 @@
 # HG changeset patch
-# Parent  3fedb882f767b2e4ff72ef972a9cce4c5d1af4af
+# Parent  77c3bdc27160dfa96aa4b3288c7f12a72f273967
 
 diff --git a/browser/base/content/browser-kde.xul b/browser/base/content/browser-kde.xul
 new file mode 100644
 --- /dev/null
 +++ b/browser/base/content/browser-kde.xul
-@@ -0,0 +1,1222 @@
+@@ -0,0 +1,1250 @@
 +#filter substitution
 +<?xml version="1.0"?>
 +# -*- Mode: HTML -*-
@@ -16,7 +16,7 @@ new file mode 100644
 +
 +<?xml-stylesheet href="chrome://browser/content/browser.css" type="text/css"?>
 +<?xml-stylesheet href="chrome://browser/content/places/places.css" type="text/css"?>
-+<?xml-stylesheet href="chrome://browser/skin/devtools/common.css" type="text/css"?>
++<?xml-stylesheet href="chrome://devtools/skin/common.css" type="text/css"?>
 +<?xml-stylesheet href="chrome://browser/skin/controlcenter/panel.css" type="text/css"?>
 +<?xml-stylesheet href="chrome://browser/skin/customizableui/panelUIOverlay.css" type="text/css"?>
 +<?xml-stylesheet href="chrome://browser/skin/" type="text/css"?>
@@ -170,6 +170,7 @@ new file mode 100644
 +         popuponly menulist to be its immediate parent. -->
 +    <menulist popuponly="true" id="ContentSelectDropdown" hidden="true">
 +      <menupopup rolluponmousewheel="true"
++                 activateontab="true"
 +#ifdef XP_WIN
 +                 consumeoutsideclicks="false" ignorekeys="handled"
 +#endif
@@ -683,7 +684,7 @@ new file mode 100644
 +
 +      <hbox id="nav-bar-customization-target" flex="1">
 +        <toolbaritem id="urlbar-container" flex="400" persist="width"
-+                     title="&locationItem.title;" removable="false"
++                     removable="false"
 +                     class="chromeclass-location" overflows="false">
 +          <toolbarbutton id="back-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
 +                         label="&backCmd.label;"
@@ -718,28 +719,50 @@ new file mode 100644
 +                     onfocus="document.getElementById('identity-box').style.MozUserFocus= 'normal'"
 +                     onblur="setTimeout(() => { document.getElementById('identity-box').style.MozUserFocus = ''; }, 0);">
 +              <box id="notification-popup-box" hidden="true" align="center">
-+                <image id="default-notification-icon" class="notification-anchor-icon" role="button"/>
++                <image id="default-notification-icon" class="notification-anchor-icon" role="button"
++                       aria-label="&urlbar.defaultNotificationAnchor.label;"/>
++                <!-- NB: the identity-notification-icon is used for persona-based auth and preffed
++                     off by default. It hasn't been updated for some time and liable to being
++                     removed.-->
 +                <image id="identity-notification-icon" class="notification-anchor-icon" role="button"/>
-+                <image id="geo-notification-icon" class="notification-anchor-icon" role="button"/>
-+                <image id="push-notification-icon" class="notification-anchor-icon" role="button"/>
-+                <image id="addons-notification-icon" class="notification-anchor-icon" role="button"/>
-+                <image id="indexedDB-notification-icon" class="notification-anchor-icon" role="button"/>
-+                <image id="login-fill-notification-icon" class="notification-anchor-icon" role="button"/>
-+                <image id="password-notification-icon" class="notification-anchor-icon" role="button"/>
-+                <image id="webapps-notification-icon" class="notification-anchor-icon" role="button"/>
-+                <image id="plugins-notification-icon" class="notification-anchor-icon" role="button"/>
-+                <image id="web-notifications-notification-icon" class="notification-anchor-icon" role="button"/>
-+                <image id="webRTC-shareDevices-notification-icon" class="notification-anchor-icon" role="button"/>
-+                <image id="webRTC-sharingDevices-notification-icon" class="notification-anchor-icon" role="button"/>
-+                <image id="webRTC-shareMicrophone-notification-icon" class="notification-anchor-icon" role="button"/>
-+                <image id="webRTC-sharingMicrophone-notification-icon" class="notification-anchor-icon" role="button"/>
-+                <image id="webRTC-shareScreen-notification-icon" class="notification-anchor-icon" role="button"/>
-+                <image id="webRTC-sharingScreen-notification-icon" class="notification-anchor-icon" role="button"/>
-+                <image id="pointerLock-notification-icon" class="notification-anchor-icon" role="button"/>
-+                <image id="servicesInstall-notification-icon" class="notification-anchor-icon" role="button"/>
-+                <image id="translate-notification-icon" class="notification-anchor-icon" role="button"/>
-+                <image id="translated-notification-icon" class="notification-anchor-icon" role="button"/>
-+                <image id="eme-notification-icon" class="notification-anchor-icon" role="button"/>
++                <image id="geo-notification-icon" class="notification-anchor-icon" role="button"
++                       aria-label="&urlbar.geolocationNotificationAnchor.label;"/>
++                <image id="addons-notification-icon" class="notification-anchor-icon" role="button"
++                       aria-label="&urlbar.addonsNotificationAnchor.label;"/>
++                <image id="indexedDB-notification-icon" class="notification-anchor-icon" role="button"
++                       aria-label="&urlbar.indexedDBNotificationAnchor.label;"/>
++                <image id="login-fill-notification-icon" class="notification-anchor-icon" role="button"
++                       aria-label="&urlbar.loginFillNotificationAnchor.label;"/>
++                <image id="password-notification-icon" class="notification-anchor-icon" role="button"
++                       aria-label="&urlbar.passwordNotificationAnchor.label;"/>
++                <image id="webapps-notification-icon" class="notification-anchor-icon" role="button"
++                       aria-label="&urlbar.webappsNotificationAnchor.label;"/>
++                <image id="plugins-notification-icon" class="notification-anchor-icon" role="button"
++                       aria-label="&urlbar.pluginsNotificationAnchor.label;"/>
++                <image id="web-notifications-notification-icon" class="notification-anchor-icon" role="button"
++                       aria-label="&urlbar.webNotsNotificationAnchor.label;"/>
++                <image id="webRTC-shareDevices-notification-icon" class="notification-anchor-icon" role="button"
++                       aria-label="&urlbar.webRTCShareDevicesNotificationAnchor.label;"/>
++                <image id="webRTC-sharingDevices-notification-icon" class="notification-anchor-icon" role="button"
++                       aria-label="&urlbar.webRTCSharingDevicesNotificationAnchor.label;"/>
++                <image id="webRTC-shareMicrophone-notification-icon" class="notification-anchor-icon" role="button"
++                       aria-label="&urlbar.webRTCShareMicrophoneNotificationAnchor.label;"/>
++                <image id="webRTC-sharingMicrophone-notification-icon" class="notification-anchor-icon" role="button"
++                       aria-label="&urlbar.webRTCSharingMicrophoneNotificationAnchor.label;"/>
++                <image id="webRTC-shareScreen-notification-icon" class="notification-anchor-icon" role="button"
++                       aria-label="&urlbar.webRTCShareScreenNotificationAnchor.label;"/>
++                <image id="webRTC-sharingScreen-notification-icon" class="notification-anchor-icon" role="button"
++                       aria-label="&urlbar.webRTCSharingScreenNotificationAnchor.label;"/>
++                <image id="pointerLock-notification-icon" class="notification-anchor-icon" role="button"
++                       aria-label="&urlbar.pointerLockNotificationAnchor.label;"/>
++                <image id="servicesInstall-notification-icon" class="notification-anchor-icon" role="button"
++                       aria-label="&urlbar.servicesNotificationAnchor.label;"/>
++                <image id="translate-notification-icon" class="notification-anchor-icon" role="button"
++                       aria-label="&urlbar.translateNotificationAnchor.label;"/>
++                <image id="translated-notification-icon" class="notification-anchor-icon" role="button"
++                       aria-label="&urlbar.translatedNotificationAnchor.label;"/>
++                <image id="eme-notification-icon" class="notification-anchor-icon" role="button"
++                       aria-label="&urlbar.emeNotificationAnchor.label;"/>
 +              </box>
 +              <!-- Use onclick instead of normal popup= syntax since the popup
 +                   code fires onmousedown, and hence eats our favicon drag events.
@@ -747,6 +770,7 @@ new file mode 100644
 +                   has focus, otherwise pressing F6 focuses it instead of the location bar -->
 +              <box id="identity-box" role="button"
 +                   align="center"
++                   aria-label="&urlbar.viewSiteInfo.label;"
 +                   onclick="gIdentityHandler.handleIdentityButtonEvent(event);"
 +                   onkeypress="gIdentityHandler.handleIdentityButtonEvent(event);"
 +                   ondragstart="gIdentityHandler.onDragStart(event);">
@@ -776,6 +800,10 @@ new file mode 100644
 +                       hidden="true"
 +                       onclick="ReaderParent.buttonClick(event);"/>
 +              </hbox>
++              <hbox id="userContext-icons">
++                <label id="userContext-label"/>
++                <image id="userContext-indicator"/>
++              </hbox>
 +              <toolbarbutton id="urlbar-go-button"
 +                             class="chromeclass-toolbar-additional"
 +                             onclick="gURLBar.handleCommand(event);"
@@ -1096,7 +1124,7 @@ new file mode 100644
 +
 +      <splitter id="sidebar-splitter" class="chromeclass-extrachrome sidebar-splitter" hidden="true"/>
 +      <vbox id="appcontent" flex="1">
-+        <notificationbox id="high-priority-global-notificationbox"/>
++        <notificationbox id="high-priority-global-notificationbox" notificationside="top"/>
 +        <tabbrowser id="content"
 +                    flex="1" contenttooltip="aHTMLTooltip"
 +                    tabcontainer="tabbrowser-tabs"
@@ -1179,7 +1207,7 @@ new file mode 100644
 +  </html:div>
 +
 +  <vbox id="browser-bottombox" layer="true">
-+    <notificationbox id="global-notificationbox"/>
++    <notificationbox id="global-notificationbox" notificationside="bottom"/>
 +    <toolbar id="developer-toolbar"
 +             hidden="true">
 +#ifdef XP_MACOSX
@@ -1336,7 +1364,7 @@ diff --git a/browser/components/preferences/in-content/main.js b/browser/compone
      // 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.
-@@ -709,16 +715,27 @@ var gMainPane = {
+@@ -711,16 +717,27 @@ var gMainPane = {
     */
    setDefaultBrowser: function()
    {
@@ -1767,21 +1795,16 @@ new file mode 100644
 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
-@@ -699,19 +699,21 @@
+@@ -709,16 +709,17 @@
+ @RESPATH@/defaults/autoconfig/prefcalls.js
  @RESPATH@/browser/defaults/profile/prefs.js
  @RESPATH@/browser/defaults/permissions
  
- #ifndef LIBXUL_SDK
  ; Warning: changing the path to channel-prefs.js can cause bugs (Bug 756325)
  ; Technically this is an app pref file, but we are keeping it in the original
  ; gre location for now.
  @RESPATH@/defaults/pref/channel-prefs.js
 +@BINPATH@/defaults/pref/kde.js
- #else
- ; For Fx-on-xr, channel-prefs lives with the app preferences. (Bug 762588)
- @RESPATH@/@PREF_DIR@/channel-prefs.js
-+@BINPATH@/@PREF_DIR@/kde.js
- #endif
  
  ; Services (gre) prefs
  #ifdef MOZ_SERVICES_NOTIFICATIONS
@@ -1789,3 +1812,4 @@ diff --git a/browser/installer/package-manifest.in b/browser/installer/package-m
  #endif
  #ifdef MOZ_SERVICES_SYNC
  @RESPATH@/defaults/pref/services-sync.js
+ #endif
diff --git a/l10n-43.0.4.tar.xz b/l10n-43.0.4.tar.xz
deleted file mode 100644
index b4e61fe..0000000
--- a/l10n-43.0.4.tar.xz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:57e5e502001ea4093a1ad219ebc26c9fef075c4818f87e0f22c83063f977d327
-size 42791412
diff --git a/l10n-44.0.tar.xz b/l10n-44.0.tar.xz
new file mode 100644
index 0000000..eaf6d49
--- /dev/null
+++ b/l10n-44.0.tar.xz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:718ac571c4b4acf4e4f5d0a670b365f792a44fb7e4ff267b9b6c940336a1b777
+size 43000132
diff --git a/mozilla-kde.patch b/mozilla-kde.patch
index 44aaf6f..b48beea 100644
--- a/mozilla-kde.patch
+++ b/mozilla-kde.patch
@@ -1,5 +1,5 @@
 # HG changeset patch
-# Parent  1e6ab61ae64f601da61197f34ad145f54a400b1f
+# Parent  d9c9ae52f0338a60d1626d9209248341815e597a
 Description: Add KDE integration to Firefox (toolkit parts)
 Author: Wolfgang Rosenauer <wolfgang@rosenauer.org>
 Author: Lubos Lunak <lunak@suse.com>
@@ -21,7 +21,7 @@ diff --git a/modules/libpref/Makefile.in b/modules/libpref/Makefile.in
 +LOCAL_INCLUDES += -I$(topsrcdir)/toolkit/xre
 +
  greprefs.js: $(grepref_files)
- 	$(call py_action,preprocessor,$(PREF_PPFLAGS) $(DEFINES) $(ACDEFINES) $(XULPPFLAGS) $^ -o $@)
+ 	$(call py_action,preprocessor,$(PREF_PPFLAGS) $(DEFINES) $(ACDEFINES) $(MOZ_DEBUG_DEFINES) $^ -o $@)
  
  libs:: greprefs.js
  	$(INSTALL) $^ $(DIST)/bin/
@@ -137,7 +137,7 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
  
    // Load jar:$app/omni.jar!/defaults/preferences/*.js
    // or jar:$gre/omni.jar!/defaults/preferences/*.js.
-   nsRefPtr<nsZipArchive> appJarReader = mozilla::Omnijar::GetReader(mozilla::Omnijar::APP);
+   RefPtr<nsZipArchive> appJarReader = mozilla::Omnijar::GetReader(mozilla::Omnijar::APP);
    // GetReader(mozilla::Omnijar::APP) returns null when $app == $gre, in which
 diff --git a/python/mozbuild/mozpack/chrome/flags.py b/python/mozbuild/mozpack/chrome/flags.py
 --- a/python/mozbuild/mozpack/chrome/flags.py
@@ -273,7 +273,7 @@ diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/compon
 diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn
 --- a/toolkit/content/jar.mn
 +++ b/toolkit/content/jar.mn
-@@ -63,29 +63,33 @@ toolkit.jar:
+@@ -64,29 +64,33 @@ toolkit.jar:
     content/global/viewZoomOverlay.js
  *+ content/global/bindings/autocomplete.xml    (widgets/autocomplete.xml)
     content/global/bindings/browser.xml         (widgets/browser.xml)
@@ -2503,12 +2503,12 @@ new file mode 100644
 +    }
 +
 +
-+bool nsKDEUtils::commandBlockUi( const nsTArray<nsCString>& command, const GtkWindow* parent, nsTArray<nsCString>* output )
++bool nsKDEUtils::commandBlockUi( const nsTArray<nsCString>& command, GtkWindow* parent, nsTArray<nsCString>* output )
 +    {
 +    return self()->internalCommand( command, parent, true, output );
 +    }
 +
-+bool nsKDEUtils::internalCommand( const nsTArray<nsCString>& command, const GtkWindow* parent, bool blockUi,
++bool nsKDEUtils::internalCommand( const nsTArray<nsCString>& command, GtkWindow* parent, bool blockUi,
 +    nsTArray<nsCString>* output )
 +    {
 +    if( !startHelper())
@@ -2524,8 +2524,8 @@ new file mode 100644
 +        {
 +        data.loop = g_main_loop_new( NULL, FALSE );
 +        GtkWidget* window = gtk_window_new( GTK_WINDOW_TOPLEVEL );
-+        if( parent && parent->group )
-+            gtk_window_group_add_window( parent->group, GTK_WINDOW( window ));
++        if( parent && gtk_window_get_group(parent) )
++            gtk_window_group_add_window( gtk_window_get_group(parent), GTK_WINDOW( window ));
 +        gtk_widget_realize( window );
 +        gtk_widget_set_sensitive( window, TRUE );
 +        gtk_grab_add( window );
@@ -2678,7 +2678,7 @@ new file mode 100644
 +        /* Like command(), but additionally blocks the parent widget like if there was
 +           a modal dialog shown and enters the event loop (i.e. there are still paint updates,
 +           this is for commands that take long). */
-+        static bool commandBlockUi( const nsTArray<nsCString>& command, const GtkWindow* parent, nsTArray<nsCString>* output = NULL );
++        static bool commandBlockUi( const nsTArray<nsCString>& command, GtkWindow* parent, nsTArray<nsCString>* output = NULL );
 +
 +    private:
 +        nsKDEUtils();
@@ -2687,7 +2687,7 @@ new file mode 100644
 +        bool startHelper();
 +        void closeHelper();
 +        void feedCommand( const nsTArray<nsCString>& command );
-+        bool internalCommand( const nsTArray<nsCString>& command, const GtkWindow* parent, bool isParent,
++        bool internalCommand( const nsTArray<nsCString>& command, GtkWindow* parent, bool isParent,
 +            nsTArray<nsCString>* output );
 +        FILE* commandFile;
 +        FILE* replyFile;
@@ -2697,7 +2697,7 @@ new file mode 100644
 diff --git a/uriloader/exthandler/moz.build b/uriloader/exthandler/moz.build
 --- a/uriloader/exthandler/moz.build
 +++ b/uriloader/exthandler/moz.build
-@@ -68,17 +68,19 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'coco
+@@ -72,17 +72,19 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'ui
  else:
      # These files can't be built in unified mode because they redefine LOG.
      SOURCES += [
@@ -2717,7 +2717,7 @@ diff --git a/uriloader/exthandler/moz.build b/uriloader/exthandler/moz.build
          'android/nsExternalSharingAppService.cpp',
          'android/nsExternalURLHandlerService.cpp',
          'android/nsMIMEInfoAndroid.cpp',
-@@ -121,16 +123,17 @@ include('/ipc/chromium/chromium-config.m
+@@ -125,16 +127,17 @@ include('/ipc/chromium/chromium-config.m
  
  FINAL_LIBRARY = 'xul'
  
@@ -2908,7 +2908,7 @@ new file mode 100644
 +    if( nsKDEUtils::command( command, &output ) && output.Length() == 3 )
 +        {
 +        nsCString mimetype = output[ 0 ];
-+        nsRefPtr<nsMIMEInfoUnix> mimeInfo = new nsMIMEInfoUnix( mimetype );
++        RefPtr<nsMIMEInfoUnix> mimeInfo = new nsMIMEInfoUnix( mimetype );
 +        NS_ENSURE_TRUE(mimeInfo, nullptr);
 +        nsCString description = output[ 1 ];
 +        mimeInfo->SetDescription(NS_ConvertUTF8toUTF16(description));
@@ -3011,8 +3011,8 @@ diff --git a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp b/uriloader/exthandler
 -    *_retval = nsGNOMERegistry::HandlerExists(mSchemeOrType.get());
 +    *_retval = nsCommonRegistry::HandlerExists(mSchemeOrType.get());
    } else {
--    nsRefPtr<nsMIMEInfoBase> mimeInfo = nsGNOMERegistry::GetFromType(mSchemeOrType);
-+    nsRefPtr<nsMIMEInfoBase> mimeInfo = nsCommonRegistry::GetFromType(mSchemeOrType);
+-    RefPtr<nsMIMEInfoBase> mimeInfo = nsGNOMERegistry::GetFromType(mSchemeOrType);
++    RefPtr<nsMIMEInfoBase> mimeInfo = nsCommonRegistry::GetFromType(mSchemeOrType);
      if (!mimeInfo) {
        nsAutoCString ext;
        nsresult rv = GetPrimaryExtension(ext);
@@ -3120,7 +3120,7 @@ diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exth
  
  #ifdef MOZ_WIDGET_GTK
      LOG(("Looking in GNOME registry\n"));
-     nsRefPtr<nsMIMEInfoBase> gnomeInfo =
+     RefPtr<nsMIMEInfoBase> gnomeInfo =
 -      nsGNOMERegistry::GetFromExtension(aFileExt);
 +      nsCommonRegistry::GetFromExtension(aFileExt);
      if (gnomeInfo) {
@@ -3140,8 +3140,8 @@ diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exth
  
  #ifdef MOZ_WIDGET_GTK
    if (handler.IsEmpty()) {
--    nsRefPtr<nsMIMEInfoBase> gnomeInfo = nsGNOMERegistry::GetFromType(aMIMEType);
-+    nsRefPtr<nsMIMEInfoBase> gnomeInfo = nsCommonRegistry::GetFromType(aMIMEType);
+-    RefPtr<nsMIMEInfoBase> gnomeInfo = nsGNOMERegistry::GetFromType(aMIMEType);
++    RefPtr<nsMIMEInfoBase> gnomeInfo = nsCommonRegistry::GetFromType(aMIMEType);
      if (gnomeInfo) {
        LOG(("Got MIMEInfo from GNOME registry without extensions; setting them "
             "to %s\n", NS_LossyConvertUTF16toASCII(extensions).get()));
@@ -3153,7 +3153,7 @@ diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exth
 diff --git a/widget/gtk/moz.build b/widget/gtk/moz.build
 --- a/widget/gtk/moz.build
 +++ b/widget/gtk/moz.build
-@@ -81,16 +81,17 @@ else:
+@@ -86,16 +86,17 @@ else:
  include('/ipc/chromium/chromium-config.mozbuild')
  
  FINAL_LIBRARY = 'xul'
@@ -3586,7 +3586,7 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
  #elif defined(MOZ_WIDGET_COCOA)
    SInt32 majorVersion = nsCocoaFeatures::OSXVersionMajor();
    SInt32 minorVersion = nsCocoaFeatures::OSXVersionMinor();
-   nsTextFormatter::ssprintf(osVersion, NS_LITERAL_STRING("%ld.%ld").get(),
+   nsTextFormatter::ssprintf(osVersion, MOZ_UTF16("%ld.%ld"),
                              majorVersion,
                              minorVersion);
 +  desktop = NS_LITERAL_STRING("macosx");
diff --git a/mozilla-language.patch b/mozilla-language.patch
index 5e5b755..b874c1a 100644
--- a/mozilla-language.patch
+++ b/mozilla-language.patch
@@ -1,14 +1,14 @@
 # HG changeset patch
 # User Wolfgang Rosenauer <wr@rosenauer.org>
 # Parent 5a29924228527f8882c83cf62d470963ea1ce62e
-# Parent  228ea0669fa8cc78532b71d7bdc4bad5477f246e
+# Parent  55b6ae7fd3ebf28f960031801f1948dfc1bd80d2
 Bug 583793 - Firefox interface language set to LANG, ignores LANGUAGE
 
 diff --git a/intl/locale/nsLocaleService.cpp b/intl/locale/nsLocaleService.cpp
 --- a/intl/locale/nsLocaleService.cpp
 +++ b/intl/locale/nsLocaleService.cpp
 @@ -122,16 +122,17 @@ nsLocaleService::nsLocaleService(void)
-     nsRefPtr<nsLocale> resultLocale(new nsLocale());
+     RefPtr<nsLocale> resultLocale(new nsLocale());
      NS_ENSURE_TRUE_VOID(resultLocale);
  
  #ifdef MOZ_WIDGET_QT
diff --git a/mozilla-no-stdcxx-check.patch b/mozilla-no-stdcxx-check.patch
index fe245bd..3f54c30 100644
--- a/mozilla-no-stdcxx-check.patch
+++ b/mozilla-no-stdcxx-check.patch
@@ -1,30 +1,11 @@
 # HG changeset patch
 # User Wolfgang Rosenauer <wr@rosenauer.org>
-# Parent  af8fd72bd18717e6fc46340f467c7fa4f6d8c2ab
+# Parent  e96e9b3997ea31024687aaa1e9aa5ccf78bc0ee9
 
 diff --git a/config/config.mk b/config/config.mk
 --- a/config/config.mk
 +++ b/config/config.mk
-@@ -626,34 +626,33 @@ EXPAND_LD = $(EXPAND_LIBS_EXEC) --uselis
- EXPAND_MKSHLIB_ARGS = --uselist
- ifdef SYMBOL_ORDER
- EXPAND_MKSHLIB_ARGS += --symbol-order $(SYMBOL_ORDER)
- endif
- EXPAND_MKSHLIB = $(EXPAND_LIBS_EXEC) $(EXPAND_MKSHLIB_ARGS) -- $(MKSHLIB)
- 
- ifneq (,$(MOZ_LIBSTDCXX_TARGET_VERSION)$(MOZ_LIBSTDCXX_HOST_VERSION))
- ifneq ($(OS_ARCH),Darwin)
--CHECK_STDCXX = @$(TOOLCHAIN_PREFIX)objdump -p $(1) | grep -e 'GLIBCXX_3\.4\.\(1[1-9]\|[2-9][0-9]\)' > /dev/null && echo 'TEST-UNEXPECTED-FAIL | check_stdcxx | We do not want these libstdc++ symbols to be used:' && $(TOOLCHAIN_PREFIX)objdump -T $(1) | grep -e 'GLIBCXX_3\.4\.\(1[1-9]\|[2-9][0-9]\)' && exit 1 || true
-+#CHECK_STDCXX = @$(TOOLCHAIN_PREFIX)objdump -p $(1) | grep -e 'GLIBCXX_3\.4\.\(1[1-9]\|[2-9][0-9]\)' > /dev/null && echo 'TEST-UNEXPECTED-FAIL | check_stdcxx | We do not want these libstdc++ symbols to be used:' && $(TOOLCHAIN_PREFIX)objdump -T $(1) | grep -e 'GLIBCXX_3\.4\.\(1[1-9]\|[2-9][0-9]\)' && exit 1 || true
- endif
- endif
- 
- ifeq (,$(filter $(OS_TARGET),WINNT Darwin))
- CHECK_TEXTREL = @$(TOOLCHAIN_PREFIX)readelf -d $(1) | grep TEXTREL > /dev/null && echo 'TEST-UNEXPECTED-FAIL | check_textrel | We do not want text relocations in libraries and programs' || true
- endif
- 
- ifeq ($(MOZ_WIDGET_TOOLKIT),android)
- # While this is very unlikely (libc being added by the compiler at the end
+@@ -653,17 +653,16 @@ ifeq ($(MOZ_WIDGET_TOOLKIT),android)
  # of the linker command line), if libmozglue.so ends up after libc.so, all
  # hell breaks loose, so better safe than sorry, and check it's actually the
  # case.
@@ -32,6 +13,7 @@ diff --git a/config/config.mk b/config/config.mk
  endif
  
  define CHECK_BINARY
+ $(call CHECK_GLIBC,$(1))
 -$(call CHECK_STDCXX,$(1))
  $(call CHECK_TEXTREL,$(1))
  $(call LOCAL_CHECKS,$(1))
diff --git a/source-stamp.txt b/source-stamp.txt
index 5f0810f..5aae96c 100644
--- a/source-stamp.txt
+++ b/source-stamp.txt
@@ -1,2 +1,2 @@
-REV=146f494b6a79
+REV=9b79adf82b13
 REPO=http://hg.mozilla.org/releases/mozilla-release