Firefox 56.0b12
authorWolfgang Rosenauer <wr@rosenauer.org>
Wed, 20 Sep 2017 21:52:01 +0200
changeset 994 9fc447b00040
parent 993 c360e9aac24a
child 995 37c56dbf929f
child 1002 138bb1a89f97
Firefox 56.0b12
MozillaFirefox/MozillaFirefox.changes
MozillaFirefox/MozillaFirefox.spec
MozillaFirefox/l10n_changesets.txt
firefox-kde.patch
mozilla-kde.patch
mozilla-language.patch
mozilla-nongnome-proxies.patch
mozilla-ntlm-full-path.patch
--- a/MozillaFirefox/MozillaFirefox.changes	Sun Sep 17 10:06:24 2017 +0200
+++ b/MozillaFirefox/MozillaFirefox.changes	Wed Sep 20 21:52:01 2017 +0200
@@ -1,4 +1,13 @@
 -------------------------------------------------------------------
+Sun Sep 17 08:07:43 UTC 2017 - wr@rosenauer.org
+
+- update to Firefox 56.0b12
+  * Find Options/Preferences more quickly with new search function
+  * Media is no longer auto-played when opened in a background tab
+  * Enable CSS Grid Layout View
+- requires NSPR 4.16 and NSS 3.32.1
+
+-------------------------------------------------------------------
 Mon Sep  4 18:27:44 UTC 2017 - wr@rosenauer.org
 
 - update to Firefox 55.0.3
--- a/MozillaFirefox/MozillaFirefox.spec	Sun Sep 17 10:06:24 2017 +0200
+++ b/MozillaFirefox/MozillaFirefox.spec	Wed Sep 20 21:52:01 2017 +0200
@@ -88,6 +88,7 @@
 BuildRequires:  cargo
 BuildRequires:  rust >= 1.15.1
 BuildRequires:  rust-std
+#BuildRequires:  llvm-clang-devel >= 3.9.0
 # libavcodec is required for H.264 support but the
 # openSUSE version is currently not able to play H.264
 # therefore the Packman version is required
@@ -349,6 +350,7 @@
 ac_add_options --enable-update-channel=%{update_channel}
 ac_add_options --with-mozilla-api-keyfile=%{SOURCE18}
 ac_add_options --with-google-api-keyfile=%{SOURCE19}
+ac_add_options --disable-stylo
 %if %branding
 ac_add_options --enable-official-branding
 %endif
@@ -574,7 +576,7 @@
 %{progdir}/application.ini
 %{progdir}/chrome.manifest
 %{progdir}/dependentlibs.list
-%{progdir}/icudt58l.dat
+%{progdir}/icudt59l.dat
 %{progdir}/*.so
 %{progdir}/omni.ja
 %{progdir}/fonts/
--- a/MozillaFirefox/l10n_changesets.txt	Sun Sep 17 10:06:24 2017 +0200
+++ b/MozillaFirefox/l10n_changesets.txt	Wed Sep 20 21:52:01 2017 +0200
@@ -1,96 +1,96 @@
-ach f26087a6a6fd
-af eeac1ca62457
-an a4f5fb57979d
-ar 2f0c4d6a3863
-as ecbc1fafe3fb
-ast 5b37651ec44d
-az d3d47516000e
-be 8c4022c8401a
-bg 0ed29af471d6
-bn-BD d318bfc6fe59
-bn-IN cd84ee209b9c
-br 2be494f41cb3
-bs 18b79a52d6d3
-ca 806e39b4de56
-cak dad0ddc1d964
-cs 61f3b8744fd4
-cy 32cf6d9aa756
-da 554288f1d152
-de bcb514eb5627
-dsb f076d4d42002
-el 13ee5cd21a66
-en-GB 0b2996f2530f
-en-ZA 7e04b235c4f3
-eo bdb64d29938d
-es-AR ce262833fb6c
-es-CL b0a5fe0dd439
-es-ES 0d6629322408
-es-MX 1f8e97ae724d
-et 52df77b40a67
-eu 4a7550dc8250
-fa 45ef3a098c22
-ff 8025b165aead
-fi a9b647644be7
-fr b8b7c09d3f1f
-fy-NL bc875e89b956
-ga-IE 3e543d62ad63
-gd f937bddd78eb
+ach e7adc49e1901
+af a175ec808407
+an c02780857019
+ar 6688a184a4ee
+as 1b201809c30b
+ast 5b0c1d37dfc4
+az 46f153ea025d
+be e639859bd80d
+bg 45ac10a8eebb
+bn-BD 78e42794be0a
+bn-IN b12cd5984010
+br 0c692a161e6a
+bs c566dcff9228
+ca 843005ebdf57
+cak a201a160f1aa
+cs 673e3c5d7e6d
+cy d7785e84b2d5
+da d10cb0ccbfdf
+de cbcbb67b7446
+dsb 91d7f449c8b8
+el 9fae6e0cf73a
+en-GB 4efed4b7a026
+en-ZA 41d36ec15733
+eo 75689f423fee
+es-AR 008298fdc822
+es-CL 0719cf9a02c5
+es-ES 89444d0f0c5e
+es-MX a3b2c719d335
+et f94a081742e2
+eu e70ce824af92
+fa bd0a632a347e
+ff e9ec23d286da
+fi dee2606c0c52
+fr 444f6f248cda
+fy-NL 5442947be711
+ga-IE 520a91e1b869
+gd 7b8d318d7172
 gl df4a43546115
-gn fdc6b354f3a4
-gu-IN 408c035790bb
-he 0c53c3756f7d
-hi-IN 8db91f7f5793
-hr d317c15ea672
-hsb 4fac422aa702
-hu 5671194f7ec1
-hy-AM e86992a0c0ee
-id 00395930bb83
-is f8474352b98d
-it 5698ddc38e5e
-ja 0701d1112fe5
-ja-JP-mac 35cc3be4ea6c
-ka b2f753a8a642
-kab c79bbdfb6e57
-kk 34777b3d0e58
+gn de90f7d4ad27
+gu-IN 49c0059e7b20
+he 14abb07c8067
+hi-IN 627e4866fa52
+hr 840d6fce9f2d
+hsb 79b769f56afb
+hu 75d6acab27ff
+hy-AM 3543e3c61d51
+id 80d249bfce07
+is df02eb864aba
+it 54ebd710b0b9
+ja 34cddaa3f554
+ja-JP-mac 1cca7e5654d2
+ka ee6c8ed935e1
+kab f53aac551d7a
+kk 07823d99b937
 km 3bf31b0b6d9e
-kn 085cc4cfccad
-ko 2a8956fc58a2
-lij 217da84c31d3
-lt f8beb0ee9ef4
-lv a2d7fa888232
-mai b78d319868ff
-mk 26b755e4f87b
-ml 818f2d7fc3b1
-mr b84d162a2888
-ms e5b008cb44eb
-my 4a0dc350bdec
-nb-NO d50a43efc007
-nl a8f7ad7a0e39
-nn-NO e00fbf3066c1
-or 11e8e75808ae
-pa-IN f01bcb8c13a2
-pl d76f3ba7ebd5
-pt-BR 7cf0629777d1
-pt-PT a762c23994b3
-rm f16da0c1a769
-ro 6538d74548a9
-ru 4feb4e4200f5
+kn c3db01aad2bf
+ko 9508383b1bb7
+lij c585863b419f
+lt 74e2d1cc81a1
+lv 6e57fc56b250
+mai 7c33a3406453
+mk b97e85f1e93e
+ml de8be9445c41
+mr 61ad0573f895
+ms 25a747386aab
+my 088ce3f4319d
+nb-NO 1d197e5f990c
+nl 5676db0716a9
+nn-NO fcd11b7086e5
+or f21324a0ed10
+pa-IN 4b71dd06d0e8
+pl b71e63bbbddd
+pt-BR e0e7a5821812
+pt-PT 333e82cca862
+rm 6b8e6367d9d0
+ro 84d897edfd6c
+ru aee79cd84afb
 si d91975c0b4d8
-sk 0b32ca1321b2
-sl ad8ee6b5e9eb
-son abb58457c998
-sq 4374d5e275dd
-sr baec6e6f600d
-sv-SE bf5faf4c09d4
-ta 8de385a48ec1
-te 0064b2051ea7
-th 52f4abb2b927
-tr d9f5398e98f8
-uk a95815527227
-ur a8390b38a5dc
-uz 6a7dac5f89c9
-vi d931c17a2ff7
-xh c2ac7c43e358
-zh-CN e61f2d1a43f5
-zh-TW 75d29bef92f2
+sk 8fa0e53e20c2
+sl 2abb9b1c667a
+son be7a56e6d7fe
+sq d9137ed745db
+sr 6839a5986d5b
+sv-SE 621c743144e6
+ta aae2aa13babf
+te d9cf4d3c33e0
+th 34c1c62bb3cf
+tr 921c1b013006
+uk 03b177ac056c
+ur d97e35bba2d8
+uz 4807645f175b
+vi fa843de1fbed
+xh 7011a348aa3b
+zh-CN 3ebe225f8ae8
+zh-TW 99c6d5ce2901
 
--- a/firefox-kde.patch	Sun Sep 17 10:06:24 2017 +0200
+++ b/firefox-kde.patch	Wed Sep 20 21:52:01 2017 +0200
@@ -1,11 +1,11 @@
 # HG changeset patch
-# Parent  9ccba8e6b5fad738ce924ff40b4c5aa6f4bc12dd
+# Parent  05209af7fdfec897f5f574c691184ba27049b0ff
 
 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,1306 @@
+@@ -0,0 +1,1320 @@
 +#filter substitution
 +<?xml version="1.0"?>
 +# -*- Mode: HTML -*-
@@ -72,14 +72,9 @@
 +# wishes to include *must* go into the global-scripts.inc file
 +# so that they can be shared by macBrowserOverlay.xul.
 +#include global-scripts.inc
-+<script type="application/javascript" src="chrome://browser/content/nsContextMenu.js"/>
 +
 +<script type="application/javascript" src="chrome://global/content/contentAreaUtils.js"/>
 +
-+<script type="application/javascript" src="chrome://browser/content/downloads/downloads.js"/>
-+<script type="application/javascript" src="chrome://browser/content/downloads/indicator.js"/>
-+<script type="application/javascript" src="chrome://browser/content/places/editBookmarkOverlay.js"/>
-+
 +# All sets except for popupsets (commands, keys, stringbundles and broadcasters) *must* go into the
 +# browser-sets.inc file for sharing with hiddenWindow.xul.
 +#define FULL_BROWSER_WINDOW
@@ -110,9 +105,9 @@
 +                hidden="true"
 +                oncommand="gBrowser.openNonRemoteWindow(TabContextMenu.contextTab);"/>
 +#endif
-+      <menuseparator id="context_sendTabToDevice_separator" hidden="true"/>
++      <menuseparator id="context_sendTabToDevice_separator"/>
 +      <menu id="context_sendTabToDevice" label="&sendTabToDevice.label;"
-+            accesskey="&sendTabToDevice.accesskey;" hidden="true">
++            accesskey="&sendTabToDevice.accesskey;">
 +        <menupopup id="context_sendTabToDevicePopupMenu"
 +                   onpopupshowing="gSync.populateSendTabToDevicesMenu(event.target, TabContextMenu.contextTab.linkedBrowser.currentURI.spec, TabContextMenu.contextTab.linkedBrowser.contentTitle);"/>
 +      </menu>
@@ -455,58 +450,42 @@
 +      </hbox>
 +    </panel>
 +
-+    <panel id="page-action-panel"
++#ifdef MOZ_PHOTON_THEME
++    <panel id="pageActionPanel"
 +           class="cui-widget-panel"
 +           role="group"
 +           type="arrow"
 +           hidden="true"
 +           flip="slide"
 +           position="bottomcenter topright"
-+           noautofocus="true">
-+      <photonpanelmultiview id="page-action-multiView"
-+                            mainViewId="page-action-mainView">
-+        <panelview id="page-action-mainView"
++           tabspecific="true"
++           noautofocus="true"
++           context="pageActionPanelContextMenu"
++           oncontextmenu="BrowserPageActions.onContextMenu(event);"
++           copyURL-title="&copyURLCmd.label;"
++           emailLink-title="&emailPageCmd.label;"
++           sendToDevice-title="&sendToDevice.label2;"
++           sendToDevice-notReadyTitle="&sendToDevice.syncNotReady.label;">
++      <photonpanelmultiview id="pageActionPanelMultiView"
++                            mainViewId="pageActionPanelMainView"
++                            viewCacheId="appMenu-viewCache">
++        <panelview id="pageActionPanelMainView"
 +                   class="PanelUI-subView">
-+          <vbox class="panel-subview-body">
-+            <toolbarbutton id="page-action-bookmark-button"
-+                           class="subviewbutton subviewbutton-iconic"
-+                           observes="bookmarkThisPageBroadcaster"
-+                           command="Browser:AddBookmarkAs"
-+                           onclick="gPageActionButton.panel.hidePopup();"/>
-+            <toolbarseparator/>
-+            <toolbarbutton id="page-action-copy-url-button"
-+                           class="subviewbutton subviewbutton-iconic"
-+                           label="&copyURLCmd.label;"
-+                           command="PageAction:copyURL"/>
-+            <toolbarbutton id="page-action-email-link-button"
-+                           class="subviewbutton subviewbutton-iconic"
-+                           label="&emailPageCmd.label;"
-+                           command="PageAction:emailLink"/>
-+            <toolbarbutton id="page-action-send-to-device-button"
-+                           class="subviewbutton subviewbutton-iconic subviewbutton-nav"
-+                           label="&sendToDevice.label;"
-+                           closemenu="none"
-+                           oncommand="gPageActionButton.showSendToDeviceView(this);"/>
-+          </vbox>
-+        </panelview>
-+        <panelview id="page-action-sendToDeviceView"
-+                   class="PanelUI-subView"
-+                   title="&sendToDevice.viewTitle;">
-+          <vbox id="page-action-sendToDeviceView-body" class="panel-subview-body">
-+            <toolbarbutton id="page-action-sendToDevice-fxa-button"
-+                           class="subviewbutton subviewbutton-iconic"
-+                           label="&syncBrand.fxAccount.label;"
-+                           shortcut="&sendToDevice.fxaRequired.label;"
-+                           oncommand="gPageActionButton.fxaButtonClicked();"/>
-+            <toolbarbutton id="page-action-no-devices-button"
-+                           class="subviewbutton"
-+                           label="&sendToDevice.noDevices.label;"
-+                           disabled="true"/>
-+          </vbox>
++          <vbox class="panel-subview-body"/>
 +        </panelview>
 +      </photonpanelmultiview>
 +    </panel>
 +
++    <menupopup id="pageActionPanelContextMenu"
++               onpopupshowing="BrowserPageActions.onContextMenuShowing(event, this);">
++      <menuitem id="pageActionPanelContextMenu-toggleUrlbar"
++                add-label="&pageAction.addToUrlbar.label;"
++                remove-label="&pageAction.removeFromUrlbar.label;"
++                label="&pageAction.addToUrlbar.label;"
++                oncommand="BrowserPageActions.toggleShownInUrlbarForContextAction();"/>
++    </menupopup>
++#endif
++
 +    <!-- Bookmarks and history tooltip -->
 +    <tooltip id="bhTooltip"/>
 +
@@ -790,11 +769,19 @@
 +                           class="toolbarbutton-1"
 +                           command="Browser:ReloadOrDuplicate"
 +                           onclick="checkForMiddleClick(this, event);"
-+                           tooltip="dynamic-shortcut-tooltip"/>
++                           tooltip="dynamic-shortcut-tooltip">
++              <box class="toolbarbutton-animatable-box">
++                <image class="toolbarbutton-animatable-image"/>
++              </box>
++            </toolbarbutton>
 +            <toolbarbutton id="stop-button"
 +                           class="toolbarbutton-1"
 +                           command="Browser:Stop"
-+                           tooltip="dynamic-shortcut-tooltip"/>
++                           tooltip="dynamic-shortcut-tooltip">
++              <box class="toolbarbutton-animatable-box">
++                <image class="toolbarbutton-animatable-image"/>
++              </box>
++            </toolbarbutton>
 +          </toolbaritem>
 +#endif
 +          <hbox id="urlbar-wrapper" flex="1">
@@ -818,7 +805,6 @@
 +                     showcommentcolumn="true"
 +                     showimagecolumn="true"
 +                     enablehistory="true"
-+                     maxrows="10"
 +                     newlines="stripsurroundingwhitespace"
 +                     ontextentered="this.handleCommand(param);"
 +                     ontextreverted="return this.handleRevert();"
@@ -854,8 +840,8 @@
 +                </box>
 +                <box id="notification-popup-box"
 +                     hidden="true"
-+                     onmouseover="document.getElementById('identity-icon').classList.add('no-hover');"
-+                     onmouseout="document.getElementById('identity-icon').classList.remove('no-hover');"
++                     onmouseover="document.getElementById('identity-box').classList.add('no-hover');"
++                     onmouseout="document.getElementById('identity-box').classList.remove('no-hover');"
 +                     align="center">
 +                  <image id="default-notification-icon" class="notification-anchor-icon" role="button"
 +                         tooltiptext="&urlbar.defaultNotificationAnchor.tooltip;"/>
@@ -918,6 +904,24 @@
 +                       onclick="FullZoom.reset();"
 +                       tooltip="dynamic-shortcut-tooltip"
 +                       hidden="true"/>
++#ifdef MOZ_PHOTON_THEME
++                <image id="pageActionButton"
++                       class="urlbar-icon"
++                       tooltiptext="&pageActionButton.tooltip;"
++                       onclick="BrowserPageActions.mainButtonClicked(event);"/>
++                <hbox id="star-button-box" hidden="true">
++                  <image id="star-button"
++                         class="urlbar-icon"
++                         onclick="BookmarkingUI.onStarCommand(event);">
++                    <observes element="bookmarkThisPageBroadcaster" attribute="starred"/>
++                    <observes element="bookmarkThisPageBroadcaster" attribute="tooltiptext"/>
++                  </image>
++                  <hbox id="star-button-animatable-box">
++                    <image id="star-button-animatable-image"
++                           onclick="BookmarkingUI.onStarCommand(event);"/>
++                  </hbox>
++                </hbox>
++#endif
 +              </hbox>
 +              <hbox id="userContext-icons" hidden="true">
 +                <label id="userContext-label"/>
@@ -937,11 +941,6 @@
 +                             class="chromeclass-toolbar-additional"
 +                             command="Browser:Stop"
 +                             tooltip="dynamic-shortcut-tooltip"/>
-+#else
-+              <toolbarbutton id="urlbar-page-action-button"
-+                             class="chromeclass-toolbar-additional"
-+                             tooltiptext="&pageActionButton.tooltip;"
-+                             onclick="gPageActionButton.onEvent(event);"/>
 +#endif
 +            </textbox>
 +          </hbox>
@@ -957,7 +956,11 @@
 +        <toolbarbutton id="bookmarks-menu-button"
 +                       class="toolbarbutton-1 chromeclass-toolbar-additional"
 +                       removable="true"
++#ifdef MOZ_PHOTON_THEME
++                       type="menu"
++#else
 +                       type="menu-button"
++#endif
 +                       label="&bookmarksMenuButton.label;"
 +                       tooltip="dynamic-shortcut-tooltip"
 +                       anchor="dropmarker"
@@ -974,7 +977,7 @@
 +                     placespopup="true"
 +                     context="placesContext"
 +                     openInTabs="children"
-+                     oncommand="BookmarksEventHandler.onCommand(event, this.parentNode._placesView);"
++                     oncommand="BookmarksEventHandler.onCommand(event);"
 +                     onclick="BookmarksEventHandler.onClick(event, this.parentNode._placesView);"
 +                     onpopupshowing="BookmarkingUI.onPopupShowing(event);
 +                                     BookmarkingUI.attachPlacesView(event, this);"
@@ -1083,7 +1086,13 @@
 +      <toolbarbutton id="nav-bar-overflow-button"
 +                     class="toolbarbutton-1 chromeclass-toolbar-additional overflow-button"
 +                     skipintoolbarset="true"
-+                     tooltiptext="&navbarOverflow.label;"/>
++                     tooltiptext="&navbarOverflow.label;">
++#ifdef MOZ_PHOTON_ANIMATIONS
++        <box class="toolbarbutton-animatable-box">
++          <image class="toolbarbutton-animatable-image"/>
++        </box>
++#endif
++      </toolbarbutton>
 +
 +      <toolbaritem id="PanelUI-button"
 +                   class="chromeclass-toolbar-additional"
@@ -1138,7 +1147,7 @@
 +              id="PlacesToolbar"
 +              context="placesContext"
 +              onclick="BookmarksEventHandler.onClick(event, this._placesView);"
-+              oncommand="BookmarksEventHandler.onCommand(event, this._placesView);"
++              oncommand="BookmarksEventHandler.onCommand(event);"
 +              tooltip="bhTooltip"
 +              popupsinherittooltip="true">
 +          <hbox flex="1">
@@ -1207,8 +1216,13 @@
 +                     tooltip="dynamic-shortcut-tooltip"/>
 +#ifdef MOZ_PHOTON_THEME
 +      <toolbarbutton id="library-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
-+                     oncommand="PanelUI.showSubView('appMenu-libraryView', this, null, true);"
-+                     label="&places.library.title;"/>
++                     oncommand="PanelUI.showSubView('appMenu-libraryView', this, null, event);"
++                     closemenu="none"
++                     label="&places.library.title;">
++        <box class="toolbarbutton-animatable-box">
++          <image class="toolbarbutton-animatable-image"/>
++        </box>
++      </toolbarbutton>
 +#endif
 +    </toolbarpalette>
 +  </toolbox>
@@ -1397,7 +1411,7 @@
 diff --git a/browser/components/preferences/in-content/main.js b/browser/components/preferences/in-content/main.js
 --- a/browser/components/preferences/in-content/main.js
 +++ b/browser/components/preferences/in-content/main.js
-@@ -39,16 +39,23 @@ var gMainPane = {
+@@ -41,16 +41,23 @@ var gMainPane = {
          // way to get all file type association prefs. So we don't know
          // when the user will select the default.  We refresh here periodically
          // in case the default changes. On other Windows OS's defaults can also
@@ -1421,7 +1435,7 @@
      defaultPerformancePref.addEventListener("change", () => {
        this.updatePerformanceSettingsBox({duringChangeEvent: true});
      });
-@@ -780,16 +787,27 @@ var gMainPane = {
+@@ -875,16 +882,27 @@ var gMainPane = {
        let alwaysCheckPref = document.getElementById("browser.shell.checkDefaultBrowser");
        alwaysCheckPref.value = true;
  
@@ -1452,7 +1466,7 @@
 diff --git a/browser/components/shell/moz.build b/browser/components/shell/moz.build
 --- a/browser/components/shell/moz.build
 +++ b/browser/components/shell/moz.build
-@@ -37,16 +37,18 @@ if CONFIG['OS_ARCH'] == 'WINNT':
+@@ -38,16 +38,18 @@ if CONFIG['OS_ARCH'] == 'WINNT':
      ]
  elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
      SOURCES += [
@@ -1764,7 +1778,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
-@@ -662,16 +662,18 @@
+@@ -664,16 +664,18 @@
  @RESPATH@/browser/defaults/blocklists
  @RESPATH@/browser/defaults/pinning
  
--- a/mozilla-kde.patch	Sun Sep 17 10:06:24 2017 +0200
+++ b/mozilla-kde.patch	Wed Sep 20 21:52:01 2017 +0200
@@ -1,5 +1,5 @@
 # HG changeset patch
-# Parent  172cd661ceed38b3161c6246f6729f4d8370dce3
+# Parent  faadbf89d1cb02eefec4c5dfd3ab86bc20d815d5
 Description: Add KDE integration to Firefox (toolkit parts)
 Author: Wolfgang Rosenauer <wolfgang@rosenauer.org>
 Author: Lubos Lunak <lunak@suse.com>
@@ -9,7 +9,7 @@
 diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
 --- a/modules/libpref/Preferences.cpp
 +++ b/modules/libpref/Preferences.cpp
-@@ -32,16 +32,17 @@
+@@ -33,16 +33,17 @@
  #include "nsIZipReader.h"
  #include "nsPrefBranch.h"
  #include "nsXPIDLString.h"
@@ -27,7 +27,7 @@
  #include "prefread.h"
  #include "prefapi_private_data.h"
  
-@@ -1219,16 +1220,34 @@ pref_LoadPrefsInDir(nsIFile* aDir, char 
+@@ -1435,16 +1436,34 @@ pref_LoadPrefsInDir(nsIFile* aDir, char 
  
  static nsresult pref_LoadPrefsInDirList(const char *listId)
  {
@@ -62,7 +62,7 @@
      return NS_OK;
  
    bool hasMore;
-@@ -1244,17 +1263,17 @@ static nsresult pref_LoadPrefsInDirList(
+@@ -1460,17 +1479,17 @@ static nsresult pref_LoadPrefsInDirList(
  
      nsAutoCString leaf;
      path->GetNativeLeafName(leaf);
@@ -81,7 +81,7 @@
  {
    nsZipItemPtr<char> manifest(jarReader, name, true);
    NS_ENSURE_TRUE(manifest.Buffer(), NS_ERROR_NOT_AVAILABLE);
-@@ -1348,24 +1367,36 @@ static nsresult pref_InitInitialObjects(
+@@ -1566,24 +1585,36 @@ 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)
@@ -706,7 +706,7 @@
 new file mode 100644
 --- /dev/null
 +++ b/toolkit/content/widgets/preferences-kde.xml
-@@ -0,0 +1,1380 @@
+@@ -0,0 +1,1409 @@
 +<?xml version="1.0"?>
 +
 +<!DOCTYPE bindings [
@@ -742,19 +742,19 @@
 +      <method name="_constructAfterChildren">
 +      <body>
 +      <![CDATA[
-+      // This method will be called after each one of the child
++      // This method will be called after the last of the child
 +      // <preference> elements is constructed. Its purpose is to propagate
-+      // the values to the associated form elements
++      // the values to the associated form elements. Sometimes the code for
++      // some <preference> initializers depend on other <preference> elements
++      // being initialized so we wait and call updateElements on all of them
++      // once the last one has been constructed. See bugs 997570 and 992185.
 +
 +      var elements = this.getElementsByTagName("preference");
 +      for (let element of elements) {
-+        if (!element._constructed) {
-+          return;
-+        }
-+      }
-+      for (let element of elements) {
 +        element.updateElements();
 +      }
++
++      this._constructAfterChildrenCalled = true;
 +      ]]>
 +      </body>
 +      </method>
@@ -821,6 +821,25 @@
 +          ]]>
 +        </getter>
 +      </property>
++
++      <!-- We want to call _constructAfterChildren after all child
++           <preference> elements have been constructed. To do this, we get
++           and store the node list of all child <preference> elements in the
++           constructor, and maintain a count which is incremented in the
++           constructor of <preference>. _constructAfterChildren is called
++           when the count matches the length of the list. -->
++      <field name="_constructedChildrenCount">0</field>
++      <field name="_preferenceChildren">null</field>
++      <!-- Some <preference> elements are added dynamically after
++           _constructAfterChildren has already been called - we want to
++           avoid looping over all of them again in this case so we remember
++           if we already called it. -->
++      <field name="_constructAfterChildrenCalled">false</field>
++      <constructor>
++      <![CDATA[
++        this._preferenceChildren = this.getElementsByTagName("preference");
++      ]]>
++      </constructor>
 +    </implementation>
 +  </binding>
 +
@@ -828,8 +847,6 @@
 +    <implementation>
 +      <constructor>
 +      <![CDATA[
-+        this._constructed = true;
-+
 +        // if the element has been inserted without the name attribute set,
 +        // we have nothing to do here
 +        if (!this.name)
@@ -862,9 +879,21 @@
 +
 +          // Don't use the value setter here, we don't want updateElements to be prematurely fired.
 +          this._value = preference ? preference.value : this.valueFromPreferences;
-+        } else
++        } else {
 +          this._value = this.valueFromPreferences;
-+        this.preferences._constructAfterChildren();
++        }
++        if (this.preferences._constructAfterChildrenCalled) {
++          // This <preference> was added after _constructAfterChildren() was already called.
++          // We can directly call updateElements().
++          this.updateElements();
++          return;
++        }
++        this.preferences._constructedChildrenCount++;
++        if (this.preferences._constructedChildrenCount ==
++            this.preferences._preferenceChildren.length) {
++          // This is the last <preference>, time to updateElements() on all of them.
++          this.preferences._constructAfterChildren();
++        }
 +      ]]>
 +      </constructor>
 +      <destructor>
@@ -2090,7 +2119,7 @@
 diff --git a/toolkit/mozapps/downloads/nsHelperAppDlg.js b/toolkit/mozapps/downloads/nsHelperAppDlg.js
 --- a/toolkit/mozapps/downloads/nsHelperAppDlg.js
 +++ b/toolkit/mozapps/downloads/nsHelperAppDlg.js
-@@ -625,17 +625,17 @@ nsUnknownContentTypeDialog.prototype = {
+@@ -628,17 +628,17 @@ nsUnknownContentTypeDialog.prototype = {
        else
          typeString = mimeInfo.MIMEType;
      }
@@ -2109,7 +2138,7 @@
    },
  
    // Returns true if opening the default application makes sense.
-@@ -799,17 +799,17 @@ nsUnknownContentTypeDialog.prototype = {
+@@ -802,17 +802,17 @@ nsUnknownContentTypeDialog.prototype = {
        switch (this.dialogElement("openHandler").selectedIndex) {
        case 0:
          // No app need be specified in this case.
@@ -2128,15 +2157,15 @@
      this.mDialog.document.documentElement.getButton("accept").disabled = !ok;
    },
  
-@@ -1066,30 +1066,56 @@ nsUnknownContentTypeDialog.prototype = {
+@@ -1067,30 +1067,57 @@ nsUnknownContentTypeDialog.prototype = {
+ 
+       if (params.handlerApp &&
            params.handlerApp.executable &&
            params.handlerApp.executable.isFile()) {
          // Remember the file they chose to run.
          this.chosenApp = params.handlerApp;
        }
-     }
-     else {
- #if MOZ_WIDGET_GTK == 3
+     } else if ("@mozilla.org/applicationchooser;1" in Components.classes) {
 -      var nsIApplicationChooser = Components.interfaces.nsIApplicationChooser;
 -      var appChooser = Components.classes["@mozilla.org/applicationchooser;1"]
 -                                 .createInstance(nsIApplicationChooser);
@@ -2147,7 +2176,8 @@
 -           contentTypeDialogObj.chosenApp = aResult.QueryInterface(Components.interfaces.nsILocalHandlerApp);
 +      // handle the KDE case which is implemented in the filepicker
 +      // therefore falling back to Gtk2 like behaviour if KDE is running
-+      // FIXME this should be better handled in the nsIApplicationChooser interface
++      // FIXME this should be better handled in the nsIApplicationChooser
++      // interface
 +      var env = Components.classes["@mozilla.org/process/environment;1"]
 +                          .getService(Components.interfaces.nsIEnvironment);
 +      if (env.get('KDE_FULL_SESSION') == "true")
@@ -2190,7 +2220,7 @@
 +        // The finishChooseApp is called from appChooserCallback
 +        return;
 +      }
- #else
+     } else {
        var nsIFilePicker = Components.interfaces.nsIFilePicker;
        var fp = Components.classes["@mozilla.org/filepicker;1"]
                           .createInstance(nsIFilePicker);
--- a/mozilla-language.patch	Sun Sep 17 10:06:24 2017 +0200
+++ b/mozilla-language.patch	Wed Sep 20 21:52:01 2017 +0200
@@ -1,13 +1,13 @@
 # HG changeset patch
 # User Wolfgang Rosenauer <wr@rosenauer.org>
 # Parent 5a29924228527f8882c83cf62d470963ea1ce62e
-# Parent  4f39ed617c2f151a3a15903c7ae4471b66774e9e
+# Parent  242f2521ed48bb63b91582956b5e4af80bcb3378
 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
-@@ -114,16 +114,17 @@ nsLocaleService::nsLocaleService(void)
+@@ -116,16 +116,17 @@ nsLocaleService::nsLocaleService(void)
      NS_ENSURE_SUCCESS_VOID(rv);
  #endif
  #if defined(XP_UNIX) && !defined(XP_MACOSX)
@@ -25,7 +25,7 @@
      for( i = 0; i < LocaleListLength; i++ ) {
          nsresult result;
          // setlocale( , "") evaluates LC_* and LANG
-@@ -149,16 +150,36 @@ nsLocaleService::nsLocaleService(void)
+@@ -151,16 +152,37 @@ nsLocaleService::nsLocaleService(void)
              } else {
                  CopyASCIItoUTF16(lang, platformLocale);
                  result = nsPosixLocale::GetXPLocale(lang, xpLocale);
@@ -54,11 +54,12 @@
 +            }
 +          }
 +        }
++
          resultLocale->AddCategory(category, xpLocale);
          resultLocale->AddCategory(category_platform, platformLocale);
      }
      mSystemLocale = do_QueryInterface(resultLocale);
      mApplicationLocale = do_QueryInterface(resultLocale);
-        
+ 
  #endif // XP_UNIX
  
--- a/mozilla-nongnome-proxies.patch	Sun Sep 17 10:06:24 2017 +0200
+++ b/mozilla-nongnome-proxies.patch	Wed Sep 20 21:52:01 2017 +0200
@@ -9,7 +9,7 @@
 diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
 --- a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
 +++ b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
-@@ -53,23 +53,27 @@ nsUnixSystemProxySettings::GetMainThread
+@@ -54,23 +54,27 @@ nsUnixSystemProxySettings::GetMainThread
    // dbus prevents us from being threadsafe, but this routine should not block anyhow
    *aMainThreadOnly = true;
    return NS_OK;
@@ -37,7 +37,7 @@
 +      mGConf = do_GetService(NS_GCONFSERVICE_CONTRACTID);
 +    }
    }
-   
+ 
    return NS_OK;
  }
  
--- a/mozilla-ntlm-full-path.patch	Sun Sep 17 10:06:24 2017 +0200
+++ b/mozilla-ntlm-full-path.patch	Wed Sep 20 21:52:01 2017 +0200
@@ -1,7 +1,7 @@
 # HG changeset patch
 # User Petr Cerny <pcerny@novell.com>
 # Parent 7308e4a7c1f769f4bbbc90870b849cadd99495a6
-# Parent  03565086f1e230cf6f0f6c01bf9a792c732de50b
+# Parent  fe1932b7223a298863663244accc524d474a9f6d
 Bug 634334 - call to the ntlm_auth helper fails
 
 diff --git a/extensions/auth/nsAuthSambaNTLM.cpp b/extensions/auth/nsAuthSambaNTLM.cpp
@@ -25,4 +25,4 @@
      };
  
      bool isOK = SpawnIOChild(const_cast<char* const*>(args), &mChildPID, &mFromChildFD, &mToChildFD);
-     if (!isOK)  
+     if (!isOK)