Firefox 52.0 firefox52
authorWolfgang Rosenauer <wr@rosenauer.org>
Sun, 05 Mar 2017 20:50:55 +0100
branchfirefox52
changeset 944 ce8a98f8d8d7
parent 943 ace605efe50f
child 945 7b1e775ff77a
Firefox 52.0 - including application chooser fix for Gtk3 builds
MozillaFirefox/MozillaFirefox.changes
MozillaFirefox/MozillaFirefox.spec
MozillaFirefox/create-tar.sh
MozillaFirefox/l10n_changesets.txt
mozilla-kde.patch
--- a/MozillaFirefox/MozillaFirefox.changes	Sat Mar 04 17:54:44 2017 +0100
+++ b/MozillaFirefox/MozillaFirefox.changes	Sun Mar 05 20:50:55 2017 +0100
@@ -1,8 +1,8 @@
 -------------------------------------------------------------------
-Sat Feb 25 15:19:15 UTC 2017 - wr@rosenauer.org
-
-- update to Firefox 52.0b9
-  * requires NSS >= 3.28.2
+Sat Mar  4 16:57:45 UTC 2017 - wr@rosenauer.org
+
+- update to Firefox 52.0
+  * requires NSS >= 3.28.3
   * Pages containing insecure password fields now display a warning
     directly within username and password fields.
   * Windows 8 touch screen support for multiprocess Firefox
--- a/MozillaFirefox/MozillaFirefox.spec	Sat Mar 04 17:54:44 2017 +0100
+++ b/MozillaFirefox/MozillaFirefox.spec	Sun Mar 05 20:50:55 2017 +0100
@@ -18,10 +18,10 @@
 
 
 # changed with every update
-%define major 51
-%define mainver %major.99
-%define update_channel beta
-%define releasedate 20170224000000
+%define major 52
+%define mainver %major.0
+%define update_channel release
+%define releasedate 20170302000000
 
 # PIE, full relro (x86_64 for now)
 %define build_hardened 1
@@ -31,7 +31,6 @@
 %define firefox_use_rust 1
 %endif
 
-
 # general build definitions
 %if "%{update_channel}" != "aurora"
 %define progname firefox
@@ -81,7 +80,7 @@
 BuildRequires:  libproxy-devel
 BuildRequires:  makeinfo
 BuildRequires:  mozilla-nspr-devel >= 4.13.1
-BuildRequires:  mozilla-nss-devel >= 3.28.2
+BuildRequires:  mozilla-nss-devel >= 3.28.3
 BuildRequires:  nss-shared-helper-devel
 BuildRequires:  python-devel
 BuildRequires:  startup-notification-devel
@@ -100,6 +99,7 @@
 %if 0%{?firefox_use_rust}
 BuildRequires:  cargo
 BuildRequires:  rust >= 1.10
+BuildRequires:  rust-std
 %endif
 # libavcodec is required for H.264 support but the
 # openSUSE version is currently not able to play H.264
--- a/MozillaFirefox/create-tar.sh	Sat Mar 04 17:54:44 2017 +0100
+++ b/MozillaFirefox/create-tar.sh	Sun Mar 05 20:50:55 2017 +0100
@@ -5,10 +5,10 @@
 # "moz_source_stamp": "c1de04f39fa956cfce83f6065b0e709369215ed5"
 # http://ftp.mozilla.org/pub/firefox/candidates/48.0-candidates/build2/l10n_changesets.txt
 
-CHANNEL="beta"
+CHANNEL="release"
 BRANCH="releases/mozilla-$CHANNEL"
-RELEASE_TAG="FIREFOX_52_0b9_RELEASE"
-VERSION="51.99"
+RELEASE_TAG="44d6a57ab554308585a67a13035d31b264be781e"
+VERSION="52.0"
 
 # mozilla
 if [ -d mozilla ]; then
--- a/MozillaFirefox/l10n_changesets.txt	Sat Mar 04 17:54:44 2017 +0100
+++ b/MozillaFirefox/l10n_changesets.txt	Sun Mar 05 20:50:55 2017 +0100
@@ -5,7 +5,7 @@
 as ee642d74fde9
 ast 80b866a98b5a
 az 07778ef756d4
-bg 3e1affaac949
+bg f86aa012265d
 bn-BD 6182802acd04
 bn-IN 0775fc62a38e
 br 88938f2eb7e2
@@ -20,7 +20,7 @@
 el 4232653d09a7
 en-GB 3b1783bdb6fd
 en-ZA 86f98526de2f
-eo d478da264502
+eo 6af9eb3bb290
 es-AR adc3a9f3054e
 es-CL 8ce5a00c2709
 es-ES 3debdad3d876
@@ -45,9 +45,9 @@
 hy-AM ee9609100a98
 id 584289a98164
 is 0de2039f0ead
-it ac8abee179d4
-ja c596f800130a
-ja-JP-mac e3b94e022b7d
+it 81a6b9f3a701
+ja 289cc8d9b658
+ja-JP-mac 1dc42d8f8c6b
 ka fd11643d032b
 kab 89a29ca718ef
 kk bbde07088662
@@ -77,7 +77,7 @@
 sk 968ee9fbd8ba
 sl e398e25297bc
 son a071d439a5f3
-sq c526b7451403
+sq ab626a887267
 sr 3fb1197cc3f3
 sv-SE 2d93a3f0c284
 ta e5fbcf49496f
@@ -88,6 +88,6 @@
 uz 53122cc7d6ad
 vi e4f8d820bef2
 xh 6ba5a5671721
-zh-CN fb21432035d2
+zh-CN 02ca4c1400c1
 zh-TW d17da9c45a93
 
--- a/mozilla-kde.patch	Sat Mar 04 17:54:44 2017 +0100
+++ b/mozilla-kde.patch	Sun Mar 05 20:50:55 2017 +0100
@@ -1,5 +1,5 @@
 # HG changeset patch
-# Parent  0e88a32ef7263e76f6970bab17458130d1f3677f
+# Parent  5c8ae59424f5318bf7a387257771bf95d3893063
 Description: Add KDE integration to Firefox (toolkit parts)
 Author: Wolfgang Rosenauer <wolfgang@rosenauer.org>
 Author: Lubos Lunak <lunak@suse.com>
@@ -2200,6 +2200,117 @@
 +#    PrefWindow II  (???)
 +#    PrefWindow I   (June 4, 1999)
 +#
+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
+@@ -627,17 +627,17 @@ nsUnknownContentTypeDialog.prototype = {
+       else
+         typeString = mimeInfo.MIMEType;
+     }
+     // When the length is unknown, contentLength would be -1
+     if (this.mLauncher.contentLength >= 0) {
+       let [size, unit] = DownloadUtils.
+                          convertByteUnits(this.mLauncher.contentLength);
+       type.value = this.dialogElement("strings")
+-                       .getFormattedString("orderedFileSizeWithType", 
++                       .getFormattedString("orderedFileSizeWithType",
+                                            [typeString, size, unit]);
+     }
+     else {
+       type.value = typeString;
+     }
+   },
+ 
+   // Returns true if opening the default application makes sense.
+@@ -801,17 +801,17 @@ nsUnknownContentTypeDialog.prototype = {
+       switch (this.dialogElement("openHandler").selectedIndex) {
+       case 0:
+         // No app need be specified in this case.
+         ok = true;
+         break;
+       case 1:
+         // only enable the OK button if we have a default app to use or if
+         // the user chose an app....
+-        ok = this.chosenApp || /\S/.test(this.dialogElement("otherHandler").getAttribute("path")); 
++        ok = this.chosenApp || /\S/.test(this.dialogElement("otherHandler").getAttribute("path"));
+         break;
+       }
+     }
+ 
+     // Enable Ok button if ok to press.
+     this.mDialog.document.documentElement.getButton("accept").disabled = !ok;
+   },
+ 
+@@ -1068,30 +1068,56 @@ nsUnknownContentTypeDialog.prototype = {
+           params.handlerApp.executable &&
+           params.handlerApp.executable.isFile()) {
+         // Remember the file they chose to run.
+         this.chosenApp = params.handlerApp;
+       }
+     }
+     else {
+ #if MOZ_WIDGET_GTK == 3
+-      var nsIApplicationChooser = Components.interfaces.nsIApplicationChooser;
+-      var appChooser = Components.classes["@mozilla.org/applicationchooser;1"]
+-                                 .createInstance(nsIApplicationChooser);
+-      appChooser.init(this.mDialog, this.dialogElement("strings").getString("chooseAppFilePickerTitle"));
+-      var contentTypeDialogObj = this;
+-      let appChooserCallback = function appChooserCallback_done(aResult) {
+-        if (aResult) {
+-           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
++      var env = Components.classes["@mozilla.org/process/environment;1"]
++                          .getService(Components.interfaces.nsIEnvironment);
++      if (env.get('KDE_FULL_SESSION') == "true")
++      {
++        var nsIFilePicker = Components.interfaces.nsIFilePicker;
++        var fp = Components.classes["@mozilla.org/filepicker;1"]
++                           .createInstance(nsIFilePicker);
++        fp.init(this.mDialog,
++                this.dialogElement("strings").getString("chooseAppFilePickerTitle"),
++                nsIFilePicker.modeOpen);
++
++        fp.appendFilters(nsIFilePicker.filterApps);
++
++        if (fp.show() == nsIFilePicker.returnOK && fp.file) {
++          // Remember the file they chose to run.
++          var localHandlerApp =
++            Components.classes["@mozilla.org/uriloader/local-handler-app;1"].
++                       createInstance(Components.interfaces.nsILocalHandlerApp);
++          localHandlerApp.executable = fp.file;
++          this.chosenApp = localHandlerApp;
+         }
+-        contentTypeDialogObj.finishChooseApp();
+-      };
+-      appChooser.open(this.mLauncher.MIMEInfo.MIMEType, appChooserCallback);
+-      // The finishChooseApp is called from appChooserCallback
+-      return;
++      } else {
++        var nsIApplicationChooser = Components.interfaces.nsIApplicationChooser;
++        var appChooser = Components.classes["@mozilla.org/applicationchooser;1"]
++                                   .createInstance(nsIApplicationChooser);
++        appChooser.init(this.mDialog, this.dialogElement("strings").getString("chooseAppFilePickerTitle"));
++        var contentTypeDialogObj = this;
++        let appChooserCallback = function appChooserCallback_done(aResult) {
++          if (aResult) {
++             contentTypeDialogObj.chosenApp = aResult.QueryInterface(Components.interfaces.nsILocalHandlerApp);
++          }
++          contentTypeDialogObj.finishChooseApp();
++        };
++        appChooser.open(this.mLauncher.MIMEInfo.MIMEType, appChooserCallback);
++        // The finishChooseApp is called from appChooserCallback
++        return;
++      }
+ #else
+       var nsIFilePicker = Components.interfaces.nsIFilePicker;
+       var fp = Components.classes["@mozilla.org/filepicker;1"]
+                          .createInstance(nsIFilePicker);
+       fp.init(this.mDialog,
+               this.dialogElement("strings").getString("chooseAppFilePickerTitle"),
+               nsIFilePicker.modeOpen);
+ 
 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
@@ -3696,7 +3807,7 @@
 diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
 --- a/xpcom/io/nsLocalFileUnix.cpp
 +++ b/xpcom/io/nsLocalFileUnix.cpp
-@@ -45,16 +45,17 @@
+@@ -46,16 +46,17 @@
  #include "prproces.h"
  #include "nsIDirectoryEnumerator.h"
  #include "nsISimpleEnumerator.h"
@@ -3714,7 +3825,7 @@
  #include "prmem.h"
  #include "plbase64.h"
  
-@@ -1947,42 +1948,52 @@ nsLocalFile::SetPersistentDescriptor(con
+@@ -1948,42 +1949,52 @@ nsLocalFile::SetPersistentDescriptor(con
    return InitWithNativePath(aPersistentDescriptor);
  #endif
  }
@@ -3773,7 +3884,7 @@
      return rv;
    }
    return NS_ERROR_FAILURE;
-@@ -1990,16 +2001,22 @@ nsLocalFile::Reveal()
+@@ -1991,16 +2002,22 @@ nsLocalFile::Reveal()
    return NS_ERROR_FAILURE;
  #endif
  }