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

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: Fix the test. 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..8d69209238bc19365c80b1777b02e3f987716a33 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,11 +33,18 @@ ClearBrowsingDataHandler::ClearBrowsingDataHandler(content::WebUI* webui)
prefs::kAllowDeletingBrowserHistory, prefs,
base::Bind(&ClearBrowsingDataHandler::OnBrowsingHistoryPrefChanged,
base::Unretained(this)));
+
+ sync_service_ =
+ ProfileSyncServiceFactory::GetForProfile(Profile::FromWebUI(webui));
+ if (sync_service_)
+ sync_service_->AddObserver(this);
dschuyler 2016/04/26 18:47:03 Rather than adding an observer in the constructor,
msramek 2016/04/27 18:10:29 Done. We're ready for JavaScript callbacks updatin
}
ClearBrowsingDataHandler::~ClearBrowsingDataHandler() {
if (remover_)
remover_->RemoveObserver(this);
+ if (sync_service_)
+ sync_service_->RemoveObserver(this);
}
void ClearBrowsingDataHandler::RegisterMessages() {
@@ -39,6 +52,11 @@ void ClearBrowsingDataHandler::RegisterMessages() {
"clearBrowsingData",
base::Bind(&ClearBrowsingDataHandler::HandleClearBrowsingData,
base::Unretained(this)));
+
+ web_ui()->RegisterMessageCallback(
+ "initializeFooter",
+ base::Bind(&ClearBrowsingDataHandler::InitializeFooter,
+ base::Unretained(this)));
}
void ClearBrowsingDataHandler::HandleClearBrowsingData(
@@ -151,4 +169,30 @@ void ClearBrowsingDataHandler::OnBrowsingHistoryPrefChanged() {
base::FundamentalValue(*allow_deleting_browser_history_));
}
+void ClearBrowsingDataHandler::InitializeFooter(const base::ListValue* args) {
+ 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