Bug 1322576 - [1.2] Add tracking protection attribute to nsILoadContext to allow for overriding of the global preference setting for individual DocShells. r=smaug
This commit is contained in:
@@ -795,6 +795,7 @@ nsDocShell::nsDocShell()
|
||||
, mIsAppTab(false)
|
||||
, mUseGlobalHistory(false)
|
||||
, mUseRemoteTabs(false)
|
||||
, mUseTrackingProtection(false)
|
||||
, mDeviceSizeIsPageSize(false)
|
||||
, mWindowDraggingAllowed(false)
|
||||
, mInFrameSwap(false)
|
||||
@@ -13679,17 +13680,40 @@ nsDocShell::GetNestedFrameId(uint64_t* aId)
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsDocShell::IsTrackingProtectionOn(bool* aIsTrackingProtectionOn)
|
||||
nsDocShell::GetUseTrackingProtection(bool* aUseTrackingProtection)
|
||||
{
|
||||
if (Preferences::GetBool("privacy.trackingprotection.enabled", false)) {
|
||||
*aIsTrackingProtectionOn = true;
|
||||
} else if (UsePrivateBrowsing() &&
|
||||
Preferences::GetBool("privacy.trackingprotection.pbmode.enabled", false)) {
|
||||
*aIsTrackingProtectionOn = true;
|
||||
} else {
|
||||
*aIsTrackingProtectionOn = false;
|
||||
*aUseTrackingProtection = false;
|
||||
|
||||
static bool sTPEnabled = false;
|
||||
static bool sTPInPBEnabled = false;
|
||||
static bool sPrefsInit = false;
|
||||
|
||||
if (!sPrefsInit) {
|
||||
sPrefsInit = true;
|
||||
Preferences::AddBoolVarCache(&sTPEnabled,
|
||||
"privacy.trackingprotection.enabled", false);
|
||||
Preferences::AddBoolVarCache(&sTPInPBEnabled,
|
||||
"privacy.trackingprotection.pbmode.enabled", false);
|
||||
}
|
||||
|
||||
if (mUseTrackingProtection || sTPEnabled ||
|
||||
(UsePrivateBrowsing() && sTPInPBEnabled)) {
|
||||
*aUseTrackingProtection = true;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
RefPtr<nsDocShell> parent = GetParentDocshell();
|
||||
if (parent) {
|
||||
return parent->GetUseTrackingProtection(aUseTrackingProtection);
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsDocShell::SetUseTrackingProtection(bool aUseTrackingProtection)
|
||||
{
|
||||
mUseTrackingProtection = aUseTrackingProtection;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user