Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1873)

Unified Diff: chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc

Issue 1912483003: Expand the footer in the material design Clear Browsing Data dialog. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc
diff --git a/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc b/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc
index 0cde828327e79eb157e0b82fafc8513e1a78eb58..6309acec1cb5e92a457d2e1c749956dd56407ccb 100644
--- a/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc
+++ b/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc
@@ -11,14 +11,20 @@
#include "base/metrics/sparse_histogram.h"
#include "chrome/browser/browsing_data/browsing_data_helper.h"
#include "chrome/browser/browsing_data/browsing_data_remover_factory.h"
+#include "chrome/browser/history/web_history_service_factory.h"
+#include "chrome/browser/sync/profile_sync_service_factory.h"
#include "chrome/common/pref_names.h"
+#include "components/browsing_data_ui/history_notice_utils.h"
#include "components/prefs/pref_service.h"
#include "content/public/browser/web_ui.h"
namespace settings {
ClearBrowsingDataHandler::ClearBrowsingDataHandler(content::WebUI* webui)
- : remover_(nullptr) {
+ : sync_service_(nullptr),
+ remover_(nullptr),
+ should_show_history_footer_(false),
+ weak_ptr_factory_(this) {
PrefService* prefs = Profile::FromWebUI(webui)->GetPrefs();
clear_plugin_lso_data_enabled_.Init(prefs::kClearPluginLSODataEnabled, prefs);
pepper_flash_settings_enabled_.Init(prefs::kPepperFlashSettingsEnabled,
@@ -27,6 +33,8 @@ ClearBrowsingDataHandler::ClearBrowsingDataHandler(content::WebUI* webui)
prefs::kAllowDeletingBrowserHistory, prefs,
base::Bind(&ClearBrowsingDataHandler::OnBrowsingHistoryPrefChanged,
base::Unretained(this)));
+ sync_service_ =
+ ProfileSyncServiceFactory::GetForProfile(Profile::FromWebUI(webui));
}
ClearBrowsingDataHandler::~ClearBrowsingDataHandler() {
@@ -39,6 +47,21 @@ void ClearBrowsingDataHandler::RegisterMessages() {
"clearBrowsingData",
base::Bind(&ClearBrowsingDataHandler::HandleClearBrowsingData,
base::Unretained(this)));
+
+ web_ui()->RegisterMessageCallback(
+ "initializeClearBrowsingData",
+ base::Bind(&ClearBrowsingDataHandler::HandleInitialize,
+ base::Unretained(this)));
+}
+
+void ClearBrowsingDataHandler::OnJavascriptAllowed() {
+ if (sync_service_)
+ sync_service_->AddObserver(this);
+}
+
+void ClearBrowsingDataHandler::OnJavascriptDisallowed() {
+ if (sync_service_)
+ sync_service_->RemoveObserver(this);
}
void ClearBrowsingDataHandler::HandleClearBrowsingData(
@@ -151,4 +174,31 @@ void ClearBrowsingDataHandler::OnBrowsingHistoryPrefChanged() {
base::FundamentalValue(*allow_deleting_browser_history_));
}
+void ClearBrowsingDataHandler::HandleInitialize(const base::ListValue* args) {
+ AllowJavascript();
+ OnStateChanged();
+ RefreshHistoryNotice();
+}
+
+void ClearBrowsingDataHandler::OnStateChanged() {
+ web_ui()->CallJavascriptFunction(
+ "cr.webUIListenerCallback",
+ base::StringValue("update-footer"),
+ base::FundamentalValue(sync_service_ && sync_service_->IsSyncActive()),
+ base::FundamentalValue(should_show_history_footer_));
+}
+
+void ClearBrowsingDataHandler::RefreshHistoryNotice() {
+ browsing_data_ui::ShouldShowNoticeAboutOtherFormsOfBrowsingHistory(
+ sync_service_,
+ WebHistoryServiceFactory::GetForProfile(Profile::FromWebUI(web_ui())),
+ base::Bind(&ClearBrowsingDataHandler::UpdateHistoryNotice,
+ weak_ptr_factory_.GetWeakPtr()));
+}
+
+void ClearBrowsingDataHandler::UpdateHistoryNotice(bool show) {
+ should_show_history_footer_ = show;
+ OnStateChanged();
+}
+
} // namespace settings

Powered by Google App Engine
This is Rietveld 408576698