Updated rhbz#1754460/mzbz#1583466 - per user policy dir.
This commit is contained in:
parent
0adc4aecec
commit
a07515e075
|
@ -32,3 +32,5 @@ pref("network.negotiate-auth.trusted-uris", "https://");
|
||||||
pref("spellchecker.dictionary_path","/usr/share/myspell");
|
pref("spellchecker.dictionary_path","/usr/share/myspell");
|
||||||
/* Disable DoH by default */
|
/* Disable DoH by default */
|
||||||
pref("network.trr.mode", 5);
|
pref("network.trr.mode", 5);
|
||||||
|
/* Enable per-user policy dir, see mozbz#1583466 */
|
||||||
|
pref("browser.policies.perUserDir", true);
|
|
@ -94,7 +94,7 @@ ExcludeArch: ppc64le
|
||||||
Summary: Mozilla Firefox Web browser
|
Summary: Mozilla Firefox Web browser
|
||||||
Name: firefox
|
Name: firefox
|
||||||
Version: 69.0.1
|
Version: 69.0.1
|
||||||
Release: 4%{?pre_tag}%{?dist}
|
Release: 5%{?pre_tag}%{?dist}
|
||||||
URL: https://www.mozilla.org/firefox/
|
URL: https://www.mozilla.org/firefox/
|
||||||
License: MPLv1.1 or GPLv2+ or LGPLv2+
|
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
|
Source0: https://archive.mozilla.org/pub/firefox/releases/%{version}%{?pre_version}/source/firefox-%{version}%{?pre_version}.source.tar.xz
|
||||||
|
@ -141,7 +141,7 @@ Patch224: mozilla-1170092.patch
|
||||||
#ARM run-time patch
|
#ARM run-time patch
|
||||||
Patch226: rhbz-1354671.patch
|
Patch226: rhbz-1354671.patch
|
||||||
Patch227: firefox-locale-debug.patch
|
Patch227: firefox-locale-debug.patch
|
||||||
Patch228: rhbz-1754460.patch
|
Patch228: mozilla-1583466.patch
|
||||||
|
|
||||||
# Upstream patches
|
# Upstream patches
|
||||||
Patch402: mozilla-1196777.patch
|
Patch402: mozilla-1196777.patch
|
||||||
|
@ -367,7 +367,7 @@ This package contains results of tests executed during build.
|
||||||
%patch226 -p1 -b .1354671
|
%patch226 -p1 -b .1354671
|
||||||
%endif
|
%endif
|
||||||
%patch227 -p1 -b .locale-debug
|
%patch227 -p1 -b .locale-debug
|
||||||
%patch228 -p1 -b .rhbz-1754460
|
%patch228 -p1 -b .mozilla-1583466
|
||||||
|
|
||||||
%patch402 -p1 -b .1196777
|
%patch402 -p1 -b .1196777
|
||||||
#%patch413 -p1 -b .1353817
|
#%patch413 -p1 -b .1353817
|
||||||
|
@ -983,6 +983,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
|
||||||
#---------------------------------------------------------------------
|
#---------------------------------------------------------------------
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Sep 30 2019 Martin Stransky <stransky@redhat.com> - 69.0.1-5
|
||||||
|
- Updated rhbz#1754460/mzbz#1583466 - per user policy dir.
|
||||||
|
|
||||||
* Tue Sep 24 2019 Martin Stransky <stransky@redhat.com> - 69.0.1-4
|
* Tue Sep 24 2019 Martin Stransky <stransky@redhat.com> - 69.0.1-4
|
||||||
- Added fix for rhbz#1754460
|
- Added fix for rhbz#1754460
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,43 @@
|
||||||
|
changeset: 496943:24592798daf4
|
||||||
|
tag: tip
|
||||||
|
parent: 496931:ca257801d86f
|
||||||
|
user: Martin Stransky <stransky@redhat.com>
|
||||||
|
date: Tue Sep 24 12:54:11 2019 +0200
|
||||||
|
files: toolkit/components/enterprisepolicies/EnterprisePolicies.js toolkit/xre/nsXREDirProvider.cpp xpcom/build/nsXULAppAPI.h
|
||||||
|
description:
|
||||||
|
Bug 1583466 - [Linux] Allow to Load policies per user from system on Linux/Gtk, r=mkaply
|
||||||
|
|
||||||
|
When browser.policies.perUserPath is set, load browser policy per user
|
||||||
|
from /run/user/$UID/appname/ directory instead of the default firefox/distribution
|
||||||
|
dir.
|
||||||
|
|
||||||
|
Differential Revision: https://phabricator.services.mozilla.com/D46921
|
||||||
|
|
||||||
|
|
||||||
diff --git a/toolkit/components/enterprisepolicies/EnterprisePolicies.js b/toolkit/components/enterprisepolicies/EnterprisePolicies.js
|
diff --git a/toolkit/components/enterprisepolicies/EnterprisePolicies.js b/toolkit/components/enterprisepolicies/EnterprisePolicies.js
|
||||||
--- a/toolkit/components/enterprisepolicies/EnterprisePolicies.js
|
--- a/toolkit/components/enterprisepolicies/EnterprisePolicies.js
|
||||||
+++ b/toolkit/components/enterprisepolicies/EnterprisePolicies.js
|
+++ b/toolkit/components/enterprisepolicies/EnterprisePolicies.js
|
||||||
@@ -447,21 +447,28 @@ class JSONPoliciesProvider {
|
@@ -18,16 +18,19 @@ XPCOMUtils.defineLazyModuleGetters(this,
|
||||||
|
JsonSchemaValidator:
|
||||||
|
"resource://gre/modules/components-utils/JsonSchemaValidator.jsm",
|
||||||
|
});
|
||||||
|
|
||||||
|
// This is the file that will be searched for in the
|
||||||
|
// ${InstallDir}/distribution folder.
|
||||||
|
const POLICIES_FILENAME = "policies.json";
|
||||||
|
|
||||||
|
+// When true browser policy is loaded per-user from
|
||||||
|
+// /run/usr/$UID/appname
|
||||||
|
+const PREF_PER_USER_DIR = "browser.policies.perUserDir";
|
||||||
|
// For easy testing, modify the helpers/sample.json file,
|
||||||
|
// and set PREF_ALTERNATE_PATH in firefox.js as:
|
||||||
|
// /your/repo/browser/components/enterprisepolicies/helpers/sample.json
|
||||||
|
const PREF_ALTERNATE_PATH = "browser.policies.alternatePath";
|
||||||
|
// For testing, we may want to set PREF_ALTERNATE_PATH to point to a file
|
||||||
|
// relative to the test root directory. In order to enable this, the string
|
||||||
|
// below may be placed at the beginning of that preference value and it will
|
||||||
|
// be replaced with the path to the test root directory.
|
||||||
|
@@ -450,17 +453,22 @@ class JSONPoliciesProvider {
|
||||||
|
|
||||||
get failed() {
|
get failed() {
|
||||||
return this._failed;
|
return this._failed;
|
||||||
|
@ -11,29 +47,20 @@ diff --git a/toolkit/components/enterprisepolicies/EnterprisePolicies.js b/toolk
|
||||||
let configFile = null;
|
let configFile = null;
|
||||||
try {
|
try {
|
||||||
- configFile = Services.dirsvc.get("XREAppDist", Ci.nsIFile);
|
- configFile = Services.dirsvc.get("XREAppDist", Ci.nsIFile);
|
||||||
+ configFile = Services.dirsvc.get("XREAppDistUser", Ci.nsIFile);
|
+ let perUserPath = Services.prefs.getBoolPref(PREF_PER_USER_DIR, false);
|
||||||
configFile.append(POLICIES_FILENAME);
|
+ if (perUserPath) {
|
||||||
- } catch (ex) {
|
+ configFile = Services.dirsvc.get("XREAppDistUser", Ci.nsIFile);
|
||||||
- // Getting the correct directory will fail in xpcshell tests. This should
|
+ } else {
|
||||||
- // 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 = 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.
|
|
||||||
+ }
|
+ }
|
||||||
|
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, "");
|
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
|
diff --git a/toolkit/xre/nsXREDirProvider.cpp b/toolkit/xre/nsXREDirProvider.cpp
|
||||||
--- a/toolkit/xre/nsXREDirProvider.cpp
|
--- a/toolkit/xre/nsXREDirProvider.cpp
|
||||||
+++ b/toolkit/xre/nsXREDirProvider.cpp
|
+++ b/toolkit/xre/nsXREDirProvider.cpp
|
||||||
|
@ -74,7 +101,7 @@ diff --git a/toolkit/xre/nsXREDirProvider.cpp b/toolkit/xre/nsXREDirProvider.cpp
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -456,16 +457,23 @@ nsXREDirProvider::GetFile(const char* aP
|
@@ -456,16 +457,24 @@ nsXREDirProvider::GetFile(const char* aP
|
||||||
else if (!strcmp(aProperty, XRE_USER_SYS_EXTENSION_DIR)) {
|
else if (!strcmp(aProperty, XRE_USER_SYS_EXTENSION_DIR)) {
|
||||||
#ifdef ENABLE_SYSTEM_EXTENSION_DIRS
|
#ifdef ENABLE_SYSTEM_EXTENSION_DIRS
|
||||||
return GetSysUserExtensionsDirectory(aFile);
|
return GetSysUserExtensionsDirectory(aFile);
|
||||||
|
@ -84,12 +111,13 @@ diff --git a/toolkit/xre/nsXREDirProvider.cpp b/toolkit/xre/nsXREDirProvider.cpp
|
||||||
} else if (!strcmp(aProperty, XRE_USER_SYS_EXTENSION_DEV_DIR)) {
|
} else if (!strcmp(aProperty, XRE_USER_SYS_EXTENSION_DEV_DIR)) {
|
||||||
return GetSysUserExtensionsDevDirectory(aFile);
|
return GetSysUserExtensionsDevDirectory(aFile);
|
||||||
+ } else if (!strcmp(aProperty, XRE_APP_DISTRIBUTION_USER_DIR)) {
|
+ } else if (!strcmp(aProperty, XRE_APP_DISTRIBUTION_USER_DIR)) {
|
||||||
+# ifndef MOZ_WIDGET_GTK
|
+#ifdef MOZ_WIDGET_GTK
|
||||||
|
+ nsPrintfCString path("/run/user/%d/%s/", getuid(), GetAppName());
|
||||||
|
+ ToLowerCase(path);
|
||||||
|
+ return NS_NewNativeLocalFile(path, false, aFile);
|
||||||
|
+#else
|
||||||
+ return NS_ERROR_FAILURE;
|
+ return NS_ERROR_FAILURE;
|
||||||
+# endif
|
+#endif
|
||||||
+ return NS_NewNativeLocalFile(
|
|
||||||
+ nsPrintfCString("/run/user/%d/%s/", getuid(), GetAppName()),
|
|
||||||
+ false, aFile);
|
|
||||||
} else if (!strcmp(aProperty, XRE_APP_DISTRIBUTION_DIR)) {
|
} else if (!strcmp(aProperty, XRE_APP_DISTRIBUTION_DIR)) {
|
||||||
bool persistent = false;
|
bool persistent = false;
|
||||||
rv = GetFile(NS_GRE_DIR, &persistent, getter_AddRefs(file));
|
rv = GetFile(NS_GRE_DIR, &persistent, getter_AddRefs(file));
|
||||||
|
@ -125,3 +153,4 @@ diff --git a/xpcom/build/nsXULAppAPI.h b/xpcom/build/nsXULAppAPI.h
|
||||||
*
|
*
|
||||||
* If vendor name doesn't exist, but product name exists:
|
* If vendor name doesn't exist, but product name exists:
|
||||||
* ProgramData\<product name>\updates\
|
* ProgramData\<product name>\updates\
|
||||||
|
|
Loading…
Reference in New Issue