| 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 <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <memory> | 9 #include <memory> |
| 10 #include <utility> | 10 #include <utility> |
| 11 | 11 |
| 12 #include "base/bind.h" | 12 #include "base/bind.h" |
| 13 #include "base/bind_helpers.h" | 13 #include "base/bind_helpers.h" |
| 14 #include "base/macros.h" | 14 #include "base/macros.h" |
| 15 #include "base/memory/ptr_util.h" | 15 #include "base/memory/ptr_util.h" |
| 16 #include "base/metrics/histogram_macros.h" | 16 #include "base/metrics/histogram_macros.h" |
| 17 #include "base/metrics/sparse_histogram.h" | 17 #include "base/metrics/sparse_histogram.h" |
| 18 #include "base/strings/string16.h" | 18 #include "base/strings/string16.h" |
| 19 #include "base/strings/string_number_conversions.h" | 19 #include "base/strings/string_number_conversions.h" |
| 20 #include "base/strings/utf_string_conversions.h" | 20 #include "base/strings/utf_string_conversions.h" |
| 21 #include "base/values.h" | 21 #include "base/values.h" |
| 22 #include "chrome/app/chrome_command_ids.h" | 22 #include "chrome/app/chrome_command_ids.h" |
| 23 #include "chrome/browser/browser_process.h" | 23 #include "chrome/browser/browser_process.h" |
| 24 #include "chrome/browser/browsing_data/autofill_counter.h" | 24 #include "chrome/browser/browsing_data/autofill_counter.h" |
| 25 #include "chrome/browser/browsing_data/browsing_data_counter.h" | |
| 26 #include "chrome/browser/browsing_data/browsing_data_counter_utils.h" | 25 #include "chrome/browser/browsing_data/browsing_data_counter_utils.h" |
| 27 #include "chrome/browser/browsing_data/browsing_data_helper.h" | 26 #include "chrome/browser/browsing_data/browsing_data_helper.h" |
| 28 #include "chrome/browser/browsing_data/browsing_data_remover.h" | 27 #include "chrome/browser/browsing_data/browsing_data_remover.h" |
| 29 #include "chrome/browser/browsing_data/browsing_data_remover_factory.h" | 28 #include "chrome/browser/browsing_data/browsing_data_remover_factory.h" |
| 30 #include "chrome/browser/browsing_data/cache_counter.h" | 29 #include "chrome/browser/browsing_data/cache_counter.h" |
| 31 #include "chrome/browser/browsing_data/history_counter.h" | 30 #include "chrome/browser/browsing_data/history_counter.h" |
| 32 #include "chrome/browser/browsing_data/passwords_counter.h" | 31 #include "chrome/browser/browsing_data/passwords_counter.h" |
| 33 #include "chrome/browser/history/web_history_service_factory.h" | 32 #include "chrome/browser/history/web_history_service_factory.h" |
| 34 #include "chrome/browser/prefs/incognito_mode_prefs.h" | 33 #include "chrome/browser/prefs/incognito_mode_prefs.h" |
| 35 #include "chrome/browser/profiles/profile.h" | 34 #include "chrome/browser/profiles/profile.h" |
| 36 #include "chrome/browser/sync/profile_sync_service_factory.h" | 35 #include "chrome/browser/sync/profile_sync_service_factory.h" |
| 37 #include "chrome/browser/ui/accelerator_utils.h" | 36 #include "chrome/browser/ui/accelerator_utils.h" |
| 38 #include "chrome/common/channel_info.h" | 37 #include "chrome/common/channel_info.h" |
| 39 #include "chrome/common/pref_names.h" | 38 #include "chrome/common/pref_names.h" |
| 40 #include "chrome/grit/generated_resources.h" | 39 #include "chrome/grit/generated_resources.h" |
| 41 #include "chrome/grit/locale_settings.h" | 40 #include "chrome/grit/locale_settings.h" |
| 41 #include "components/browsing_data/counters/browsing_data_counter.h" |
| 42 #include "components/browsing_data_ui/history_notice_utils.h" | 42 #include "components/browsing_data_ui/history_notice_utils.h" |
| 43 #include "components/google/core/browser/google_util.h" | 43 #include "components/google/core/browser/google_util.h" |
| 44 #include "components/prefs/pref_service.h" | 44 #include "components/prefs/pref_service.h" |
| 45 #include "content/public/browser/notification_details.h" | 45 #include "content/public/browser/notification_details.h" |
| 46 #include "content/public/browser/web_ui.h" | 46 #include "content/public/browser/web_ui.h" |
| 47 #include "ui/base/accelerators/accelerator.h" | 47 #include "ui/base/accelerators/accelerator.h" |
| 48 #include "ui/base/l10n/l10n_util.h" | 48 #include "ui/base/l10n/l10n_util.h" |
| 49 #include "ui/events/keycodes/keyboard_codes.h" | 49 #include "ui/events/keycodes/keyboard_codes.h" |
| 50 | 50 |
| 51 namespace { | 51 namespace { |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 85 clear_plugin_lso_data_enabled_.Init(prefs::kClearPluginLSODataEnabled, prefs); | 85 clear_plugin_lso_data_enabled_.Init(prefs::kClearPluginLSODataEnabled, prefs); |
| 86 pepper_flash_settings_enabled_.Init(prefs::kPepperFlashSettingsEnabled, | 86 pepper_flash_settings_enabled_.Init(prefs::kPepperFlashSettingsEnabled, |
| 87 prefs); | 87 prefs); |
| 88 allow_deleting_browser_history_.Init( | 88 allow_deleting_browser_history_.Init( |
| 89 prefs::kAllowDeletingBrowserHistory, | 89 prefs::kAllowDeletingBrowserHistory, |
| 90 prefs, | 90 prefs, |
| 91 base::Bind(&ClearBrowserDataHandler::OnBrowsingHistoryPrefChanged, | 91 base::Bind(&ClearBrowserDataHandler::OnBrowsingHistoryPrefChanged, |
| 92 base::Unretained(this))); | 92 base::Unretained(this))); |
| 93 | 93 |
| 94 if (AreCountersEnabled()) { | 94 if (AreCountersEnabled()) { |
| 95 AddCounter(base::WrapUnique(new PasswordsCounter())); | 95 Profile* profile = Profile::FromWebUI(web_ui()); |
| 96 AddCounter(base::WrapUnique(new HistoryCounter())); | 96 AddCounter(base::WrapUnique(new PasswordsCounter(profile))); |
| 97 AddCounter(base::WrapUnique(new CacheCounter())); | 97 AddCounter(base::WrapUnique(new HistoryCounter(profile))); |
| 98 AddCounter(base::WrapUnique(new AutofillCounter())); | 98 AddCounter(base::WrapUnique(new CacheCounter(profile))); |
| 99 AddCounter(base::WrapUnique(new AutofillCounter(profile))); |
| 99 | 100 |
| 100 sync_service_ = | 101 sync_service_ = ProfileSyncServiceFactory::GetForProfile(profile); |
| 101 ProfileSyncServiceFactory::GetForProfile(Profile::FromWebUI(web_ui())); | |
| 102 if (sync_service_) | 102 if (sync_service_) |
| 103 sync_service_->AddObserver(this); | 103 sync_service_->AddObserver(this); |
| 104 } | 104 } |
| 105 } | 105 } |
| 106 | 106 |
| 107 void ClearBrowserDataHandler::InitializePage() { | 107 void ClearBrowserDataHandler::InitializePage() { |
| 108 web_ui()->CallJavascriptFunctionUnsafe( | 108 web_ui()->CallJavascriptFunctionUnsafe( |
| 109 "ClearBrowserDataOverlay.createFooter", | 109 "ClearBrowserDataOverlay.createFooter", |
| 110 base::FundamentalValue(AreCountersEnabled()), | 110 base::FundamentalValue(AreCountersEnabled()), |
| 111 base::FundamentalValue(sync_service_ && sync_service_->IsSyncActive()), | 111 base::FundamentalValue(sync_service_ && sync_service_->IsSyncActive()), |
| (...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 310 other_types + num_other_types, | 310 other_types + num_other_types, |
| 311 [prefs](const std::string& pref) { return prefs->GetBoolean(pref); }); | 311 [prefs](const std::string& pref) { return prefs->GetBoolean(pref); }); |
| 312 UMA_HISTOGRAM_SPARSE_SLOWLY( | 312 UMA_HISTOGRAM_SPARSE_SLOWLY( |
| 313 "History.ClearBrowsingData.PasswordsDeletion.AdditionalDatatypesCount", | 313 "History.ClearBrowsingData.PasswordsDeletion.AdditionalDatatypesCount", |
| 314 checked_other_types); | 314 checked_other_types); |
| 315 } | 315 } |
| 316 | 316 |
| 317 remover_ = BrowsingDataRemoverFactory::GetForBrowserContext(profile); | 317 remover_ = BrowsingDataRemoverFactory::GetForBrowserContext(profile); |
| 318 remover_->AddObserver(this); | 318 remover_->AddObserver(this); |
| 319 int period_selected = prefs->GetInteger(prefs::kDeleteTimePeriod); | 319 int period_selected = prefs->GetInteger(prefs::kDeleteTimePeriod); |
| 320 remover_->Remove( | 320 remover_->Remove(Period(static_cast<TimePeriod>(period_selected)), |
| 321 BrowsingDataRemover::Period( | 321 remove_mask, origin_mask); |
| 322 static_cast<BrowsingDataRemover::TimePeriod>(period_selected)), | |
| 323 remove_mask, origin_mask); | |
| 324 | 322 |
| 325 // Store the clear browsing data time. Next time the clear browsing data | 323 // Store the clear browsing data time. Next time the clear browsing data |
| 326 // dialog is open, this time is used to decide whether to display an info | 324 // dialog is open, this time is used to decide whether to display an info |
| 327 // banner or not. | 325 // banner or not. |
| 328 prefs->SetInt64(prefs::kLastClearBrowsingDataTime, | 326 prefs->SetInt64(prefs::kLastClearBrowsingDataTime, |
| 329 base::Time::Now().ToInternalValue()); | 327 base::Time::Now().ToInternalValue()); |
| 330 } | 328 } |
| 331 | 329 |
| 332 void ClearBrowserDataHandler::OnBrowsingDataRemoverDone() { | 330 void ClearBrowserDataHandler::OnBrowsingDataRemoverDone() { |
| 333 remover_->RemoveObserver(this); | 331 remover_->RemoveObserver(this); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 363 void ClearBrowserDataHandler::OnBrowsingHistoryPrefChanged() { | 361 void ClearBrowserDataHandler::OnBrowsingHistoryPrefChanged() { |
| 364 web_ui()->CallJavascriptFunctionUnsafe( | 362 web_ui()->CallJavascriptFunctionUnsafe( |
| 365 "ClearBrowserDataOverlay.setAllowDeletingHistory", | 363 "ClearBrowserDataOverlay.setAllowDeletingHistory", |
| 366 base::FundamentalValue(*allow_deleting_browser_history_)); | 364 base::FundamentalValue(*allow_deleting_browser_history_)); |
| 367 } | 365 } |
| 368 | 366 |
| 369 void ClearBrowserDataHandler::AddCounter( | 367 void ClearBrowserDataHandler::AddCounter( |
| 370 std::unique_ptr<BrowsingDataCounter> counter) { | 368 std::unique_ptr<BrowsingDataCounter> counter) { |
| 371 DCHECK(AreCountersEnabled()); | 369 DCHECK(AreCountersEnabled()); |
| 372 | 370 |
| 373 counter->Init( | 371 counter->Init(Profile::FromWebUI(web_ui())->GetPrefs(), |
| 374 Profile::FromWebUI(web_ui()), | 372 prefs::kDeleteTimePeriod, |
| 375 base::Bind(&ClearBrowserDataHandler::UpdateCounterText, | 373 base::Bind(&ClearBrowserDataHandler::UpdateCounterText, |
| 376 base::Unretained(this))); | 374 base::Unretained(this))); |
| 377 counters_.push_back(std::move(counter)); | 375 counters_.push_back(std::move(counter)); |
| 378 } | 376 } |
| 379 | 377 |
| 380 void ClearBrowserDataHandler::UpdateCounterText( | 378 void ClearBrowserDataHandler::UpdateCounterText( |
| 381 std::unique_ptr<BrowsingDataCounter::Result> result) { | 379 std::unique_ptr<BrowsingDataCounter::Result> result) { |
| 382 DCHECK(AreCountersEnabled()); | 380 DCHECK(AreCountersEnabled()); |
| 383 web_ui()->CallJavascriptFunctionUnsafe( | 381 web_ui()->CallJavascriptFunctionUnsafe( |
| 384 "ClearBrowserDataOverlay.updateCounter", | 382 "ClearBrowserDataOverlay.updateCounter", |
| 385 base::StringValue(result->source()->GetPrefName()), | 383 base::StringValue(result->source()->GetPrefName()), |
| 386 base::StringValue(GetCounterTextFromResult(result.get()))); | 384 base::StringValue(GetCounterTextFromResult(result.get()))); |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 424 "History.ClearBrowsingData.HistoryNoticeShownInFooterWhenUpdated", | 422 "History.ClearBrowsingData.HistoryNoticeShownInFooterWhenUpdated", |
| 425 should_show_history_notice_); | 423 should_show_history_notice_); |
| 426 } | 424 } |
| 427 | 425 |
| 428 void ClearBrowserDataHandler::UpdateHistoryDeletionDialog(bool show) { | 426 void ClearBrowserDataHandler::UpdateHistoryDeletionDialog(bool show) { |
| 429 // This is used by OnBrowsingDataRemoverDone (when the deletion finishes). | 427 // This is used by OnBrowsingDataRemoverDone (when the deletion finishes). |
| 430 should_show_history_deletion_dialog_ = show; | 428 should_show_history_deletion_dialog_ = show; |
| 431 } | 429 } |
| 432 | 430 |
| 433 } // namespace options | 431 } // namespace options |
| OLD | NEW |