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

Side by Side Diff: chrome/browser/ui/webui/options/clear_browser_data_handler.cc

Issue 12092089: Display an info banner on the clear browsing data dialog if the browsing data was cleared within th… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address comments round 2 from James. Created 7 years, 10 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 | Annotate | Revision Log
OLDNEW
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 const int64 kHoursPerDay = 24;
60 bool visible = (base::Time::Now() - lastClearBrowsingDataTime) <=
61 base::TimeDelta::FromHours(kHoursPerDay);
62
63 ListValue args;
64 args.Append(Value::CreateBooleanValue(visible));
65 web_ui()->CallJavascriptFunction(
66 "ClearBrowserDataOverlay.setBannerVisibility", args);
67 }
68
49 void ClearBrowserDataHandler::GetLocalizedValues( 69 void ClearBrowserDataHandler::GetLocalizedValues(
50 DictionaryValue* localized_strings) { 70 DictionaryValue* localized_strings) {
51 DCHECK(localized_strings); 71 DCHECK(localized_strings);
52 72
53 static OptionsStringResource resources[] = { 73 static OptionsStringResource resources[] = {
54 { "clearBrowserDataLabel", IDS_CLEAR_BROWSING_DATA_LABEL }, 74 { "clearBrowserDataLabel", IDS_CLEAR_BROWSING_DATA_LABEL },
55 { "deleteBrowsingHistoryCheckbox", IDS_DEL_BROWSING_HISTORY_CHKBOX }, 75 { "deleteBrowsingHistoryCheckbox", IDS_DEL_BROWSING_HISTORY_CHKBOX },
56 { "deleteDownloadHistoryCheckbox", IDS_DEL_DOWNLOAD_HISTORY_CHKBOX }, 76 { "deleteDownloadHistoryCheckbox", IDS_DEL_DOWNLOAD_HISTORY_CHKBOX },
57 { "deleteCacheCheckbox", IDS_DEL_CACHE_CHKBOX }, 77 { "deleteCacheCheckbox", IDS_DEL_CACHE_CHKBOX },
58 { "deleteCookiesCheckbox", IDS_DEL_COOKIES_CHKBOX }, 78 { "deleteCookiesCheckbox", IDS_DEL_COOKIES_CHKBOX },
59 { "deleteCookiesFlashCheckbox", IDS_DEL_COOKIES_FLASH_CHKBOX }, 79 { "deleteCookiesFlashCheckbox", IDS_DEL_COOKIES_FLASH_CHKBOX },
60 { "deletePasswordsCheckbox", IDS_DEL_PASSWORDS_CHKBOX }, 80 { "deletePasswordsCheckbox", IDS_DEL_PASSWORDS_CHKBOX },
61 { "deleteFormDataCheckbox", IDS_DEL_FORM_DATA_CHKBOX }, 81 { "deleteFormDataCheckbox", IDS_DEL_FORM_DATA_CHKBOX },
62 { "deleteHostedAppsDataCheckbox", IDS_DEL_HOSTED_APPS_DATA_CHKBOX }, 82 { "deleteHostedAppsDataCheckbox", IDS_DEL_HOSTED_APPS_DATA_CHKBOX },
63 { "deauthorizeContentLicensesCheckbox", 83 { "deauthorizeContentLicensesCheckbox",
64 IDS_DEAUTHORIZE_CONTENT_LICENSES_CHKBOX }, 84 IDS_DEAUTHORIZE_CONTENT_LICENSES_CHKBOX },
65 { "clearBrowserDataCommit", IDS_CLEAR_BROWSING_DATA_COMMIT }, 85 { "clearBrowserDataCommit", IDS_CLEAR_BROWSING_DATA_COMMIT },
66 { "flash_storage_url", IDS_FLASH_STORAGE_URL }, 86 { "flash_storage_url", IDS_FLASH_STORAGE_URL },
67 }; 87 };
68 88
69 RegisterStrings(localized_strings, resources, arraysize(resources)); 89 RegisterStrings(localized_strings, resources, arraysize(resources));
70 RegisterTitle(localized_strings, "clearBrowserDataOverlay", 90 RegisterTitle(localized_strings, "clearBrowserDataOverlay",
71 IDS_CLEAR_BROWSING_DATA_TITLE); 91 IDS_CLEAR_BROWSING_DATA_TITLE);
72 localized_strings->SetString( 92 localized_strings->SetString(
73 "clearBrowsingDataLearnMoreUrl", 93 "clearBrowsingDataLearnMoreUrl",
74 google_util::StringAppendGoogleLocaleParam( 94 google_util::StringAppendGoogleLocaleParam(
75 kClearBrowsingDataLearnMoreUrl)); 95 kClearBrowsingDataLearnMoreUrl));
76 96
97 ui::Accelerator acc(ui::VKEY_N, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN);
98 localized_strings->SetString(
99 "clearBrowserDataInfoBar",
100 l10n_util::GetStringFUTF16(
101 IDS_CLEAR_BROWSING_DATA_INFO_BAR_TEXT,
102 acc.GetShortcutText()));
103
77 ListValue* time_list = new ListValue; 104 ListValue* time_list = new ListValue;
78 for (int i = 0; i < 5; i++) { 105 for (int i = 0; i < 5; i++) {
79 string16 label_string; 106 string16 label_string;
80 switch (i) { 107 switch (i) {
81 case 0: 108 case 0:
82 label_string = l10n_util::GetStringUTF16(IDS_CLEAR_DATA_HOUR); 109 label_string = l10n_util::GetStringUTF16(IDS_CLEAR_DATA_HOUR);
83 break; 110 break;
84 case 1: 111 case 1:
85 label_string = l10n_util::GetStringUTF16(IDS_CLEAR_DATA_DAY); 112 label_string = l10n_util::GetStringUTF16(IDS_CLEAR_DATA_DAY);
86 break; 113 break;
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 remove_mask |= site_data_mask; 172 remove_mask |= site_data_mask;
146 origin_mask |= BrowsingDataHelper::PROTECTED_WEB; 173 origin_mask |= BrowsingDataHelper::PROTECTED_WEB;
147 } 174 }
148 175
149 // BrowsingDataRemover deletes itself when done. 176 // BrowsingDataRemover deletes itself when done.
150 int period_selected = prefs->GetInteger(prefs::kDeleteTimePeriod); 177 int period_selected = prefs->GetInteger(prefs::kDeleteTimePeriod);
151 remover_ = BrowsingDataRemover::CreateForPeriod(profile, 178 remover_ = BrowsingDataRemover::CreateForPeriod(profile,
152 static_cast<BrowsingDataRemover::TimePeriod>(period_selected)); 179 static_cast<BrowsingDataRemover::TimePeriod>(period_selected));
153 remover_->AddObserver(this); 180 remover_->AddObserver(this);
154 remover_->Remove(remove_mask, origin_mask); 181 remover_->Remove(remove_mask, origin_mask);
182
183 // Store the clear browsing data time. Next time the clear browsing data
184 // dialog is open, this time is used to decide whether to display an info
185 // banner or not.
186 prefs->SetInt64(prefs::kLastClearBrowsingDataTime,
187 base::Time::Now().ToInternalValue());
155 } 188 }
156 189
157 void ClearBrowserDataHandler::OnBrowsingDataRemoverDone() { 190 void ClearBrowserDataHandler::OnBrowsingDataRemoverDone() {
158 // No need to remove ourselves as an observer as BrowsingDataRemover deletes 191 // No need to remove ourselves as an observer as BrowsingDataRemover deletes
159 // itself after we return. 192 // itself after we return.
160 remover_ = NULL; 193 remover_ = NULL;
161 web_ui()->CallJavascriptFunction("ClearBrowserDataOverlay.doneClearing"); 194 web_ui()->CallJavascriptFunction("ClearBrowserDataOverlay.doneClearing");
162 } 195 }
163 196
164 } // namespace options 197 } // namespace options
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/options/clear_browser_data_handler.h ('k') | chrome/common/pref_names.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698