Firefox 66.0 firefox66
authorWolfgang Rosenauer <wr@rosenauer.org>
Tue, 19 Mar 2019 09:48:05 +0100
branchfirefox66
changeset 1089 eca1c1f2fe50
parent 1087 5fab52cd743d
Firefox 66.0
MozillaFirefox/MozillaFirefox.changes
MozillaFirefox/MozillaFirefox.spec
MozillaFirefox/create-tar.sh
MozillaFirefox/mozilla-bmo256180.patch
MozillaFirefox/source-stamp.txt
firefox-kde.patch
mozilla-bmo1463035.patch
mozilla-bmo256180.patch
mozilla-kde.patch
series
--- a/MozillaFirefox/MozillaFirefox.changes	Sun Mar 17 09:57:22 2019 +0100
+++ b/MozillaFirefox/MozillaFirefox.changes	Tue Mar 19 09:48:05 2019 +0100
@@ -1,4 +1,36 @@
 -------------------------------------------------------------------
+Sun Mar 17 10:08:51 UTC 2019 - Wolfgang Rosenauer <wr@rosenauer.org>
+
+- Mozilla Firefox 66.0
+  * Increased content processes to 8
+  * Added capability to search through open tabs from the tab overflow menu
+  * New backend for the storage.local WebExtensions API, providing
+    I/O performance improvements when the extension updates a small
+    subset of the stored data
+  * WebExtension keyboard shortcuts can now be managed or overridden
+    from about:addons
+  * Improved scrolling behavior: Firefox will now attempt to keep content
+    from jumping around while a page is loading by supporting scroll
+    anchoring
+  * New about:privatebrowsing with search
+  * A certificate error page now notifies the user of the name of the
+    certificate issuer that breaks HTTPs connections on intercepted
+    connections to help troubleshooting possible anti-virus software
+    issues.
+  * Fixed an performance issue some Linux users experienced with the
+    Downloads panel (bmo#1517101)
+  * Firefox now blocks all autoplay media with sound by default. Users
+    can add individual sites to an exceptions list or turn the blocking
+    off.
+  * System title bar is hidden by default to match Gnome guideline
+- updated build/runtime requirements
+  * mozilla-nss >= 3.42.1
+  * cargo/rust >= 1.31
+  * rust-cbindgen >= 0.6.8
+- removed obsolete patch
+  * mozilla-bmo256180.patch
+
+-------------------------------------------------------------------
 Tue Mar  5 10:17:01 UTC 2019 - Stephan Kulow <coolo@suse.com>
 
 - Do not hardcode nodejs8 but leave the prefer to the distribution
--- a/MozillaFirefox/MozillaFirefox.spec	Sun Mar 17 09:57:22 2019 +0100
+++ b/MozillaFirefox/MozillaFirefox.spec	Tue Mar 19 09:48:05 2019 +0100
@@ -18,13 +18,13 @@
 
 
 # changed with every update
-%define major          65
-%define mainver        %major.0.1
-%define orig_version   65.0.1
+%define major          66
+%define mainver        %major.0
+%define orig_version   66.0
 %define orig_suffix    %{nil}
 %define update_channel release
 %define branding       1
-%define releasedate    20190211233335
+%define releasedate    20190314174725
 %define source_prefix  firefox-%{orig_version}
 
 # always build with GCC as SUSE Security Team requires that
@@ -69,7 +69,7 @@
 %else
 BuildRequires:  gcc-c++
 %endif
-BuildRequires:  cargo >= 1.30
+BuildRequires:  cargo >= 1.31
 BuildRequires:  libXcomposite-devel
 BuildRequires:  libcurl-devel
 BuildRequires:  libidl-devel
@@ -78,13 +78,14 @@
 BuildRequires:  libproxy-devel
 BuildRequires:  makeinfo
 BuildRequires:  mozilla-nspr-devel >= 4.20
-BuildRequires:  mozilla-nss-devel >= 3.41
+BuildRequires:  mozilla-nss-devel >= 3.42.1
+BuildRequires:  nasm >= 2.13
 BuildRequires:  nodejs >= 8.11
 BuildRequires:  python-devel
 BuildRequires:  python2-xml
 BuildRequires:  python3 >= 3.5
-BuildRequires:  rust >= 1.30
-BuildRequires:  rust-cbindgen >= 0.6.7
+BuildRequires:  rust >= 1.31
+BuildRequires:  rust-cbindgen >= 0.6.8
 BuildRequires:  startup-notification-devel
 BuildRequires:  unzip
 BuildRequires:  update-desktop-files
@@ -160,7 +161,6 @@
 Patch3:         mozilla-ntlm-full-path.patch
 Patch4:         mozilla-openaes-decl.patch
 Patch7:         mozilla-aarch64-startup-crash.patch
-Patch8:         mozilla-bmo256180.patch
 Patch9:         mozilla-bmo1463035.patch
 Patch10:        mozilla-cubeb-noreturn.patch
 # Firefox/browser
@@ -267,7 +267,6 @@
 %patch3 -p1
 %patch4 -p1
 %patch7 -p1
-%patch8 -p1
 %patch9 -p1
 %patch10 -p1
 # Firefox
@@ -359,7 +358,8 @@
 #ac_add_options --enable-chrome-format=jar
 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 --with-google-location-service-api-keyfile=%{SOURCE19}
+ac_add_options --with-google-safebrowsing-api-keyfile=%{SOURCE19}
 ac_add_options --with-unsigned-addon-scopes=app
 %if %branding
 ac_add_options --enable-official-branding
--- a/MozillaFirefox/create-tar.sh	Sun Mar 17 09:57:22 2019 +0100
+++ b/MozillaFirefox/create-tar.sh	Tue Mar 19 09:48:05 2019 +0100
@@ -7,8 +7,8 @@
 
 CHANNEL="release"
 BRANCH="releases/mozilla-$CHANNEL"
-RELEASE_TAG="1ea7b51ef5bb91bdc34fb7406fd4d35ed7961363"
-VERSION="65.0.1"
+RELEASE_TAG="164a57c0cdf0088e786e6b966e34fdd3799671d1"
+VERSION="66.0"
 VERSION_SUFFIX=""
 LOCALE_FILE="firefox-$VERSION/browser/locales/l10n-changesets.json"
 
--- a/MozillaFirefox/mozilla-bmo256180.patch	Sun Mar 17 09:57:22 2019 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-../mozilla-bmo256180.patch
\ No newline at end of file
--- a/MozillaFirefox/source-stamp.txt	Sun Mar 17 09:57:22 2019 +0100
+++ b/MozillaFirefox/source-stamp.txt	Tue Mar 19 09:48:05 2019 +0100
@@ -1,2 +1,2 @@
-REV=1ea7b51ef5bb
+REV=164a57c0cdf0
 REPO=http://hg.mozilla.org/releases/mozilla-release
--- a/firefox-kde.patch	Sun Mar 17 09:57:22 2019 +0100
+++ b/firefox-kde.patch	Tue Mar 19 09:48:05 2019 +0100
@@ -1,11 +1,11 @@
 # HG changeset patch
-# Parent  693f0baece29cc958a7d91b89fd12e3b89a502e3
+# Parent  87262204aa945e6fce864193d103a93659bf76f6
 
 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,1395 @@
+@@ -0,0 +1,1408 @@
 +#filter substitution
 +<?xml version="1.0"?>
 +# -*- Mode: HTML -*-
@@ -276,6 +276,8 @@
 +           noautofocus="true"
 +           hidden="true"
 +           flip="none"
++           consumeoutsideclicks="never"
++           norolluponanchor="true"
 +           level="parent">
 +      <html:div class="urlbarView-body-outer">
 +        <html:div class="urlbarView-body-inner">
@@ -579,6 +581,7 @@
 +           position="bottomcenter topright"
 +           tabspecific="true"
 +           noautofocus="true"
++           pocket-title="&saveToPocketCmd.label;"
 +           copyURL-title="&pageAction.copyLink.label;"
 +           emailLink-title="&emailPageCmd.label;"
 +           sendToDevice-notReadyTitle="&sendToDevice.syncNotReady.label;"
@@ -771,13 +774,11 @@
 +               aria-label="&tabsToolbar.label;"
 +               context="toolbar-context-menu"
 +               flex="1">
-+        <vbox flex="1" class="toolbar-items">
-+          <spacer flex="1000"/>
 +
++        <hbox class="titlebar-spacer" type="pre-tabs"/>
++
++        <hbox flex="1" align="end" class="toolbar-items">
 +          <hbox id="TabsToolbar-customization-target" flex="1">
-+            <hbox class="titlebar-spacer" type="pre-tabs"
-+                  skipintoolbarset="true"/>
-+
 +            <tabs id="tabbrowser-tabs"
 +                  flex="1"
 +                  setfocus="false"
@@ -805,19 +806,15 @@
 +                           label="&listAllTabs.label;"
 +                           tooltiptext="&listAllTabs.label;"
 +                           removable="false"/>
++          </hbox>
++        </hbox>
 +
-+            <hbox class="titlebar-spacer" type="post-tabs"
-+                  ordinal="1000"
-+                  skipintoolbarset="true"/>
-+          </hbox>
-+        </vbox>
++        <hbox class="titlebar-spacer" type="post-tabs"/>
 +
 +#ifndef XP_MACOSX
 +        <button class="accessibility-indicator" tooltiptext="&accessibilityIndicator.tooltip;"
-+                ordinal="1000"
-+                aria-live="polite" skipintoolbarset="true"/>
-+        <hbox class="private-browsing-indicator" skipintoolbarset="true"
-+              ordinal="1000"/>
++                aria-live="polite"/>
++        <hbox class="private-browsing-indicator"/>
 +#endif
 +
 +#include titlebar-items.inc.xul
@@ -1045,7 +1042,22 @@
 +                       class="urlbar-icon urlbar-page-action"
 +                       role="button"
 +                       tooltiptext="&pageActionButton.tooltip;"
-+                       onmousedown="BrowserPageActions.mainButtonClicked(event);"/>
++                       onmousedown="BrowserPageActions.mainButtonClicked(event);"
++                       onkeypress="BrowserPageActions.mainButtonClicked(event);"/>
++                <hbox id="pocket-button-box"
++                      hidden="true"
++                      class="urlbar-icon-wrapper urlbar-page-action"
++                      onclick="BrowserPageActions.doCommandForAction(PageActions.actionForID('pocket'), event, this);">
++                  <image id="pocket-button"
++                         class="urlbar-icon"
++                         tooltiptext="&pocketButton.tooltiptext;"
++                         role="button"/>
++                  <hbox id="pocket-button-animatable-box">
++                    <image id="pocket-button-animatable-image"
++                           tooltiptext="&pocketButton.tooltiptext;"
++                           role="presentation"/>
++                  </hbox>
++                </hbox>
 +                <hbox id="star-button-box"
 +                      hidden="true"
 +                      class="urlbar-icon-wrapper urlbar-page-action"
@@ -1097,6 +1109,7 @@
 +        <toolbarbutton id="library-button" class="toolbarbutton-1 chromeclass-toolbar-additional subviewbutton-nav"
 +                       removable="true"
 +                       onmousedown="PanelUI.showSubView('appMenu-libraryView', this, event);"
++                       onkeypress="PanelUI.showSubView('appMenu-libraryView', this, event);"
 +                       closemenu="none"
 +                       cui-areatype="toolbar"
 +                       tooltiptext="&libraryButton.tooltip;"
@@ -1431,21 +1444,21 @@
  #include "DirectoryProvider.h"
  
  #if defined(XP_WIN)
- #include "nsWindowsShellService.h"
+ #  include "nsWindowsShellService.h"
  #elif defined(XP_MACOSX)
- #include "nsMacShellService.h"
+ #  include "nsMacShellService.h"
  #elif defined(MOZ_WIDGET_GTK)
--#include "nsGNOMEShellService.h"
-+#include "nsUnixShellService.h"
+-#  include "nsGNOMEShellService.h"
++#  include "nsUnixShellService.h"
  #endif
+ #include "nsIToolkitShellService.h"
  
  #if defined(MOZ_WIDGET_COCOA)
- #include "nsMacAttribution.h"
+ #  include "nsMacAttribution.h"
  #endif
  
  #if defined(XP_WIN)
- #include "nsIEHistoryEnumerator.h"
-@@ -33,18 +33,16 @@ using namespace mozilla::browser;
+@@ -34,18 +34,16 @@ using namespace mozilla::browser;
  
  /////////////////////////////////////////////////////////////////////////////
  
@@ -1464,7 +1477,7 @@
  
  #if defined(XP_WIN)
  NS_GENERIC_FACTORY_CONSTRUCTOR(nsIEHistoryEnumerator)
-@@ -67,17 +65,17 @@ NS_DEFINE_NAMED_CID(NS_MACATTRIBUTIONSER
+@@ -64,17 +62,17 @@ NS_DEFINE_NAMED_CID(NS_MACATTRIBUTIONSER
  #endif
  
  static const mozilla::Module::CIDEntry kBrowserCIDs[] = {
@@ -1475,12 +1488,12 @@
  #elif defined(MOZ_WIDGET_GTK)
 -    { &kNS_SHELLSERVICE_CID, false, nullptr, nsGNOMEShellServiceConstructor },
 +    { &kNS_SHELLSERVICE_CID, false, nullptr, nsUnixShellServiceConstructor },
+ #elif defined(XP_MACOSX)
+     { &kNS_SHELLSERVICE_CID, false, nullptr, nsMacShellServiceConstructor },
  #endif
      { &kNS_BROWSER_ABOUT_REDIRECTOR_CID, false, nullptr, AboutRedirector::Create },
  #if defined(XP_WIN)
      { &kNS_WINIEHISTORYENUMERATOR_CID, false, nullptr, nsIEHistoryEnumeratorConstructor },
- #elif defined(XP_MACOSX)
-     { &kNS_SHELLSERVICE_CID, false, nullptr, nsMacShellServiceConstructor },
  #endif
  #if defined(MOZ_WIDGET_COCOA)
 diff --git a/browser/components/preferences/in-content/main.js b/browser/components/preferences/in-content/main.js
@@ -1510,7 +1523,7 @@
      performanceSettingsLink.setAttribute("href", performanceSettingsUrl);
  
      this.updateDefaultPerformanceSettingsPref();
-@@ -1012,16 +1019,27 @@ var gMainPane = {
+@@ -1021,16 +1028,27 @@ var gMainPane = {
        // Reset exponential backoff delay time in order to do visual update in pollForDefaultBrowser.
        this._backoffIndex = 0;
  
@@ -1541,30 +1554,30 @@
 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
-@@ -39,16 +39,18 @@ if CONFIG['OS_ARCH'] == 'WINNT':
-     ]
- elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
-     SOURCES += [
-         'nsMacShellService.cpp',
+@@ -29,16 +29,18 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'coco
      ]
  elif 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT']:
+     XPIDL_SOURCES += [
+         'nsIGNOMEShellService.idl',
+     ]
+ 
      SOURCES += [
          'nsGNOMEShellService.cpp',
 +        'nsKDEShellService.cpp',
 +        'nsUnixShellService.cpp',
      ]
- 
- if SOURCES:
-     FINAL_LIBRARY = 'browsercomps'
- 
- EXTRA_JS_MODULES += [
-     'HeadlessShell.jsm',
-     'ShellService.jsm',
+ elif CONFIG['OS_ARCH'] == 'WINNT':
+     SOURCES += [
+         'nsWindowsShellService.cpp',
+     ]
+     LOCAL_INCLUDES += [
+         '../../../other-licenses/nsis/Contrib/CityHash/cityhash',
+     ]
 diff --git a/browser/components/shell/nsKDEShellService.cpp b/browser/components/shell/nsKDEShellService.cpp
 new file mode 100644
 --- /dev/null
 +++ b/browser/components/shell/nsKDEShellService.cpp
-@@ -0,0 +1,153 @@
+@@ -0,0 +1,150 @@
 +/* -*- 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
@@ -1598,13 +1611,10 @@
 +NS_IMPL_ISUPPORTS(nsKDEShellService, nsIGNOMEShellService, nsIShellService)
 +
 +NS_IMETHODIMP
-+nsKDEShellService::IsDefaultBrowser(bool aStartupCheck,
-+                                    bool aForAllTypes,
++nsKDEShellService::IsDefaultBrowser(bool aForAllTypes,
 +                                    bool* aIsDefaultBrowser)
 +{
 +    *aIsDefaultBrowser = false;
-+    if (aStartupCheck)
-+        mCheckedThisSession = true;
 +
 +    nsCOMPtr<nsIMutableArray> command = do_CreateInstance( NS_ARRAY_CONTRACTID );
 +    if (!command)
@@ -1722,7 +1732,7 @@
 new file mode 100644
 --- /dev/null
 +++ b/browser/components/shell/nsKDEShellService.h
-@@ -0,0 +1,30 @@
+@@ -0,0 +1,32 @@
 +/* -*- 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
@@ -1732,10 +1742,12 @@
 +#define nskdeshellservice_h____
 +
 +#include "nsIGNOMEShellService.h"
++#include "nsToolkitShellService.h"
 +#include "nsString.h"
 +#include "mozilla/Attributes.h"
 +
-+class nsKDEShellService final : public nsIGNOMEShellService
++class nsKDEShellService final : public nsIGNOMEShellService,
++                                public nsToolkitShellService
 +{
 +public:
 +  nsKDEShellService() : mCheckedThisSession(false) { }
@@ -1803,7 +1815,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
-@@ -451,16 +451,18 @@
+@@ -452,16 +452,18 @@
  @RESPATH@/browser/defaults/settings/pinning
  @RESPATH@/browser/defaults/settings/main
  
--- a/mozilla-bmo1463035.patch	Sun Mar 17 09:57:22 2019 +0100
+++ b/mozilla-bmo1463035.patch	Tue Mar 19 09:48:05 2019 +0100
@@ -3,7 +3,7 @@
 # User Mike Hommey <mh+mozilla@glandium.org>
 # Date 1526871862 -32400
 # Node ID 94f21505ff13cd089f7129cd24927cf8b31a0f43
-# Parent  25ab6bab437517a8a182f1ab77898ae13b26a696
+# Parent  fc741a5ea37dbe145e0ca5f85e5dfb100f3c9091
 Bug 1463035 - Remove MOZ_SIGNAL_TRAMPOLINE. r?darchons
 
 For some reason, GNU as is not happy with the assembly generated after
@@ -12,53 +12,10 @@
 OTOH, as mentioned in bug 1238661 comment 4, we actually don't need this
 workaround anymore, so let's just kill it.
 
-diff --git a/mfbt/LinuxSignal.h b/mfbt/LinuxSignal.h
-deleted file mode 100644
---- a/mfbt/LinuxSignal.h
-+++ /dev/null
-@@ -1,38 +0,0 @@
--/* 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
-- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
--
--#ifndef mozilla_LinuxSignal_h
--#define mozilla_LinuxSignal_h
--
--namespace mozilla {
--
--#if defined(__arm__)
--
--// Some (old) Linux kernels on ARM have a bug where a signal handler
--// can be called without clearing the IT bits in CPSR first. The result
--// is that the first few instructions of the handler could be skipped,
--// ultimately resulting in crashes. To workaround this bug, the handler
--// on ARM is a trampoline that starts with enough NOP instructions, so
--// that even if the IT bits are not cleared, only the NOP instructions
--// will be skipped over.
--
--template <void (*H)(int, siginfo_t*, void*)>
--__attribute__((naked)) void SignalTrampoline(int aSignal, siginfo_t* aInfo,
--                                             void* aContext) {
--  asm volatile("nop; nop; nop; nop" : : : "memory");
--
--  asm volatile("b %0" : : "X"(H) : "memory");
--}
--
--#define MOZ_SIGNAL_TRAMPOLINE(h) (mozilla::SignalTrampoline<h>)
--
--#else  // __arm__
--
--#define MOZ_SIGNAL_TRAMPOLINE(h) (h)
--
--#endif  // __arm__
--
--}  // namespace mozilla
--
--#endif  // mozilla_LinuxSignal_h
 diff --git a/mfbt/moz.build b/mfbt/moz.build
 --- a/mfbt/moz.build
 +++ b/mfbt/moz.build
-@@ -124,20 +124,16 @@ EXPORTS["double-conversion"] = [
+@@ -122,20 +122,16 @@ EXPORTS["double-conversion"] = [
  LOCAL_INCLUDES += [
      '/mfbt/double-conversion',
  ]
@@ -84,9 +41,9 @@
 +++ b/tools/profiler/core/platform-linux-android.cpp
 @@ -55,17 +55,16 @@
  #ifdef __GLIBC__
- #include <execinfo.h>  // backtrace, backtrace_symbols
- #endif                 // def __GLIBC__
- #include <strings.h>   // index
+ #  include <execinfo.h>  // backtrace, backtrace_symbols
+ #endif                   // def __GLIBC__
+ #include <strings.h>     // index
  #include <errno.h>
  #include <stdarg.h>
  
--- a/mozilla-bmo256180.patch	Sun Mar 17 09:57:22 2019 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-# HG changeset patch
-# Parent  8d4f57b44373d51f0e151eeaadf9fe293bcdfb7c
-
-diff --git a/layout/generic/nsIFrame.h b/layout/generic/nsIFrame.h
---- a/layout/generic/nsIFrame.h
-+++ b/layout/generic/nsIFrame.h
-@@ -8,17 +8,17 @@
- 
- #ifndef nsIFrame_h___
- #define nsIFrame_h___
- 
- #ifndef MOZILLA_INTERNAL_API
- #error This header/class should only be used within Mozilla code. It should not be used by extensions.
- #endif
- 
--#define MAX_REFLOW_DEPTH 200
-+#define MAX_REFLOW_DEPTH 1000
- 
- /* nsIFrame is in the process of being deCOMtaminated, i.e., this file is
-    eventually going to be eliminated, and all callers will use nsFrame instead.
-    At the moment we're midway through this process, so you will see inlined
-    functions and member variables in this file.  -dwh */
- 
- #include <algorithm>
- #include <stdio.h>
--- a/mozilla-kde.patch	Sun Mar 17 09:57:22 2019 +0100
+++ b/mozilla-kde.patch	Tue Mar 19 09:48:05 2019 +0100
@@ -1,5 +1,5 @@
 # HG changeset patch
-# Parent  ff3da33eabc1d8760ec41a87afbaf44ded300ede
+# Parent  f55e33a10c2a23625826ef6f8dbe18d5a455d29e
 Description: Add KDE integration to Firefox (toolkit parts)
 Author: Wolfgang Rosenauer <wolfgang@rosenauer.org>
 Author: Lubos Lunak <lunak@suse.com>
@@ -21,13 +21,13 @@
 +#include "nsKDEUtils.h"
  
  #ifdef MOZ_MEMORY
- #include "mozmemory.h"
+ #  include "mozmemory.h"
  #endif
  
  #ifdef XP_WIN
- #include "windows.h"
+ #  include "windows.h"
  #endif
-@@ -4466,25 +4467,37 @@ float MOZ_MAYBE_UNUSED GetPref<float>(co
+@@ -4467,25 +4468,37 @@ float MOZ_MAYBE_UNUSED GetPref<float>(co
    // application pref files for backwards compatibility.
    static const char* specialFiles[] = {
  #if defined(XP_MACOSX)
@@ -37,10 +37,10 @@
  #elif defined(XP_UNIX)
      "unix.js"
 +    , "" // placeholder for KDE  (empty is otherwise harmless)
- #if defined(_AIX)
+ #  if defined(_AIX)
      ,
      "aix.js"
- #endif
+ #  endif
  #elif defined(XP_BEOS)
      "beos.js"
  #endif
@@ -65,7 +65,7 @@
  
    // Load jar:$app/omni.jar!/defaults/preferences/*.js
    // or jar:$gre/omni.jar!/defaults/preferences/*.js.
-@@ -4532,17 +4545,17 @@ float MOZ_MAYBE_UNUSED GetPref<float>(co
+@@ -4533,17 +4546,17 @@ float MOZ_MAYBE_UNUSED GetPref<float>(co
        }
  
        nsCOMPtr<nsIFile> path = do_QueryInterface(elem);
@@ -171,12 +171,12 @@
 diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn
 --- a/toolkit/content/jar.mn
 +++ b/toolkit/content/jar.mn
-@@ -67,16 +67,18 @@ toolkit.jar:
+@@ -65,16 +65,18 @@ toolkit.jar:
+    content/global/bindings/button.xml          (widgets/button.xml)
     content/global/bindings/calendar.js         (widgets/calendar.js)
     content/global/bindings/checkbox.xml        (widgets/checkbox.xml)
     content/global/bindings/datekeeper.js       (widgets/datekeeper.js)
     content/global/bindings/datepicker.js       (widgets/datepicker.js)
-    content/global/bindings/datetimepopup.xml   (widgets/datetimepopup.xml)
     content/global/bindings/datetimebox.xml     (widgets/datetimebox.xml)
     content/global/bindings/datetimebox.css     (widgets/datetimebox.css)
  *  content/global/bindings/dialog.xml          (widgets/dialog.xml)
@@ -186,15 +186,15 @@
     content/global/bindings/menu.xml            (widgets/menu.xml)
     content/global/bindings/menulist.xml        (widgets/menulist.xml)
     content/global/bindings/notification.xml    (widgets/notification.xml)
-    content/global/bindings/numberbox.xml       (widgets/numberbox.xml)
     content/global/bindings/popup.xml           (widgets/popup.xml)
     content/global/bindings/radio.xml           (widgets/radio.xml)
     content/global/bindings/richlistbox.xml     (widgets/richlistbox.xml)
+    content/global/bindings/scrollbox.xml       (widgets/scrollbox.xml)
 diff --git a/toolkit/content/widgets/dialog-kde.xml b/toolkit/content/widgets/dialog-kde.xml
 new file mode 100644
 --- /dev/null
 +++ b/toolkit/content/widgets/dialog-kde.xml
-@@ -0,0 +1,477 @@
+@@ -0,0 +1,507 @@
 +<?xml version="1.0"?>
 +<!-- 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
@@ -229,7 +229,7 @@
 +        <xul:button dlgtype="accept" class="dialog-button" xbl:inherits="disabled=buttondisabledaccept"/>
 +#elif XP_UNIX
 +                >
-+	<xul:button dlgtype="help" class="dialog-button" hidden="true"/>
++        <xul:button dlgtype="help" class="dialog-button" hidden="true"/>
 +        <xul:button dlgtype="extra2" class="dialog-button" hidden="true"/>
 +        <xul:spacer anonid="spacer" flex="1"/>
 +        <xul:button dlgtype="accept" class="dialog-button" xbl:inherits="disabled=buttondisabledaccept"/>
@@ -266,6 +266,11 @@
 +          event.preventDefault();
 +      })</field>
 +
++      <!-- Gets populated by elements that are passed to document.l10n.setAttributes
++           to localize the dialog buttons. Needed to properly size the dialog after
++           the asynchronous translation. -->
++      <field name="_l10nButtons">[]</field>
++
 +      <property name="buttons"
 +                onget="return this.getAttribute('buttons');"
 +                onset="this._configureButtons(val); return val;"/>
@@ -365,16 +370,32 @@
 +        this._configureButtons(this.buttons);
 +
 +        // listen for when window is closed via native close buttons
-+        window.addEventListener("close", this._closeHandler);
++        window.addEventListener("close", this);
 +
 +        // for things that we need to initialize after onload fires
-+        window.addEventListener("load", this.postLoadInit);
++        window.addEventListener("load", this);
 +
 +        window.moveToAlertPosition = this.moveToAlertPosition;
 +        window.centerWindowOnScreen = this.centerWindowOnScreen;
 +      ]]>
 +      </constructor>
 +
++      <method name="handleEvent">
++        <parameter name="aEvent"/>
++        <body><![CDATA[
++          switch (aEvent.type) {
++            case "close": {
++              this._closeHandler(aEvent);
++              break;
++            }
++            case "load": {
++              this.postLoadInit(aEvent);
++              break;
++            }
++          }
++        ]]></body>
++      </method>
++
 +      <method name="postLoadInit">
 +        <parameter name="aEvent"/>
 +        <body>
@@ -422,6 +443,12 @@
 +
 +          // Give focus after onload completes, see bug 103197.
 +          setTimeout(focusInit, 0);
++
++          if (this._l10nButtons.length) {
++            document.l10n.translateElements(this._l10nButtons).then(() => {
++              window.sizeToContent();
++            });
++          }
 +        ]]>
 +        </body>
 +      </method>
@@ -490,13 +517,14 @@
 +                button.setAttribute("label", this.getAttribute("buttonlabel" + dlgtype));
 +                if (this.hasAttribute("buttonaccesskey" + dlgtype))
 +                  button.setAttribute("accesskey", this.getAttribute("buttonaccesskey" + dlgtype));
++              } else if (this.hasAttribute("buttonid" + dlgtype)) {
++                document.l10n.setAttributes(button, this.getAttribute("buttonid" + dlgtype));
++                this._l10nButtons.push(button);
 +              } else if (dlgtype != "extra1" && dlgtype != "extra2") {
 +                button.setAttribute("label", this.mStrBundle.GetStringFromName("button-" + dlgtype));
 +                var accessKey = this.mStrBundle.GetStringFromName("accesskey-" + dlgtype);
 +                if (accessKey)
 +                  button.setAttribute("accesskey", accessKey);
-+              } else if (this.hasAttribute("buttonid" + dlgtype)) {
-+                document.l10n.setAttributes(button, this.getAttribute("buttonid" + dlgtype));
 +              }
 +            }
 +            // allow specifying alternate icons in the dialog header
@@ -664,7 +692,9 @@
 +      <handler event="focus" phase="capturing">
 +        var btn = this.getButton(this.defaultButton);
 +        if (btn)
-+          btn.setAttribute("default", event.originalTarget == btn || !(event.originalTarget instanceof Ci.nsIDOMXULButtonElement));
++          btn.setAttribute("default", event.originalTarget == btn ||
++                           !(event.originalTarget.localName == "button" ||
++                             event.originalTarget.localName == "toolbarbutton"));
 +      </handler>
 +#endif
 +    </handlers>
@@ -675,7 +705,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
-@@ -1030,30 +1030,60 @@ nsUnknownContentTypeDialog.prototype = {
+@@ -1033,30 +1033,60 @@ nsUnknownContentTypeDialog.prototype = {
  
        if (params.handlerApp &&
            params.handlerApp.executable &&
@@ -848,7 +878,7 @@
 diff --git a/toolkit/xre/moz.build b/toolkit/xre/moz.build
 --- a/toolkit/xre/moz.build
 +++ b/toolkit/xre/moz.build
-@@ -73,17 +73,19 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'co
+@@ -81,17 +81,19 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'co
          '../components/printingui',
      ]
  elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'uikit':
@@ -1281,8 +1311,8 @@
  #include "ContentHandlerService.h"
  #include "nsStringEnumerator.h"
  #ifdef MOZ_WIDGET_GTK
--#include "unix/nsGNOMERegistry.h"
-+#include "unix/nsCommonRegistry.h"
+-#  include "unix/nsGNOMERegistry.h"
++#  include "unix/nsCommonRegistry.h"
  #endif
  
  using mozilla::dom::ContentHandlerService;
@@ -1591,7 +1621,7 @@
  #include "nsIIOService.h"
  #include "nsAutoPtr.h"
  #ifdef MOZ_ENABLE_DBUS
- #include "nsDBusHandlerApp.h"
+ #  include "nsDBusHandlerApp.h"
  #endif
 +#if defined(XP_UNIX) && !defined(XP_MACOSX)
 +#include "nsKDEUtils.h"
@@ -1678,8 +1708,8 @@
  #include "nsOSHelperAppService.h"
  #include "nsMIMEInfoUnix.h"
  #ifdef MOZ_WIDGET_GTK
--#include "nsGNOMERegistry.h"
-+#include "nsCommonRegistry.h"
+-#  include "nsGNOMERegistry.h"
++#  include "nsCommonRegistry.h"
  #endif
  #include "nsISupports.h"
  #include "nsString.h"
@@ -1688,7 +1718,7 @@
  #include "nsIURL.h"
  #include "nsIFileStreams.h"
  #include "nsILineInputStream.h"
-@@ -1031,17 +1031,17 @@ nsresult nsOSHelperAppService::GetHandle
+@@ -1025,17 +1025,17 @@ nsresult nsOSHelperAppService::GetHandle
  
  nsresult nsOSHelperAppService::OSProtocolHandlerExists(
      const char* aProtocolScheme, bool* aHandlerExists) {
@@ -1707,7 +1737,7 @@
      nsCOMPtr<nsIHandlerService> handlerSvc =
          do_GetService(NS_HANDLERSERVICE_CONTRACTID, &rv);
      if (NS_SUCCEEDED(rv) && handlerSvc) {
-@@ -1051,17 +1051,17 @@ nsresult nsOSHelperAppService::OSProtoco
+@@ -1045,17 +1045,17 @@ nsresult nsOSHelperAppService::OSProtoco
    }
  
    return rv;
@@ -1726,7 +1756,7 @@
  
  nsresult nsOSHelperAppService::GetFileTokenForPath(
      const char16_t* platformAppPath, nsIFile** aFile) {
-@@ -1142,17 +1142,17 @@ already_AddRefed<nsMIMEInfoBase> nsOSHel
+@@ -1136,17 +1136,17 @@ already_AddRefed<nsMIMEInfoBase> nsOSHel
    nsresult rv =
        LookUpTypeAndDescription(NS_ConvertUTF8toUTF16(aFileExt), majorType,
                                 minorType, mime_types_description, true);
@@ -1745,7 +1775,7 @@
  
      rv = LookUpTypeAndDescription(NS_ConvertUTF8toUTF16(aFileExt), majorType,
                                    minorType, mime_types_description, false);
-@@ -1254,17 +1254,17 @@ already_AddRefed<nsMIMEInfoBase> nsOSHel
+@@ -1248,17 +1248,17 @@ already_AddRefed<nsMIMEInfoBase> nsOSHel
  
    // Now look up our extensions
    nsAutoString extensions, mime_types_description;
@@ -2201,15 +2231,15 @@
    nsAutoString osVersion;
 +  nsAutoString desktop;
  #if defined(XP_WIN)
- #pragma warning(push)
- #pragma warning(disable : 4996)  // VC12+ deprecates GetVersionEx
+ #  pragma warning(push)
+ #  pragma warning(disable : 4996)  // VC12+ deprecates GetVersionEx
    OSVERSIONINFO info = {sizeof(OSVERSIONINFO)};
    if (GetVersionEx(&info)) {
      nsTextFormatter::ssprintf(osVersion, u"%ld.%ld", info.dwMajorVersion,
                                info.dwMinorVersion);
    }
 +  desktop = NS_LITERAL_STRING("win");
- #pragma warning(pop)
+ #  pragma warning(pop)
  #elif defined(MOZ_WIDGET_COCOA)
    SInt32 majorVersion = nsCocoaFeatures::OSXVersionMajor();
    SInt32 minorVersion = nsCocoaFeatures::OSXVersionMinor();
@@ -2310,15 +2340,15 @@
  #include "prlink.h"
  
  #ifdef MOZ_WIDGET_GTK
- #include "nsIGIOService.h"
-+#include "nsKDEUtils.h"
+ #  include "nsIGIOService.h"
++#  include "nsKDEUtils.h"
  #endif
  
  #ifdef MOZ_WIDGET_COCOA
- #include <Carbon/Carbon.h>
- #include "CocoaFileUtils.h"
- #include "prmem.h"
- #include "plbase64.h"
+ #  include <Carbon/Carbon.h>
+ #  include "CocoaFileUtils.h"
+ #  include "prmem.h"
+ #  include "plbase64.h"
  
 @@ -1902,62 +1903,77 @@ nsLocalFile::SetPersistentDescriptor(con
  
--- a/series	Sun Mar 17 09:57:22 2019 +0100
+++ b/series	Tue Mar 19 09:48:05 2019 +0100
@@ -4,7 +4,6 @@
 mozilla-ntlm-full-path.patch
 mozilla-openaes-decl.patch
 mozilla-aarch64-startup-crash.patch
-mozilla-bmo256180.patch
 mozilla-bmo1463035.patch
 mozilla-cubeb-noreturn.patch