OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/options/clear_browser_data_handler.h" | 5 #include "chrome/browser/ui/webui/options/clear_browser_data_handler.h" |
6 | 6 |
7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
8 #include "base/bind.h" | 8 #include "base/bind.h" |
9 #include "base/bind_helpers.h" | 9 #include "base/bind_helpers.h" |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
11 #include "base/metrics/histogram_macros.h" | 11 #include "base/metrics/histogram_macros.h" |
12 #include "base/metrics/sparse_histogram.h" | 12 #include "base/metrics/sparse_histogram.h" |
13 #include "base/prefs/pref_service.h" | 13 #include "base/prefs/pref_service.h" |
14 #include "base/strings/string16.h" | 14 #include "base/strings/string16.h" |
15 #include "base/values.h" | 15 #include "base/values.h" |
16 #include "chrome/app/chrome_command_ids.h" | 16 #include "chrome/app/chrome_command_ids.h" |
17 #include "chrome/browser/browser_process.h" | 17 #include "chrome/browser/browser_process.h" |
18 #include "chrome/browser/browsing_data/browsing_data_counter.h" | 18 #include "chrome/browser/browsing_data/browsing_data_counter.h" |
19 #include "chrome/browser/browsing_data/browsing_data_helper.h" | 19 #include "chrome/browser/browsing_data/browsing_data_helper.h" |
20 #include "chrome/browser/browsing_data/browsing_data_remover.h" | 20 #include "chrome/browser/browsing_data/browsing_data_remover.h" |
21 #include "chrome/browser/browsing_data/passwords_counter.h" | 21 #include "chrome/browser/browsing_data/passwords_counter.h" |
22 #include "chrome/browser/prefs/incognito_mode_prefs.h" | 22 #include "chrome/browser/prefs/incognito_mode_prefs.h" |
23 #include "chrome/browser/profiles/profile.h" | 23 #include "chrome/browser/profiles/profile.h" |
24 #include "chrome/browser/sync/profile_sync_service_factory.h" | |
24 #include "chrome/browser/ui/accelerator_utils.h" | 25 #include "chrome/browser/ui/accelerator_utils.h" |
25 #include "chrome/common/chrome_switches.h" | 26 #include "chrome/common/chrome_switches.h" |
26 #include "chrome/common/pref_names.h" | 27 #include "chrome/common/pref_names.h" |
27 #include "chrome/grit/generated_resources.h" | 28 #include "chrome/grit/generated_resources.h" |
28 #include "chrome/grit/locale_settings.h" | 29 #include "chrome/grit/locale_settings.h" |
29 #include "components/google/core/browser/google_util.h" | 30 #include "components/google/core/browser/google_util.h" |
30 #include "content/public/browser/notification_details.h" | 31 #include "content/public/browser/notification_details.h" |
31 #include "content/public/browser/web_ui.h" | 32 #include "content/public/browser/web_ui.h" |
32 #include "ui/base/accelerators/accelerator.h" | 33 #include "ui/base/accelerators/accelerator.h" |
33 #include "ui/base/l10n/l10n_util.h" | 34 #include "ui/base/l10n/l10n_util.h" |
34 #include "ui/events/keycodes/keyboard_codes.h" | 35 #include "ui/events/keycodes/keyboard_codes.h" |
35 | 36 |
36 namespace { | 37 namespace { |
37 | 38 |
38 const char kClearBrowsingDataLearnMoreUrl[] = | 39 const char kClearBrowsingDataLearnMoreUrl[] = |
39 "https://support.google.com/chrome/?p=settings_clear_browsing_data"; | 40 "https://support.google.com/chrome/?p=settings_clear_browsing_data"; |
40 | 41 |
41 bool AreCountersEnabled() { | 42 bool AreCountersEnabled() { |
42 return base::CommandLine::ForCurrentProcess()->HasSwitch( | 43 return base::CommandLine::ForCurrentProcess()->HasSwitch( |
43 switches::kEnableClearBrowsingDataCounters); | 44 switches::kEnableClearBrowsingDataCounters); |
44 } | 45 } |
45 | 46 |
47 bool IsSupportStringSimplified() { | |
48 return base::CommandLine::ForCurrentProcess()->HasSwitch( | |
49 switches::kSimpleClearBrowsingDataSupportString); | |
50 } | |
51 | |
46 } // namespace | 52 } // namespace |
47 | 53 |
48 namespace options { | 54 namespace options { |
49 | 55 |
50 ClearBrowserDataHandler::ClearBrowserDataHandler() | 56 ClearBrowserDataHandler::ClearBrowserDataHandler() |
51 : remover_(NULL) { | 57 : remover_(NULL), |
58 sync_service_(NULL) { | |
Bernhard Bauer
2015/09/26 06:46:07
Prefer nullptr over NULL (the line above as well i
msramek
2015/09/28 08:41:42
Done.
| |
52 } | 59 } |
53 | 60 |
54 ClearBrowserDataHandler::~ClearBrowserDataHandler() { | 61 ClearBrowserDataHandler::~ClearBrowserDataHandler() { |
55 if (remover_) | 62 if (remover_) |
56 remover_->RemoveObserver(this); | 63 remover_->RemoveObserver(this); |
64 if (sync_service_) | |
65 sync_service_->RemoveObserver(this); | |
57 } | 66 } |
58 | 67 |
59 void ClearBrowserDataHandler::InitializeHandler() { | 68 void ClearBrowserDataHandler::InitializeHandler() { |
60 PrefService* prefs = Profile::FromWebUI(web_ui())->GetPrefs(); | 69 PrefService* prefs = Profile::FromWebUI(web_ui())->GetPrefs(); |
61 clear_plugin_lso_data_enabled_.Init(prefs::kClearPluginLSODataEnabled, prefs); | 70 clear_plugin_lso_data_enabled_.Init(prefs::kClearPluginLSODataEnabled, prefs); |
62 pepper_flash_settings_enabled_.Init(prefs::kPepperFlashSettingsEnabled, | 71 pepper_flash_settings_enabled_.Init(prefs::kPepperFlashSettingsEnabled, |
63 prefs); | 72 prefs); |
64 allow_deleting_browser_history_.Init( | 73 allow_deleting_browser_history_.Init( |
65 prefs::kAllowDeletingBrowserHistory, | 74 prefs::kAllowDeletingBrowserHistory, |
66 prefs, | 75 prefs, |
67 base::Bind(&ClearBrowserDataHandler::OnBrowsingHistoryPrefChanged, | 76 base::Bind(&ClearBrowserDataHandler::OnBrowsingHistoryPrefChanged, |
68 base::Unretained(this))); | 77 base::Unretained(this))); |
69 | 78 |
70 if (AreCountersEnabled()) { | 79 if (AreCountersEnabled()) { |
71 AddCounter( | 80 AddCounter( |
72 make_scoped_ptr(new PasswordsCounter()), IDS_DEL_PASSWORDS_COUNTER); | 81 make_scoped_ptr(new PasswordsCounter()), IDS_DEL_PASSWORDS_COUNTER); |
73 // TODO(msramek): Add counters for browsing history and cache. | 82 // TODO(msramek): Add counters for browsing history and cache. |
74 } | 83 } |
84 | |
85 if (IsSupportStringSimplified()) { | |
86 sync_service_ = | |
87 ProfileSyncServiceFactory::GetForProfile(Profile::FromWebUI(web_ui())); | |
88 if (sync_service_) | |
89 sync_service_->AddObserver(this); | |
90 } | |
75 } | 91 } |
76 | 92 |
77 void ClearBrowserDataHandler::InitializePage() { | 93 void ClearBrowserDataHandler::InitializePage() { |
94 web_ui()->CallJavascriptFunction( | |
95 "ClearBrowserDataOverlay.createFooter", | |
96 base::FundamentalValue(IsSupportStringSimplified()), | |
97 base::FundamentalValue(sync_service_ && sync_service_->IsSyncActive())); | |
78 UpdateInfoBannerVisibility(); | 98 UpdateInfoBannerVisibility(); |
79 OnBrowsingHistoryPrefChanged(); | 99 OnBrowsingHistoryPrefChanged(); |
80 bool removal_in_progress = !!remover_; | 100 bool removal_in_progress = !!remover_; |
81 web_ui()->CallJavascriptFunction("ClearBrowserDataOverlay.setClearing", | 101 web_ui()->CallJavascriptFunction("ClearBrowserDataOverlay.setClearing", |
82 base::FundamentalValue(removal_in_progress)); | 102 base::FundamentalValue(removal_in_progress)); |
83 | 103 |
84 for (BrowsingDataCounter* counter : counters_) { | 104 for (BrowsingDataCounter* counter : counters_) { |
85 DCHECK(AreCountersEnabled()); | 105 DCHECK(AreCountersEnabled()); |
86 counter->Restart(); | 106 counter->Restart(); |
87 } | 107 } |
(...skipping 23 matching lines...) Expand all Loading... | |
111 web_ui()->CallJavascriptFunction("ClearBrowserDataOverlay.setBannerText", | 131 web_ui()->CallJavascriptFunction("ClearBrowserDataOverlay.setBannerText", |
112 base::StringValue(text)); | 132 base::StringValue(text)); |
113 } | 133 } |
114 | 134 |
115 void ClearBrowserDataHandler::GetLocalizedValues( | 135 void ClearBrowserDataHandler::GetLocalizedValues( |
116 base::DictionaryValue* localized_strings) { | 136 base::DictionaryValue* localized_strings) { |
117 DCHECK(localized_strings); | 137 DCHECK(localized_strings); |
118 | 138 |
119 static OptionsStringResource resources[] = { | 139 static OptionsStringResource resources[] = { |
120 { "clearBrowserDataLabel", IDS_CLEAR_BROWSING_DATA_LABEL }, | 140 { "clearBrowserDataLabel", IDS_CLEAR_BROWSING_DATA_LABEL }, |
121 { "contentSettingsAndSearchEnginesRemain", | 141 { "clearBrowserDataSyncWarning", IDS_CLEAR_BROWSING_DATA_SYNCED_DELETION }, |
122 IDS_CLEAR_BROWSING_DATA_SOME_STUFF_REMAINS }, | 142 { "clearBrowserDataSupportString", IsSupportStringSimplified() |
143 ? IDS_CLEAR_BROWSING_DATA_SOME_STUFF_REMAINS_SIMPLE | |
144 : IDS_CLEAR_BROWSING_DATA_SOME_STUFF_REMAINS }, | |
123 { "deleteBrowsingHistoryCheckbox", IDS_DEL_BROWSING_HISTORY_CHKBOX }, | 145 { "deleteBrowsingHistoryCheckbox", IDS_DEL_BROWSING_HISTORY_CHKBOX }, |
124 { "deleteDownloadHistoryCheckbox", IDS_DEL_DOWNLOAD_HISTORY_CHKBOX }, | 146 { "deleteDownloadHistoryCheckbox", IDS_DEL_DOWNLOAD_HISTORY_CHKBOX }, |
125 { "deleteCacheCheckbox", IDS_DEL_CACHE_CHKBOX }, | 147 { "deleteCacheCheckbox", IDS_DEL_CACHE_CHKBOX }, |
126 { "deleteCookiesCheckbox", IDS_DEL_COOKIES_CHKBOX }, | 148 { "deleteCookiesCheckbox", IDS_DEL_COOKIES_CHKBOX }, |
127 { "deleteCookiesFlashCheckbox", IDS_DEL_COOKIES_FLASH_CHKBOX }, | 149 { "deleteCookiesFlashCheckbox", IDS_DEL_COOKIES_FLASH_CHKBOX }, |
128 { "deletePasswordsCheckbox", IDS_DEL_PASSWORDS_CHKBOX }, | 150 { "deletePasswordsCheckbox", IDS_DEL_PASSWORDS_CHKBOX }, |
129 { "deleteFormDataCheckbox", IDS_DEL_FORM_DATA_CHKBOX }, | 151 { "deleteFormDataCheckbox", IDS_DEL_FORM_DATA_CHKBOX }, |
130 { "deleteHostedAppsDataCheckbox", IDS_DEL_HOSTED_APPS_DATA_CHKBOX }, | 152 { "deleteHostedAppsDataCheckbox", IDS_DEL_HOSTED_APPS_DATA_CHKBOX }, |
131 { "deauthorizeContentLicensesCheckbox", | 153 { "deauthorizeContentLicensesCheckbox", |
132 IDS_DEAUTHORIZE_CONTENT_LICENSES_CHKBOX }, | 154 IDS_DEAUTHORIZE_CONTENT_LICENSES_CHKBOX }, |
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
303 base::string16 text = finished | 325 base::string16 text = finished |
304 ? l10n_util::GetPluralStringFUTF16(text_grd_id, count) | 326 ? l10n_util::GetPluralStringFUTF16(text_grd_id, count) |
305 : l10n_util::GetStringUTF16(IDS_CLEAR_BROWSING_DATA_CALCULATING); | 327 : l10n_util::GetStringUTF16(IDS_CLEAR_BROWSING_DATA_CALCULATING); |
306 | 328 |
307 web_ui()->CallJavascriptFunction( | 329 web_ui()->CallJavascriptFunction( |
308 "ClearBrowserDataOverlay.updateCounter", | 330 "ClearBrowserDataOverlay.updateCounter", |
309 base::StringValue(pref_name), | 331 base::StringValue(pref_name), |
310 base::StringValue(text)); | 332 base::StringValue(text)); |
311 } | 333 } |
312 | 334 |
335 void ClearBrowserDataHandler::OnStateChanged() { | |
336 web_ui()->CallJavascriptFunction( | |
337 "ClearBrowserDataOverlay.updateSyncWarning", | |
338 base::FundamentalValue(sync_service_ && sync_service_->IsSyncActive())); | |
339 } | |
340 | |
313 } // namespace options | 341 } // namespace options |
OLD | NEW |