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