зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1591226 - Convert network.http.referer.hideOnionSource to a static pref. r=njn
Converts network.http.referer.hideOnionSource to a static pref and removes its mirror variable and varcache pref definition. Differential Revision: https://phabricator.services.mozilla.com/D50534 --HG-- extra : moz-landing-system : lando
This commit is contained in:
Родитель
f634517db3
Коммит
9ac026787f
|
@ -60,7 +60,6 @@ static uint32_t sDefaultTrackerRp = DEFAULT_TRACKER_RP;
|
||||||
static uint32_t defaultPrivateRp = DEFAULT_PRIVATE_RP;
|
static uint32_t defaultPrivateRp = DEFAULT_PRIVATE_RP;
|
||||||
static uint32_t defaultTrackerPrivateRp = DEFAULT_TRACKER_PRIVATE_RP;
|
static uint32_t defaultTrackerPrivateRp = DEFAULT_TRACKER_PRIVATE_RP;
|
||||||
|
|
||||||
static bool sUserHideOnionReferrerSource = false;
|
|
||||||
static uint32_t sUserReferrerSendingPolicy = 0;
|
static uint32_t sUserReferrerSendingPolicy = 0;
|
||||||
static uint32_t sUserXOriginSendingPolicy = 0;
|
static uint32_t sUserXOriginSendingPolicy = 0;
|
||||||
static uint32_t sUserTrimmingPolicy = 0;
|
static uint32_t sUserTrimmingPolicy = 0;
|
||||||
|
@ -73,8 +72,6 @@ static void CachePreferrenceValue() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Preferences::AddBoolVarCache(&sUserHideOnionReferrerSource,
|
|
||||||
"network.http.referer.hideOnionSource");
|
|
||||||
Preferences::AddUintVarCache(&sUserReferrerSendingPolicy,
|
Preferences::AddUintVarCache(&sUserReferrerSendingPolicy,
|
||||||
"network.http.sendRefererHeader");
|
"network.http.sendRefererHeader");
|
||||||
Preferences::AddUintVarCache(&sReferrerHeaderLimit,
|
Preferences::AddUintVarCache(&sReferrerHeaderLimit,
|
||||||
|
@ -116,12 +113,6 @@ static void CachePreferrenceValue() {
|
||||||
sPrefCached = true;
|
sPrefCached = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* static */
|
|
||||||
bool ReferrerInfo::HideOnionReferrerSource() {
|
|
||||||
CachePreferrenceValue();
|
|
||||||
return sUserHideOnionReferrerSource;
|
|
||||||
}
|
|
||||||
|
|
||||||
struct LegacyReferrerPolicyTokenMap {
|
struct LegacyReferrerPolicyTokenMap {
|
||||||
const char* mToken;
|
const char* mToken;
|
||||||
ReferrerPolicy mPolicy;
|
ReferrerPolicy mPolicy;
|
||||||
|
@ -369,7 +360,8 @@ nsresult ReferrerInfo::HandleUserXOriginSendingPolicy(nsIURI* aURI,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Send an empty referrer if xorigin and leaving a .onion domain.
|
// Send an empty referrer if xorigin and leaving a .onion domain.
|
||||||
if (sUserHideOnionReferrerSource && !uriHost.Equals(referrerHost) &&
|
if (StaticPrefs::network_http_referer_hideOnionSource() &&
|
||||||
|
!uriHost.Equals(referrerHost) &&
|
||||||
StringEndsWith(referrerHost, NS_LITERAL_CSTRING(".onion"))) {
|
StringEndsWith(referrerHost, NS_LITERAL_CSTRING(".onion"))) {
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
|
@ -161,12 +161,6 @@ class ReferrerInfo : public nsIReferrerInfo {
|
||||||
*/
|
*/
|
||||||
static bool ShouldResponseInheritReferrerInfo(nsIChannel* aChannel);
|
static bool ShouldResponseInheritReferrerInfo(nsIChannel* aChannel);
|
||||||
|
|
||||||
/*
|
|
||||||
* Check whether we need to hide referrer when leaving a .onion domain.
|
|
||||||
* Controlled by user pref: network.http.referer.hideOnionSource
|
|
||||||
*/
|
|
||||||
static bool HideOnionReferrerSource();
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Check whether referrer is allowed to send in secure to insecure scenario.
|
* Check whether referrer is allowed to send in secure to insecure scenario.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -6415,6 +6415,13 @@
|
||||||
value: false
|
value: false
|
||||||
mirror: always
|
mirror: always
|
||||||
|
|
||||||
|
# Check whether we need to hide referrer when leaving a .onion domain.
|
||||||
|
# false=allow onion referer, true=hide onion referer (use empty referer).
|
||||||
|
- name: network.http.referer.hideOnionSource
|
||||||
|
type: bool
|
||||||
|
value: false
|
||||||
|
mirror: always
|
||||||
|
|
||||||
# Enables the predictive service.
|
# Enables the predictive service.
|
||||||
- name: network.predictor.enabled
|
- name: network.predictor.enabled
|
||||||
type: bool
|
type: bool
|
||||||
|
|
|
@ -1347,8 +1347,6 @@ pref("network.http.referer.defaultPolicy.pbmode", 2);
|
||||||
// No need to change this pref for trimming referrers from trackers since in
|
// No need to change this pref for trimming referrers from trackers since in
|
||||||
// private windows we already trim all referrers to origin only.
|
// private windows we already trim all referrers to origin only.
|
||||||
pref("network.http.referer.defaultPolicy.trackers.pbmode", 2);
|
pref("network.http.referer.defaultPolicy.trackers.pbmode", 2);
|
||||||
// false=allow onion referer, true=hide onion referer (use empty referer)
|
|
||||||
pref("network.http.referer.hideOnionSource", false);
|
|
||||||
// 0=full URI, 1=scheme+host+port+path, 2=scheme+host+port
|
// 0=full URI, 1=scheme+host+port+path, 2=scheme+host+port
|
||||||
pref("network.http.referer.trimmingPolicy", 0);
|
pref("network.http.referer.trimmingPolicy", 0);
|
||||||
// 0=full URI, 1=scheme+host+port+path, 2=scheme+host+port
|
// 0=full URI, 1=scheme+host+port+path, 2=scheme+host+port
|
||||||
|
|
|
@ -44,6 +44,7 @@
|
||||||
#include "mozilla/NullPrincipal.h"
|
#include "mozilla/NullPrincipal.h"
|
||||||
#include "nsIHttpHeaderVisitor.h"
|
#include "nsIHttpHeaderVisitor.h"
|
||||||
#include "nsQueryObject.h"
|
#include "nsQueryObject.h"
|
||||||
|
#include "mozilla/StaticPrefs_network.h"
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
|
||||||
using namespace mozilla;
|
using namespace mozilla;
|
||||||
|
@ -964,7 +965,7 @@ nsresult nsCORSListenerProxy::UpdateChannel(nsIChannel* aChannel,
|
||||||
NS_ENSURE_TRUE(http, NS_ERROR_FAILURE);
|
NS_ENSURE_TRUE(http, NS_ERROR_FAILURE);
|
||||||
|
|
||||||
// hide the Origin header when requesting from .onion and requesting CORS
|
// hide the Origin header when requesting from .onion and requesting CORS
|
||||||
if (dom::ReferrerInfo::HideOnionReferrerSource()) {
|
if (StaticPrefs::network_http_referer_hideOnionSource()) {
|
||||||
nsCOMPtr<nsIURI> potentialOnionUri; // the candidate uri in header Origin:
|
nsCOMPtr<nsIURI> potentialOnionUri; // the candidate uri in header Origin:
|
||||||
rv = mOriginHeaderPrincipal->GetURI(getter_AddRefs(potentialOnionUri));
|
rv = mOriginHeaderPrincipal->GetURI(getter_AddRefs(potentialOnionUri));
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
|
|
@ -9800,7 +9800,7 @@ void nsHttpChannel::SetOriginHeader() {
|
||||||
// Origin header suppressed by user setting
|
// Origin header suppressed by user setting
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
} else if (dom::ReferrerInfo::HideOnionReferrerSource()) {
|
} else if (StaticPrefs::network_http_referer_hideOnionSource()) {
|
||||||
nsAutoCString host;
|
nsAutoCString host;
|
||||||
if (referrer && NS_SUCCEEDED(referrer->GetAsciiHost(host)) &&
|
if (referrer && NS_SUCCEEDED(referrer->GetAsciiHost(host)) &&
|
||||||
StringEndsWith(host, NS_LITERAL_CSTRING(".onion"))) {
|
StringEndsWith(host, NS_LITERAL_CSTRING(".onion"))) {
|
||||||
|
|
Загрузка…
Ссылка в новой задаче