Commit f5780a37 authored by Christian Dullweber's avatar Christian Dullweber Committed by Commit Bot

Migrate BlockThirdPartyCookies to CookieControlsMode pref

In settings we already set CookieControlsMode to On if third-party
cookie blocking is enabled. We should migrate existing users as well.
Additionally, an enforced BlockThirdPartyCookies policy should also set
CookieControlsMode to On.

Bug: 967668, 1040091
Change-Id: I15cedad06a11572c2f0503db23bd73854efa699f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2120307Reviewed-by: default avatarMartin Šrámek <msramek@chromium.org>
Commit-Queue: Christian Dullweber <dullweber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#754021}
parent a7137767
...@@ -57,23 +57,33 @@ scoped_refptr<RefcountedKeyedService> ...@@ -57,23 +57,33 @@ scoped_refptr<RefcountedKeyedService>
CookieSettingsFactory::BuildServiceInstanceFor( CookieSettingsFactory::BuildServiceInstanceFor(
content::BrowserContext* context) const { content::BrowserContext* context) const {
Profile* profile = static_cast<Profile*>(context); Profile* profile = static_cast<Profile*>(context);
base::UmaHistogramBoolean( PrefService* prefs = profile->GetPrefs();
"Privacy.ThirdPartyCookieBlockingSetting",
profile->GetPrefs()->GetBoolean(prefs::kBlockThirdPartyCookies)); // Migrate BlockThirdPartyCookies to CookieControlsMode pref.
if (prefs->IsUserModifiablePreference(prefs::kBlockThirdPartyCookies) &&
prefs->GetBoolean(prefs::kBlockThirdPartyCookies) &&
prefs->GetInteger(prefs::kCookieControlsMode) !=
static_cast<int>(content_settings::CookieControlsMode::kOn)) {
prefs->SetInteger(
prefs::kCookieControlsMode,
static_cast<int>(content_settings::CookieControlsMode::kOn));
}
// Record cookie setting histograms.
base::UmaHistogramBoolean("Privacy.ThirdPartyCookieBlockingSetting",
prefs->GetBoolean(prefs::kBlockThirdPartyCookies));
base::UmaHistogramEnumeration( base::UmaHistogramEnumeration(
"Privacy.CookieControlsSetting", "Privacy.CookieControlsSetting",
static_cast<content_settings::CookieControlsMode>( static_cast<content_settings::CookieControlsMode>(
profile->GetPrefs()->GetInteger(prefs::kCookieControlsMode))); prefs->GetInteger(prefs::kCookieControlsMode)));
// The DNT setting is only vaguely cookie-related. However, there is currently // The DNT setting is only vaguely cookie-related. However, there is currently
// no DNT-related code that is executed once per Profile lifetime, and // no DNT-related code that is executed once per Profile lifetime, and
// creating a new BrowserContextKeyedService to record this metric would be // creating a new BrowserContextKeyedService to record this metric would be
// an overkill. Hence, we put it here. // an overkill. Hence, we put it here.
// TODO(msramek): Find a better place for this metric. // TODO(msramek): Find a better place for this metric.
base::UmaHistogramBoolean( base::UmaHistogramBoolean("Privacy.DoNotTrackSetting",
"Privacy.DoNotTrackSetting", prefs->GetBoolean(prefs::kEnableDoNotTrack));
profile->GetPrefs()->GetBoolean(prefs::kEnableDoNotTrack));
return new content_settings::CookieSettings( return new content_settings::CookieSettings(
HostContentSettingsMapFactory::GetForProfile(profile), HostContentSettingsMapFactory::GetForProfile(profile), prefs,
profile->GetPrefs(), profile->IsIncognitoProfile(), profile->IsIncognitoProfile(), extensions::kExtensionScheme);
extensions::kExtensionScheme);
} }
...@@ -31,7 +31,9 @@ void CookieSettingsPolicyHandler::ApplyPolicySettings( ...@@ -31,7 +31,9 @@ void CookieSettingsPolicyHandler::ApplyPolicySettings(
policies.GetValue(policy::key::kBlockThirdPartyCookies); policies.GetValue(policy::key::kBlockThirdPartyCookies);
if (third_party_cookie_blocking) { if (third_party_cookie_blocking) {
prefs->SetInteger(prefs::kCookieControlsMode, prefs->SetInteger(prefs::kCookieControlsMode,
static_cast<int>(CookieControlsMode::kOff)); static_cast<int>(third_party_cookie_blocking->GetBool()
? CookieControlsMode::kOn
: CookieControlsMode::kOff));
} }
} }
......
...@@ -48,7 +48,7 @@ TEST_F(CookieSettingsPolicyHandlerTest, ThirdPartyCookieBlockingEnabled) { ...@@ -48,7 +48,7 @@ TEST_F(CookieSettingsPolicyHandlerTest, ThirdPartyCookieBlockingEnabled) {
const base::Value* value; const base::Value* value;
ASSERT_TRUE(store_->GetValue(prefs::kCookieControlsMode, &value)); ASSERT_TRUE(store_->GetValue(prefs::kCookieControlsMode, &value));
EXPECT_EQ(static_cast<CookieControlsMode>(value->GetInt()), EXPECT_EQ(static_cast<CookieControlsMode>(value->GetInt()),
CookieControlsMode::kOff); CookieControlsMode::kOn);
} }
TEST_F(CookieSettingsPolicyHandlerTest, ThirdPartyCookieBlockingDisabled) { TEST_F(CookieSettingsPolicyHandlerTest, ThirdPartyCookieBlockingDisabled) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment