summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firefox.spec7
-rw-r--r--rhbz-1754460.patch127
2 files changed, 133 insertions, 1 deletions
diff --git a/firefox.spec b/firefox.spec
index abf3618..b7d4337 100644
--- a/firefox.spec
+++ b/firefox.spec
@@ -94,7 +94,7 @@ ExcludeArch: ppc64le
Summary: Mozilla Firefox Web browser
Name: firefox
Version: 69.0.1
-Release: 3%{?pre_tag}%{?dist}
+Release: 4%{?pre_tag}%{?dist}
URL: https://www.mozilla.org/firefox/
License: MPLv1.1 or GPLv2+ or LGPLv2+
Source0: https://archive.mozilla.org/pub/firefox/releases/%{version}%{?pre_version}/source/firefox-%{version}%{?pre_version}.source.tar.xz
@@ -141,6 +141,7 @@ Patch224: mozilla-1170092.patch
#ARM run-time patch
Patch226: rhbz-1354671.patch
Patch227: firefox-locale-debug.patch
+Patch228: rhbz-1754460.patch
# Upstream patches
Patch402: mozilla-1196777.patch
@@ -366,6 +367,7 @@ This package contains results of tests executed during build.
%patch226 -p1 -b .1354671
%endif
%patch227 -p1 -b .locale-debug
+%patch228 -p1 -b .rhbz-1754460
%patch402 -p1 -b .1196777
#%patch413 -p1 -b .1353817
@@ -981,6 +983,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
#---------------------------------------------------------------------
%changelog
+* Tue Sep 24 2019 Martin Stransky <stransky@redhat.com> - 69.0.1-4
+- Added fix for rhbz#1754460
+
* Thu Sep 19 2019 Martin Stransky <stransky@redhat.com> - 69.0.1-3
- Updated cache-missing strategy for Wayland image cache.
diff --git a/rhbz-1754460.patch b/rhbz-1754460.patch
new file mode 100644
index 0000000..cdfc236
--- /dev/null
+++ b/rhbz-1754460.patch
@@ -0,0 +1,127 @@
+diff --git a/toolkit/components/enterprisepolicies/EnterprisePolicies.js b/toolkit/components/enterprisepolicies/EnterprisePolicies.js
+--- a/toolkit/components/enterprisepolicies/EnterprisePolicies.js
++++ b/toolkit/components/enterprisepolicies/EnterprisePolicies.js
+@@ -447,21 +447,28 @@ class JSONPoliciesProvider {
+
+ get failed() {
+ return this._failed;
+ }
+
+ _getConfigurationFile() {
+ let configFile = null;
+ try {
+- configFile = Services.dirsvc.get("XREAppDist", Ci.nsIFile);
++ configFile = Services.dirsvc.get("XREAppDistUser", Ci.nsIFile);
+ configFile.append(POLICIES_FILENAME);
+- } catch (ex) {
+- // Getting the correct directory will fail in xpcshell tests. This should
+- // be handled the same way as if the configFile simply does not exist.
++ } catch (ex) {}
++
++ if (!configFile) {
++ try {
++ configFile = Services.dirsvc.get("XREAppDist", Ci.nsIFile);
++ configFile.append(POLICIES_FILENAME);
++ } catch (ex) {
++ // Getting the correct directory will fail in xpcshell tests. This should
++ // be handled the same way as if the configFile simply does not exist.
++ }
+ }
+
+ let alternatePath = Services.prefs.getStringPref(PREF_ALTERNATE_PATH, "");
+
+ // Check if we are in automation *before* we use the synchronous
+ // nsIFile.exists() function or allow the config file to be overriden
+ // An alternate policy path can also be used in Nightly builds (for
+ // testing purposes), but the Background Update Agent will be unable to
+diff --git a/toolkit/xre/nsXREDirProvider.cpp b/toolkit/xre/nsXREDirProvider.cpp
+--- a/toolkit/xre/nsXREDirProvider.cpp
++++ b/toolkit/xre/nsXREDirProvider.cpp
+@@ -40,16 +40,17 @@
+ #include "mozilla/dom/ScriptSettings.h"
+
+ #include "mozilla/AutoRestore.h"
+ #include "mozilla/Components.h"
+ #include "mozilla/Services.h"
+ #include "mozilla/Omnijar.h"
+ #include "mozilla/Preferences.h"
+ #include "mozilla/Telemetry.h"
++#include "nsPrintfCString.h"
+
+ #include <stdlib.h>
+
+ #ifdef XP_WIN
+ # include <windows.h>
+ # include <shlobj.h>
+ # include "WinUtils.h"
+ #endif
+@@ -98,17 +99,17 @@ static already_AddRefed<nsIFile> CreateP
+ nsXREDirProvider* gDirServiceProvider = nullptr;
+ nsIFile* gDataDirHomeLocal = nullptr;
+ nsIFile* gDataDirHome = nullptr;
+ nsCOMPtr<nsIFile> gDataDirProfileLocal = nullptr;
+ nsCOMPtr<nsIFile> gDataDirProfile = nullptr;
+
+ // These are required to allow nsXREDirProvider to be usable in xpcshell tests.
+ // where gAppData is null.
+-#if defined(XP_MACOSX) || defined(XP_WIN)
++#if defined(XP_MACOSX) || defined(XP_WIN) || defined(XP_UNIX)
+ static const char* GetAppName() {
+ if (gAppData) {
+ return gAppData->name;
+ }
+ return nullptr;
+ }
+ #endif
+
+@@ -456,16 +457,23 @@ nsXREDirProvider::GetFile(const char* aP
+ else if (!strcmp(aProperty, XRE_USER_SYS_EXTENSION_DIR)) {
+ #ifdef ENABLE_SYSTEM_EXTENSION_DIRS
+ return GetSysUserExtensionsDirectory(aFile);
+ #else
+ return NS_ERROR_FAILURE;
+ #endif
+ } else if (!strcmp(aProperty, XRE_USER_SYS_EXTENSION_DEV_DIR)) {
+ return GetSysUserExtensionsDevDirectory(aFile);
++ } else if (!strcmp(aProperty, XRE_APP_DISTRIBUTION_USER_DIR)) {
++# ifndef MOZ_WIDGET_GTK
++ return NS_ERROR_FAILURE;
++# endif
++ return NS_NewNativeLocalFile(
++ nsPrintfCString("/run/user/%d/%s/", getuid(), GetAppName()),
++ false, aFile);
+ } else if (!strcmp(aProperty, XRE_APP_DISTRIBUTION_DIR)) {
+ bool persistent = false;
+ rv = GetFile(NS_GRE_DIR, &persistent, getter_AddRefs(file));
+ if (NS_SUCCEEDED(rv))
+ rv = file->AppendNative(NS_LITERAL_CSTRING("distribution"));
+ } else if (!strcmp(aProperty, XRE_APP_FEATURES_DIR)) {
+ rv = GetAppDir()->Clone(getter_AddRefs(file));
+ if (NS_SUCCEEDED(rv))
+diff --git a/xpcom/build/nsXULAppAPI.h b/xpcom/build/nsXULAppAPI.h
+--- a/xpcom/build/nsXULAppAPI.h
++++ b/xpcom/build/nsXULAppAPI.h
+@@ -137,16 +137,23 @@
+
+ /**
+ * A directory service key which specifies the location for app dir add-ons.
+ * Should be a synonym for XCurProcD everywhere except in tests.
+ */
+ #define XRE_ADDON_APP_DIR "XREAddonAppDir"
+
+ /**
++ * A directory service key which specifies the distribution specific files for
++ * the application unique for each user.
++ * It's located at /run/user/$PID/<product name>/
++ */
++#define XRE_APP_DISTRIBUTION_USER_DIR "XREAppDistUser"
++
++/**
+ * A directory service key which provides the update directory. Callers should
+ * fall back to appDir.
+ * Windows: If vendor name exists:
+ * ProgramData\<vendor name>\updates\
+ * <hash of the path to XRE_EXECUTABLE_FILE's parent directory>
+ *
+ * If vendor name doesn't exist, but product name exists:
+ * ProgramData\<product name>\updates\
bgstack15