Avi Drissman | 4a8573c | 2022-09-09 19:35:54 | [diff] [blame] | 1 | // Copyright 2019 The Chromium Authors |
Huanzhong Huang | 8c0fbfa6 | 2019-10-07 10:49:05 | [diff] [blame] | 2 | // Use of this source code is governed by a BSD-style license that can be |
| 3 | // found in the LICENSE file. |
| 4 | |
| 5 | #include "chrome/browser/ui/webui/ntp/cookie_controls_handler.h" |
| 6 | |
Huanzhong Huang | 4e2d8a7 | 2019-10-20 19:13:07 | [diff] [blame] | 7 | #include <utility> |
| 8 | |
Christian Dullweber | cce1b27b | 2020-04-01 00:15:39 | [diff] [blame] | 9 | #include "base/feature_list.h" |
Avi Drissman | 9269d4ed | 2023-01-07 01:38:06 | [diff] [blame] | 10 | #include "base/functional/bind.h" |
Huanzhong Huang | 8c0fbfa6 | 2019-10-07 10:49:05 | [diff] [blame] | 11 | #include "base/values.h" |
| 12 | #include "chrome/browser/profiles/profile.h" |
Ehimare Okoyomon | 3fc4c3c | 2020-02-03 21:50:37 | [diff] [blame] | 13 | #include "chrome/browser/ui/cookie_controls/cookie_controls_service.h" |
| 14 | #include "chrome/browser/ui/cookie_controls/cookie_controls_service_factory.h" |
Christian Dullweber | cce1b27b | 2020-04-01 00:15:39 | [diff] [blame] | 15 | #include "chrome/common/chrome_features.h" |
Sean Harrison | c6968847 | 2021-02-19 17:08:20 | [diff] [blame] | 16 | #include "chrome/common/webui_url_constants.h" |
Mugdha Lakhani | 47e07fe | 2020-04-17 19:06:01 | [diff] [blame] | 17 | #include "components/content_settings/core/common/cookie_controls_enforcement.h" |
Huanzhong Huang | 8c0fbfa6 | 2019-10-07 10:49:05 | [diff] [blame] | 18 | |
Christian Dullweber | d16bc1a0 | 2019-12-13 12:06:35 | [diff] [blame] | 19 | namespace { |
Christian Dullweber | d16bc1a0 | 2019-12-13 12:06:35 | [diff] [blame] | 20 | static const char* kPolicyIcon = "cr20:domain"; |
Christian Dullweber | cce1b27b | 2020-04-01 00:15:39 | [diff] [blame] | 21 | static const char* kExtensionIcon = "cr:extension"; |
| 22 | static const char* kSettingsIcon = "cr:settings_icon"; |
Christian Dullweber | d16bc1a0 | 2019-12-13 12:06:35 | [diff] [blame] | 23 | } // namespace |
| 24 | |
Ehimare Okoyomon | b57d396b | 2020-03-06 14:51:10 | [diff] [blame] | 25 | CookieControlsHandler::CookieControlsHandler(Profile* profile) |
| 26 | : service_(CookieControlsServiceFactory::GetForProfile(profile)) {} |
Huanzhong Huang | 8c0fbfa6 | 2019-10-07 10:49:05 | [diff] [blame] | 27 | |
Ehimare Okoyomon | b57d396b | 2020-03-06 14:51:10 | [diff] [blame] | 28 | CookieControlsHandler::~CookieControlsHandler() { |
| 29 | service_->RemoveObserver(this); |
| 30 | } |
Huanzhong Huang | 8c0fbfa6 | 2019-10-07 10:49:05 | [diff] [blame] | 31 | |
| 32 | void CookieControlsHandler::RegisterMessages() { |
Michael Wilson | f16cccf | 2022-03-28 15:29:10 | [diff] [blame] | 33 | web_ui()->RegisterMessageCallback( |
Huanzhong Huang | 8c0fbfa6 | 2019-10-07 10:49:05 | [diff] [blame] | 34 | "cookieControlsToggleChanged", |
| 35 | base::BindRepeating( |
| 36 | &CookieControlsHandler::HandleCookieControlsToggleChanged, |
| 37 | base::Unretained(this))); |
Michael Wilson | f16cccf | 2022-03-28 15:29:10 | [diff] [blame] |
|