Commit 04f8f4c5 authored by Huanzhong Huang's avatar Huanzhong Huang Committed by Commit Bot

Hide cookie controls when third-party cookie blocking managed or enabled

Cookie controls UI should be hidden when (the original) third-party cookie
blocking is policy-managed or turned on.

Bug: 1012684, 967668
Change-Id: I2657454ed4c71f221708247e197c0de57b3db3fa
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1849681Reviewed-by: default avatarDan Beam <dbeam@chromium.org>
Reviewed-by: default avatarChristian Dullweber <dullweber@chromium.org>
Commit-Queue: Huanzhong Huang <huanzhong@chromium.org>
Cr-Commit-Position: refs/heads/master@{#705497}
parent b39c8fbf
...@@ -8,6 +8,10 @@ body { ...@@ -8,6 +8,10 @@ body {
margin: 0; margin: 0;
} }
[hidden] {
display: none !important;
}
/** Typography -------------------------------------------------------------- */ /** Typography -------------------------------------------------------------- */
.content { .content {
......
...@@ -30,7 +30,7 @@ document.write('<link id="incognitothemecss" rel="stylesheet" ' + ...@@ -30,7 +30,7 @@ document.write('<link id="incognitothemecss" rel="stylesheet" ' +
<div class="bulletpoints first">$i18nRaw{incognitoTabFeatures}</div> <div class="bulletpoints first">$i18nRaw{incognitoTabFeatures}</div>
<div class="bulletpoints">$i18nRaw{incognitoTabWarning}</div> <div class="bulletpoints">$i18nRaw{incognitoTabWarning}</div>
</div> </div>
<div id="cookie-controls" $i18n{hiddenIfCookieControlsDisabled}> <div id="cookie-controls" $i18n{hideCookieControls}>
<div id="cookie-controls-description"> <div id="cookie-controls-description">
<em>$i18n{cookieControlsTitle}</em> <em>$i18n{cookieControlsTitle}</em>
$i18n{cookieControlsDescription} $i18n{cookieControlsDescription}
......
...@@ -14,10 +14,14 @@ window.addEventListener('load', function() { ...@@ -14,10 +14,14 @@ window.addEventListener('load', function() {
cr.addWebUIListener('cookie-controls-changed', checked => { cr.addWebUIListener('cookie-controls-changed', checked => {
$('cookie-controls-toggle').checked = checked; $('cookie-controls-toggle').checked = checked;
}); });
cr.addWebUIListener(
'third-party-cookie-blocking-changed', shouldHideCookieControls => {
$('cookie-controls').hidden = shouldHideCookieControls;
});
$('cookie-controls-toggle').addEventListener('change', event => { $('cookie-controls-toggle').addEventListener('change', event => {
chrome.send('cookieControlsToggleChanged', [event.detail]); chrome.send('cookieControlsToggleChanged', [event.detail]);
}); });
chrome.send('observeCookieControlsModeChange'); chrome.send('observeCookieControlsSettingsChanges');
}); });
// Handle the bookmark bar, theme, and font size change requests // Handle the bookmark bar, theme, and font size change requests
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#include "base/values.h" #include "base/values.h"
#include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile.h"
#include "components/content_settings/core/browser/cookie_settings.h" #include "components/content_settings/core/browser/cookie_settings.h"
#include "components/content_settings/core/common/features.h"
#include "components/content_settings/core/common/pref_names.h" #include "components/content_settings/core/common/pref_names.h"
#include "components/prefs/pref_service.h" #include "components/prefs/pref_service.h"
...@@ -22,9 +23,9 @@ void CookieControlsHandler::RegisterMessages() { ...@@ -22,9 +23,9 @@ void CookieControlsHandler::RegisterMessages() {
&CookieControlsHandler::HandleCookieControlsToggleChanged, &CookieControlsHandler::HandleCookieControlsToggleChanged,
base::Unretained(this))); base::Unretained(this)));
web_ui()->RegisterMessageCallback( web_ui()->RegisterMessageCallback(
"observeCookieControlsModeChange", "observeCookieControlsSettingsChanges",
base::BindRepeating( base::BindRepeating(
&CookieControlsHandler::HandleObserveCookieControlsModeChange, &CookieControlsHandler::HandleObserveCookieControlsSettingsChanges,
base::Unretained(this))); base::Unretained(this)));
} }
...@@ -35,6 +36,10 @@ void CookieControlsHandler::OnJavascriptAllowed() { ...@@ -35,6 +36,10 @@ void CookieControlsHandler::OnJavascriptAllowed() {
prefs::kCookieControlsMode, prefs::kCookieControlsMode,
base::Bind(&CookieControlsHandler::OnCookieControlsChanged, base::Bind(&CookieControlsHandler::OnCookieControlsChanged,
base::Unretained(this))); base::Unretained(this)));
pref_change_registrar_.Add(
prefs::kBlockThirdPartyCookies,
base::Bind(&CookieControlsHandler::OnThirdPartyCookieBlockingChanged,
base::Unretained(this)));
} }
void CookieControlsHandler::OnJavascriptDisallowed() { void CookieControlsHandler::OnJavascriptDisallowed() {
...@@ -53,10 +58,11 @@ void CookieControlsHandler::HandleCookieControlsToggleChanged( ...@@ -53,10 +58,11 @@ void CookieControlsHandler::HandleCookieControlsToggleChanged(
: content_settings::CookieControlsMode::kOff)); : content_settings::CookieControlsMode::kOff));
} }
void CookieControlsHandler::HandleObserveCookieControlsModeChange( void CookieControlsHandler::HandleObserveCookieControlsSettingsChanges(
const base::ListValue* args) { const base::ListValue* args) {
AllowJavascript(); AllowJavascript();
OnCookieControlsChanged(); OnCookieControlsChanged();
OnThirdPartyCookieBlockingChanged();
} }
void CookieControlsHandler::OnCookieControlsChanged() { void CookieControlsHandler::OnCookieControlsChanged() {
...@@ -68,3 +74,17 @@ void CookieControlsHandler::OnCookieControlsChanged() { ...@@ -68,3 +74,17 @@ void CookieControlsHandler::OnCookieControlsChanged() {
: true); : true);
FireWebUIListener("cookie-controls-changed", checked); FireWebUIListener("cookie-controls-changed", checked);
} }
void CookieControlsHandler::OnThirdPartyCookieBlockingChanged() {
Profile* profile = Profile::FromWebUI(web_ui());
FireWebUIListener("third-party-cookie-blocking-changed",
base::Value(ShouldHideCookieControlsUI(profile)));
}
bool CookieControlsHandler::ShouldHideCookieControlsUI(const Profile* profile) {
return !base::FeatureList::IsEnabled(
content_settings::kImprovedCookieControls) ||
profile->GetPrefs()->IsManagedPreference(
prefs::kBlockThirdPartyCookies) ||
profile->GetPrefs()->GetBoolean(prefs::kBlockThirdPartyCookies);
}
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#include "content/public/browser/web_ui_message_handler.h" #include "content/public/browser/web_ui_message_handler.h"
class CookieControlsHandlerTest; class CookieControlsHandlerTest;
class Profile;
namespace base { namespace base {
class ListValue; class ListValue;
...@@ -27,13 +28,21 @@ class CookieControlsHandler : public content::WebUIMessageHandler { ...@@ -27,13 +28,21 @@ class CookieControlsHandler : public content::WebUIMessageHandler {
void HandleCookieControlsToggleChanged(const base::ListValue* args); void HandleCookieControlsToggleChanged(const base::ListValue* args);
void HandleObserveCookieControlsModeChange(const base::ListValue* args); void HandleObserveCookieControlsSettingsChanges(const base::ListValue* args);
// Whether cookie controls UI should be hidden in incognito ntp.
static bool ShouldHideCookieControlsUI(const Profile* profile);
private: private:
friend class CookieControlsHandlerTest; friend class CookieControlsHandlerTest;
// Updates cookie controls UI when underlying setting has changed.
void OnCookieControlsChanged(); void OnCookieControlsChanged();
// Updates cookie controls UI when third-party cookie blocking setting has
// changed.
void OnThirdPartyCookieBlockingChanged();
PrefChangeRegistrar pref_change_registrar_; PrefChangeRegistrar pref_change_registrar_;
DISALLOW_COPY_AND_ASSIGN(CookieControlsHandler); DISALLOW_COPY_AND_ASSIGN(CookieControlsHandler);
......
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
#include "chrome/browser/ui/layout_constants.h" #include "chrome/browser/ui/layout_constants.h"
#include "chrome/browser/ui/webui/app_launcher_login_handler.h" #include "chrome/browser/ui/webui/app_launcher_login_handler.h"
#include "chrome/browser/ui/webui/ntp/app_launcher_handler.h" #include "chrome/browser/ui/webui/ntp/app_launcher_handler.h"
#include "chrome/browser/ui/webui/ntp/cookie_controls_handler.h"
#include "chrome/common/buildflags.h" #include "chrome/common/buildflags.h"
#include "chrome/common/chrome_features.h" #include "chrome/common/chrome_features.h"
#include "chrome/common/pref_names.h" #include "chrome/common/pref_names.h"
...@@ -35,6 +36,7 @@ ...@@ -35,6 +36,7 @@
#include "chrome/grit/theme_resources.h" #include "chrome/grit/theme_resources.h"
#include "components/bookmarks/common/bookmark_pref_names.h" #include "components/bookmarks/common/bookmark_pref_names.h"
#include "components/content_settings/core/common/features.h" #include "components/content_settings/core/common/features.h"
#include "components/content_settings/core/common/pref_names.h"
#include "components/google/core/common/google_util.h" #include "components/google/core/common/google_util.h"
#include "components/prefs/pref_service.h" #include "components/prefs/pref_service.h"
#include "components/signin/public/identity_manager/identity_manager.h" #include "components/signin/public/identity_manager/identity_manager.h"
...@@ -275,10 +277,9 @@ void NTPResourceCache::CreateNewTabIncognitoHTML() { ...@@ -275,10 +277,9 @@ void NTPResourceCache::CreateNewTabIncognitoHTML() {
l10n_util::GetStringUTF8(IDS_NEW_TAB_OTR_NOT_SAVED); l10n_util::GetStringUTF8(IDS_NEW_TAB_OTR_NOT_SAVED);
replacements["learnMoreLink"] = kLearnMoreIncognitoUrl; replacements["learnMoreLink"] = kLearnMoreIncognitoUrl;
replacements["title"] = l10n_util::GetStringUTF8(IDS_NEW_TAB_TITLE); replacements["title"] = l10n_util::GetStringUTF8(IDS_NEW_TAB_TITLE);
replacements["hiddenIfCookieControlsDisabled"] = replacements["hideCookieControls"] =
base::FeatureList::IsEnabled(content_settings::kImprovedCookieControls) CookieControlsHandler::ShouldHideCookieControlsUI(profile_) ? "hidden"
? "" : "";
: "hidden";
replacements["cookieControlsTitle"] = replacements["cookieControlsTitle"] =
l10n_util::GetStringUTF8(IDS_SETTINGS_SITE_SETTINGS_THIRD_PARTY_COOKIE); l10n_util::GetStringUTF8(IDS_SETTINGS_SITE_SETTINGS_THIRD_PARTY_COOKIE);
replacements["cookieControlsDescription"] = replacements["cookieControlsDescription"] =
......
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