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

Side by Side 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: Addressed comments. Created 4 years, 7 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler. h" 5 #include "chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler. h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/metrics/histogram_macros.h" 10 #include "base/metrics/histogram_macros.h"
11 #include "base/metrics/sparse_histogram.h" 11 #include "base/metrics/sparse_histogram.h"
12 #include "chrome/browser/browsing_data/browsing_data_helper.h" 12 #include "chrome/browser/browsing_data/browsing_data_helper.h"
13 #include "chrome/browser/browsing_data/browsing_data_remover_factory.h" 13 #include "chrome/browser/browsing_data/browsing_data_remover_factory.h"
14 #include "chrome/browser/history/web_history_service_factory.h"
15 #include "chrome/browser/sync/profile_sync_service_factory.h"
14 #include "chrome/common/pref_names.h" 16 #include "chrome/common/pref_names.h"
17 #include "components/browsing_data_ui/history_notice_utils.h"
15 #include "components/prefs/pref_service.h" 18 #include "components/prefs/pref_service.h"
16 #include "content/public/browser/web_ui.h" 19 #include "content/public/browser/web_ui.h"
17 20
18 namespace settings { 21 namespace settings {
19 22
20 ClearBrowsingDataHandler::ClearBrowsingDataHandler(content::WebUI* webui) 23 ClearBrowsingDataHandler::ClearBrowsingDataHandler(content::WebUI* webui)
21 : remover_(nullptr) { 24 : sync_service_(nullptr),
25 remover_(nullptr),
26 should_show_history_footer_(false),
27 weak_ptr_factory_(this) {
22 PrefService* prefs = Profile::FromWebUI(webui)->GetPrefs(); 28 PrefService* prefs = Profile::FromWebUI(webui)->GetPrefs();
23 clear_plugin_lso_data_enabled_.Init(prefs::kClearPluginLSODataEnabled, prefs); 29 clear_plugin_lso_data_enabled_.Init(prefs::kClearPluginLSODataEnabled, prefs);
24 pepper_flash_settings_enabled_.Init(prefs::kPepperFlashSettingsEnabled, 30 pepper_flash_settings_enabled_.Init(prefs::kPepperFlashSettingsEnabled,
25 prefs); 31 prefs);
26 allow_deleting_browser_history_.Init( 32 allow_deleting_browser_history_.Init(
27 prefs::kAllowDeletingBrowserHistory, prefs, 33 prefs::kAllowDeletingBrowserHistory, prefs,
28 base::Bind(&ClearBrowsingDataHandler::OnBrowsingHistoryPrefChanged, 34 base::Bind(&ClearBrowsingDataHandler::OnBrowsingHistoryPrefChanged,
29 base::Unretained(this))); 35 base::Unretained(this)));
36 sync_service_ =
37 ProfileSyncServiceFactory::GetForProfile(Profile::FromWebUI(webui));
30 } 38 }
31 39
32 ClearBrowsingDataHandler::~ClearBrowsingDataHandler() { 40 ClearBrowsingDataHandler::~ClearBrowsingDataHandler() {
33 if (remover_) 41 if (remover_)
34 remover_->RemoveObserver(this); 42 remover_->RemoveObserver(this);
35 } 43 }
36 44
37 void ClearBrowsingDataHandler::RegisterMessages() { 45 void ClearBrowsingDataHandler::RegisterMessages() {
38 web_ui()->RegisterMessageCallback( 46 web_ui()->RegisterMessageCallback(
39 "clearBrowsingData", 47 "clearBrowsingData",
40 base::Bind(&ClearBrowsingDataHandler::HandleClearBrowsingData, 48 base::Bind(&ClearBrowsingDataHandler::HandleClearBrowsingData,
41 base::Unretained(this))); 49 base::Unretained(this)));
50
51 web_ui()->RegisterMessageCallback(
52 "initialize",
dschuyler 2016/04/29 21:07:17 Sorry, suggesting 'initialize' wasn't a good choic
msramek 2016/05/02 13:08:09 Done. I think the only thing that isn't prone to
53 base::Bind(&ClearBrowsingDataHandler::HandleInitialize,
54 base::Unretained(this)));
55 }
56
57 void ClearBrowsingDataHandler::OnJavascriptAllowed() {
58 if (sync_service_)
59 sync_service_->AddObserver(this);
60 }
61
62 void ClearBrowsingDataHandler::OnJavascriptDisallowed() {
63 if (sync_service_)
64 sync_service_->RemoveObserver(this);
42 } 65 }
43 66
44 void ClearBrowsingDataHandler::HandleClearBrowsingData( 67 void ClearBrowsingDataHandler::HandleClearBrowsingData(
45 const base::ListValue* args) { 68 const base::ListValue* args) {
46 // We should never be called when the previous clearing has not yet finished. 69 // We should never be called when the previous clearing has not yet finished.
47 CHECK(!remover_); 70 CHECK(!remover_);
48 CHECK_EQ(1U, args->GetSize()); 71 CHECK_EQ(1U, args->GetSize());
49 CHECK(webui_callback_id_.empty()); 72 CHECK(webui_callback_id_.empty());
50 CHECK(args->GetString(0, &webui_callback_id_)); 73 CHECK(args->GetString(0, &webui_callback_id_));
51 74
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
144 webui_callback_id_.clear(); 167 webui_callback_id_.clear();
145 } 168 }
146 169
147 void ClearBrowsingDataHandler::OnBrowsingHistoryPrefChanged() { 170 void ClearBrowsingDataHandler::OnBrowsingHistoryPrefChanged() {
148 web_ui()->CallJavascriptFunction( 171 web_ui()->CallJavascriptFunction(
149 "cr.webUIListenerCallback", 172 "cr.webUIListenerCallback",
150 base::StringValue("browsing-history-pref-changed"), 173 base::StringValue("browsing-history-pref-changed"),
151 base::FundamentalValue(*allow_deleting_browser_history_)); 174 base::FundamentalValue(*allow_deleting_browser_history_));
152 } 175 }
153 176
177 void ClearBrowsingDataHandler::HandleInitialize(const base::ListValue* args) {
178 AllowJavascript();
179 OnStateChanged();
180 RefreshHistoryNotice();
181 }
182
183 void ClearBrowsingDataHandler::OnStateChanged() {
184 web_ui()->CallJavascriptFunction(
185 "cr.webUIListenerCallback",
186 base::StringValue("update-footer"),
187 base::FundamentalValue(sync_service_ && sync_service_->IsSyncActive()),
188 base::FundamentalValue(should_show_history_footer_));
189 }
190
191 void ClearBrowsingDataHandler::RefreshHistoryNotice() {
192 browsing_data_ui::ShouldShowNoticeAboutOtherFormsOfBrowsingHistory(
193 sync_service_,
194 WebHistoryServiceFactory::GetForProfile(Profile::FromWebUI(web_ui())),
195 base::Bind(&ClearBrowsingDataHandler::UpdateHistoryNotice,
196 weak_ptr_factory_.GetWeakPtr()));
197 }
198
199 void ClearBrowsingDataHandler::UpdateHistoryNotice(bool show) {
200 should_show_history_footer_ = show;
201 OnStateChanged();
202 }
203
154 } // namespace settings 204 } // namespace settings
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698