Chromium Code Reviews| 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/string16.h" | 10 #include "base/string16.h" |
| 11 #include "base/values.h" | 11 #include "base/values.h" |
| 12 #include "chrome/browser/browser_process.h" | 12 #include "chrome/browser/browser_process.h" |
| 13 #include "chrome/browser/browsing_data/browsing_data_helper.h" | 13 #include "chrome/browser/browsing_data/browsing_data_helper.h" |
| 14 #include "chrome/browser/browsing_data/browsing_data_remover.h" | 14 #include "chrome/browser/browsing_data/browsing_data_remover.h" |
| 15 #include "chrome/browser/google/google_util.h" | 15 #include "chrome/browser/google/google_util.h" |
| 16 #include "chrome/browser/prefs/pref_service.h" | 16 #include "chrome/browser/prefs/pref_service.h" |
| 17 #include "chrome/browser/profiles/profile.h" | 17 #include "chrome/browser/profiles/profile.h" |
| 18 #include "chrome/common/pref_names.h" | 18 #include "chrome/common/pref_names.h" |
| 19 #include "content/public/browser/notification_details.h" | 19 #include "content/public/browser/notification_details.h" |
| 20 #include "content/public/browser/web_ui.h" | 20 #include "content/public/browser/web_ui.h" |
| 21 #include "grit/chromium_strings.h" | 21 #include "grit/chromium_strings.h" |
| 22 #include "grit/generated_resources.h" | 22 #include "grit/generated_resources.h" |
| 23 #include "grit/locale_settings.h" | 23 #include "grit/locale_settings.h" |
| 24 #include "ui/base/accelerators/accelerator.h" | |
| 24 #include "ui/base/l10n/l10n_util.h" | 25 #include "ui/base/l10n/l10n_util.h" |
| 25 | 26 |
| 26 namespace { | 27 namespace { |
| 28 const uint kHoursPerDay = 24; | |
|
James Hawkins
2013/02/01 18:47:11
Go ahead and keep this inside the method until we
markusheintz_
2013/02/01 18:52:18
Done.
| |
| 29 | |
| 27 const char kClearBrowsingDataLearnMoreUrl[] = | 30 const char kClearBrowsingDataLearnMoreUrl[] = |
| 28 "https://support.google.com/chrome/?p=settings_clear_browsing_data"; | 31 "https://support.google.com/chrome/?p=settings_clear_browsing_data"; |
| 29 } | 32 } |
| 30 | 33 |
| 31 namespace options { | 34 namespace options { |
| 32 | 35 |
| 33 ClearBrowserDataHandler::ClearBrowserDataHandler() | 36 ClearBrowserDataHandler::ClearBrowserDataHandler() |
| 34 : remover_(NULL) { | 37 : remover_(NULL) { |
| 35 } | 38 } |
| 36 | 39 |
| 37 ClearBrowserDataHandler::~ClearBrowserDataHandler() { | 40 ClearBrowserDataHandler::~ClearBrowserDataHandler() { |
| 38 if (remover_) | 41 if (remover_) |
| 39 remover_->RemoveObserver(this); | 42 remover_->RemoveObserver(this); |
| 40 } | 43 } |
| 41 | 44 |
| 42 void ClearBrowserDataHandler::InitializeHandler() { | 45 void ClearBrowserDataHandler::InitializeHandler() { |
| 43 clear_plugin_lso_data_enabled_.Init(prefs::kClearPluginLSODataEnabled, | 46 clear_plugin_lso_data_enabled_.Init(prefs::kClearPluginLSODataEnabled, |
| 44 Profile::FromWebUI(web_ui())->GetPrefs()); | 47 Profile::FromWebUI(web_ui())->GetPrefs()); |
| 45 pepper_flash_settings_enabled_.Init(prefs::kPepperFlashSettingsEnabled, | 48 pepper_flash_settings_enabled_.Init(prefs::kPepperFlashSettingsEnabled, |
| 46 Profile::FromWebUI(web_ui())->GetPrefs()); | 49 Profile::FromWebUI(web_ui())->GetPrefs()); |
| 47 } | 50 } |
| 48 | 51 |
| 52 void ClearBrowserDataHandler::InitializePage() { | |
| 53 UpdateInfoBannerVisibility(); | |
| 54 } | |
| 55 | |
| 56 void ClearBrowserDataHandler::UpdateInfoBannerVisibility() { | |
| 57 Profile* profile = Profile::FromWebUI(web_ui()); | |
| 58 base::Time lastClearBrowsingDataTime = base::Time::FromInternalValue( | |
| 59 profile->GetPrefs()->GetInt64(prefs::kLastClearBrowsingDataTime)); | |
| 60 | |
| 61 bool visible = (base::Time::Now() - lastClearBrowsingDataTime) <= | |
| 62 base::TimeDelta::FromHours(kHoursPerDay); | |
| 63 | |
| 64 ListValue args; | |
| 65 args.Append(Value::CreateBooleanValue(visible)); | |
| 66 web_ui()->CallJavascriptFunction( | |
| 67 "ClearBrowserDataOverlay.setBannerVisibility", args); | |
| 68 } | |
| 69 | |
| 49 void ClearBrowserDataHandler::GetLocalizedValues( | 70 void ClearBrowserDataHandler::GetLocalizedValues( |
| 50 DictionaryValue* localized_strings) { | 71 DictionaryValue* localized_strings) { |
| 51 DCHECK(localized_strings); | 72 DCHECK(localized_strings); |
| 52 | 73 |
| 53 static OptionsStringResource resources[] = { | 74 static OptionsStringResource resources[] = { |
| 54 { "clearBrowserDataLabel", IDS_CLEAR_BROWSING_DATA_LABEL }, | 75 { "clearBrowserDataLabel", IDS_CLEAR_BROWSING_DATA_LABEL }, |
| 55 { "deleteBrowsingHistoryCheckbox", IDS_DEL_BROWSING_HISTORY_CHKBOX }, | 76 { "deleteBrowsingHistoryCheckbox", IDS_DEL_BROWSING_HISTORY_CHKBOX }, |
| 56 { "deleteDownloadHistoryCheckbox", IDS_DEL_DOWNLOAD_HISTORY_CHKBOX }, | 77 { "deleteDownloadHistoryCheckbox", IDS_DEL_DOWNLOAD_HISTORY_CHKBOX }, |
| 57 { "deleteCacheCheckbox", IDS_DEL_CACHE_CHKBOX }, | 78 { "deleteCacheCheckbox", IDS_DEL_CACHE_CHKBOX }, |
| 58 { "deleteCookiesCheckbox", IDS_DEL_COOKIES_CHKBOX }, | 79 { "deleteCookiesCheckbox", IDS_DEL_COOKIES_CHKBOX }, |
| 59 { "deleteCookiesFlashCheckbox", IDS_DEL_COOKIES_FLASH_CHKBOX }, | 80 { "deleteCookiesFlashCheckbox", IDS_DEL_COOKIES_FLASH_CHKBOX }, |
| 60 { "deletePasswordsCheckbox", IDS_DEL_PASSWORDS_CHKBOX }, | 81 { "deletePasswordsCheckbox", IDS_DEL_PASSWORDS_CHKBOX }, |
| 61 { "deleteFormDataCheckbox", IDS_DEL_FORM_DATA_CHKBOX }, | 82 { "deleteFormDataCheckbox", IDS_DEL_FORM_DATA_CHKBOX }, |
| 62 { "deleteHostedAppsDataCheckbox", IDS_DEL_HOSTED_APPS_DATA_CHKBOX }, | 83 { "deleteHostedAppsDataCheckbox", IDS_DEL_HOSTED_APPS_DATA_CHKBOX }, |
| 63 { "deauthorizeContentLicensesCheckbox", | 84 { "deauthorizeContentLicensesCheckbox", |
| 64 IDS_DEAUTHORIZE_CONTENT_LICENSES_CHKBOX }, | 85 IDS_DEAUTHORIZE_CONTENT_LICENSES_CHKBOX }, |
| 65 { "clearBrowserDataCommit", IDS_CLEAR_BROWSING_DATA_COMMIT }, | 86 { "clearBrowserDataCommit", IDS_CLEAR_BROWSING_DATA_COMMIT }, |
| 66 { "flash_storage_url", IDS_FLASH_STORAGE_URL }, | 87 { "flash_storage_url", IDS_FLASH_STORAGE_URL }, |
| 67 }; | 88 }; |
| 68 | 89 |
| 69 RegisterStrings(localized_strings, resources, arraysize(resources)); | 90 RegisterStrings(localized_strings, resources, arraysize(resources)); |
| 70 RegisterTitle(localized_strings, "clearBrowserDataOverlay", | 91 RegisterTitle(localized_strings, "clearBrowserDataOverlay", |
| 71 IDS_CLEAR_BROWSING_DATA_TITLE); | 92 IDS_CLEAR_BROWSING_DATA_TITLE); |
| 72 localized_strings->SetString( | 93 localized_strings->SetString( |
| 73 "clearBrowsingDataLearnMoreUrl", | 94 "clearBrowsingDataLearnMoreUrl", |
| 74 google_util::StringAppendGoogleLocaleParam( | 95 google_util::StringAppendGoogleLocaleParam( |
| 75 kClearBrowsingDataLearnMoreUrl)); | 96 kClearBrowsingDataLearnMoreUrl)); |
| 76 | 97 |
| 98 ui::Accelerator acc(ui::VKEY_N, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN); | |
| 99 localized_strings->SetString( | |
| 100 "clearBrowserDataInfoBar", | |
| 101 l10n_util::GetStringFUTF16( | |
| 102 IDS_CLEAR_BROWSING_DATA_INFO_BAR_TEXT, | |
| 103 acc.GetShortcutText())); | |
| 104 | |
| 77 ListValue* time_list = new ListValue; | 105 ListValue* time_list = new ListValue; |
| 78 for (int i = 0; i < 5; i++) { | 106 for (int i = 0; i < 5; i++) { |
| 79 string16 label_string; | 107 string16 label_string; |
| 80 switch (i) { | 108 switch (i) { |
| 81 case 0: | 109 case 0: |
| 82 label_string = l10n_util::GetStringUTF16(IDS_CLEAR_DATA_HOUR); | 110 label_string = l10n_util::GetStringUTF16(IDS_CLEAR_DATA_HOUR); |
| 83 break; | 111 break; |
| 84 case 1: | 112 case 1: |
| 85 label_string = l10n_util::GetStringUTF16(IDS_CLEAR_DATA_DAY); | 113 label_string = l10n_util::GetStringUTF16(IDS_CLEAR_DATA_DAY); |
| 86 break; | 114 break; |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 145 remove_mask |= site_data_mask; | 173 remove_mask |= site_data_mask; |
| 146 origin_mask |= BrowsingDataHelper::PROTECTED_WEB; | 174 origin_mask |= BrowsingDataHelper::PROTECTED_WEB; |
| 147 } | 175 } |
| 148 | 176 |
| 149 // BrowsingDataRemover deletes itself when done. | 177 // BrowsingDataRemover deletes itself when done. |
| 150 int period_selected = prefs->GetInteger(prefs::kDeleteTimePeriod); | 178 int period_selected = prefs->GetInteger(prefs::kDeleteTimePeriod); |
| 151 remover_ = BrowsingDataRemover::CreateForPeriod(profile, | 179 remover_ = BrowsingDataRemover::CreateForPeriod(profile, |
| 152 static_cast<BrowsingDataRemover::TimePeriod>(period_selected)); | 180 static_cast<BrowsingDataRemover::TimePeriod>(period_selected)); |
| 153 remover_->AddObserver(this); | 181 remover_->AddObserver(this); |
| 154 remover_->Remove(remove_mask, origin_mask); | 182 remover_->Remove(remove_mask, origin_mask); |
| 183 | |
| 184 // Store the clear browsing data time. Next time the clear browsing data | |
| 185 // dialog is open, this time is used to decide whether to display an info | |
| 186 // banner or not. | |
| 187 prefs->SetInt64(prefs::kLastClearBrowsingDataTime, | |
| 188 base::Time::Now().ToInternalValue()); | |
| 155 } | 189 } |
| 156 | 190 |
| 157 void ClearBrowserDataHandler::OnBrowsingDataRemoverDone() { | 191 void ClearBrowserDataHandler::OnBrowsingDataRemoverDone() { |
| 158 // No need to remove ourselves as an observer as BrowsingDataRemover deletes | 192 // No need to remove ourselves as an observer as BrowsingDataRemover deletes |
| 159 // itself after we return. | 193 // itself after we return. |
| 160 remover_ = NULL; | 194 remover_ = NULL; |
| 161 web_ui()->CallJavascriptFunction("ClearBrowserDataOverlay.doneClearing"); | 195 web_ui()->CallJavascriptFunction("ClearBrowserDataOverlay.doneClearing"); |
| 162 } | 196 } |
| 163 | 197 |
| 164 } // namespace options | 198 } // namespace options |
| OLD | NEW |