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 {
margin: 0;
}
[hidden] {
display: none !important;
}
/** Typography -------------------------------------------------------------- */
.content {
......
......@@ -30,7 +30,7 @@ document.write('<link id="incognitothemecss" rel="stylesheet" ' +
<div class="bulletpoints first">$i18nRaw{incognitoTabFeatures}</div>
<div class="bulletpoints">$i18nRaw{incognitoTabWarning}</div>
</div>
<div id="cookie-controls" $i18n{hiddenIfCookieControlsDisabled}>
<div id="cookie-controls" $i18n{hideCookieControls}>
<div id="cookie-controls-description">
<em>$i18n{cookieControlsTitle}</em>
$i18n{cookieControlsDescription}
......
......@@ -14,10 +14,14 @@ window.addEventListener('load', function() {
cr.addWebUIListener('cookie-controls-changed', checked => {
$('cookie-controls-toggle').checked = checked;
});
cr.addWebUIListener(
'third-party-cookie-blocking-changed', shouldHideCookieControls => {
$('cookie-controls').hidden = shouldHideCookieControls;
});
$('cookie-controls-toggle').addEventListener('change', event => {
chrome.send('cookieControlsToggleChanged', [event.detail]);
});
chrome.send('observeCookieControlsModeChange');
chrome.send('observeCookieControlsSettingsChanges');
});
// Handle the bookmark bar, theme, and font size change requests
......
......@@ -8,6 +8,7 @@
#include "base/values.h"
#include "chrome/browser/profiles/profile.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/prefs/pref_service.h"
......@@ -22,9 +23,9 @@ void CookieControlsHandler::RegisterMessages() {
&CookieControlsHandler::HandleCookieControlsToggleChanged,
base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"observeCookieControlsModeChange",
"observeCookieControlsSettingsChanges",
base::BindRepeating(
&CookieControlsHandler::HandleObserveCookieControlsModeChange,
&CookieControlsHandler::HandleObserveCookieControlsSettingsChanges,
base::Unretained(this)));
}
......@@ -35,6 +36,10 @@ void CookieControlsHandler::OnJavascriptAllowed() {
prefs::kCookieControlsMode,
base::Bind(&CookieControlsHandler::OnCookieControlsChanged,
base::Unretained(this)));
pref_change_registrar_.Add(
prefs::kBlockThirdPartyCookies,
base::Bind(&CookieControlsHandler::OnThirdPartyCookieBlockingChanged,
base::Unretained(this)));
}
void CookieControlsHandler::OnJavascriptDisallowed() {
......@@ -53,10 +58,11 @@ void CookieControlsHandler::HandleCookieControlsToggleChanged(
: content_settings::CookieControlsMode::kOff));
}
void CookieControlsHandler::HandleObserveCookieControlsModeChange(
void CookieControlsHandler::HandleObserveCookieControlsSettingsChanges(
const base::ListValue* args) {
AllowJavascript();
OnCookieControlsChanged();
OnThirdPartyCookieBlockingChanged();
}
void CookieControlsHandler::OnCookieControlsChanged() {
......@@ -68,3 +74,17 @@ void CookieControlsHandler::OnCookieControlsChanged() {
: true);
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 @@
#include "content/public/browser/web_ui_message_handler.h"
class CookieControlsHandlerTest;
class Profile;
namespace base {
class ListValue;
......@@ -27,13 +28,21 @@ class CookieControlsHandler : public content::WebUIMessageHandler {
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:
friend class CookieControlsHandlerTest;
// Updates cookie controls UI when underlying setting has changed.
void OnCookieControlsChanged();
// Updates cookie controls UI when third-party cookie blocking setting has
// changed.
void OnThirdPartyCookieBlockingChanged();
PrefChangeRegistrar pref_change_registrar_;
DISALLOW_COPY_AND_ASSIGN(CookieControlsHandler);
......
......@@ -25,6 +25,7 @@
#include "chrome/browser/ui/layout_constants.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/cookie_controls_handler.h"
#include "chrome/common/buildflags.h"
#include "chrome/common/chrome_features.h"
#include "chrome/common/pref_names.h"
......@@ -35,6 +36,7 @@
#include "chrome/grit/theme_resources.h"
#include "components/bookmarks/common/bookmark_pref_names.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/prefs/pref_service.h"
#include "components/signin/public/identity_manager/identity_manager.h"
......@@ -275,10 +277,9 @@ void NTPResourceCache::CreateNewTabIncognitoHTML() {
l10n_util::GetStringUTF8(IDS_NEW_TAB_OTR_NOT_SAVED);
replacements["learnMoreLink"] = kLearnMoreIncognitoUrl;
replacements["title"] = l10n_util::GetStringUTF8(IDS_NEW_TAB_TITLE);
replacements["hiddenIfCookieControlsDisabled"] =
base::FeatureList::IsEnabled(content_settings::kImprovedCookieControls)
? ""
: "hidden";
replacements["hideCookieControls"] =
CookieControlsHandler::ShouldHideCookieControlsUI(profile_) ? "hidden"
: "";
replacements["cookieControlsTitle"] =
l10n_util::GetStringUTF8(IDS_SETTINGS_SITE_SETTINGS_THIRD_PARTY_COOKIE);
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