OLD | NEW |
---|---|
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/dom_ui/options/clear_browser_data_handler.h" | 5 #include "chrome/browser/dom_ui/options/clear_browser_data_handler.h" |
6 | 6 |
7 #include "app/l10n_util.h" | 7 #include "app/l10n_util.h" |
8 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
9 #include "base/string16.h" | 9 #include "base/string16.h" |
10 #include "base/values.h" | 10 #include "base/values.h" |
11 #include "chrome/browser/browser_process.h" | |
11 #include "chrome/browser/prefs/pref_service.h" | 12 #include "chrome/browser/prefs/pref_service.h" |
12 #include "chrome/browser/profiles/profile.h" | 13 #include "chrome/browser/profiles/profile.h" |
14 #include "chrome/common/notification_details.h" | |
13 #include "chrome/common/pref_names.h" | 15 #include "chrome/common/pref_names.h" |
14 #include "grit/chromium_strings.h" | 16 #include "grit/chromium_strings.h" |
15 #include "grit/generated_resources.h" | 17 #include "grit/generated_resources.h" |
16 #include "grit/locale_settings.h" | 18 #include "grit/locale_settings.h" |
17 | 19 |
18 ClearBrowserDataHandler::ClearBrowserDataHandler() : remover_(NULL) { | 20 ClearBrowserDataHandler::ClearBrowserDataHandler() : remover_(NULL) { |
19 } | 21 } |
20 | 22 |
21 ClearBrowserDataHandler::~ClearBrowserDataHandler() { | 23 ClearBrowserDataHandler::~ClearBrowserDataHandler() { |
22 if (remover_) { | 24 if (remover_) { |
23 remover_->RemoveObserver(this); | 25 remover_->RemoveObserver(this); |
24 } | 26 } |
25 } | 27 } |
26 | 28 |
29 void ClearBrowserDataHandler::Initialize() { | |
30 clear_plugin_lso_data_enabled_.Init(prefs::kClearPluginLSODataEnabled, | |
31 g_browser_process->local_state(), | |
32 this); | |
33 UpdateClearPluginLSOData(); | |
34 } | |
35 | |
27 void ClearBrowserDataHandler::GetLocalizedValues( | 36 void ClearBrowserDataHandler::GetLocalizedValues( |
28 DictionaryValue* localized_strings) { | 37 DictionaryValue* localized_strings) { |
29 DCHECK(localized_strings); | 38 DCHECK(localized_strings); |
30 localized_strings->SetString("clearBrowsingDataTitle", | 39 localized_strings->SetString("clearBrowsingDataTitle", |
31 l10n_util::GetStringUTF16(IDS_CLEAR_BROWSING_DATA_TITLE)); | 40 l10n_util::GetStringUTF16(IDS_CLEAR_BROWSING_DATA_TITLE)); |
32 localized_strings->SetString("clearBrowsingDataLabel", | 41 localized_strings->SetString("clearBrowsingDataLabel", |
33 l10n_util::GetStringUTF16(IDS_CLEAR_BROWSING_DATA_LABEL)); | 42 l10n_util::GetStringUTF16(IDS_CLEAR_BROWSING_DATA_LABEL)); |
34 localized_strings->SetString("clearBrowsingDataTimeLabel", | 43 localized_strings->SetString("clearBrowsingDataTimeLabel", |
35 l10n_util::GetStringUTF16(IDS_CLEAR_BROWSING_DATA_TIME_LABEL)); | 44 l10n_util::GetStringUTF16(IDS_CLEAR_BROWSING_DATA_TIME_LABEL)); |
36 localized_strings->SetString("deleteBrowsingHistoryCheckbox", | 45 localized_strings->SetString("deleteBrowsingHistoryCheckbox", |
37 l10n_util::GetStringUTF16(IDS_DEL_BROWSING_HISTORY_CHKBOX)); | 46 l10n_util::GetStringUTF16(IDS_DEL_BROWSING_HISTORY_CHKBOX)); |
38 localized_strings->SetString("deleteDownloadHistoryCheckbox", | 47 localized_strings->SetString("deleteDownloadHistoryCheckbox", |
39 l10n_util::GetStringUTF16(IDS_DEL_DOWNLOAD_HISTORY_CHKBOX)); | 48 l10n_util::GetStringUTF16(IDS_DEL_DOWNLOAD_HISTORY_CHKBOX)); |
40 localized_strings->SetString("deleteCacheCheckbox", | 49 localized_strings->SetString("deleteCacheCheckbox", |
41 l10n_util::GetStringUTF16(IDS_DEL_CACHE_CHKBOX)); | 50 l10n_util::GetStringUTF16(IDS_DEL_CACHE_CHKBOX)); |
42 localized_strings->SetString("deleteCookiesCheckbox", | 51 localized_strings->SetString("deleteCookiesCheckbox", |
43 l10n_util::GetStringUTF16(IDS_DEL_COOKIES_CHKBOX)); | 52 l10n_util::GetStringUTF16(IDS_DEL_COOKIES_CHKBOX)); |
44 localized_strings->SetString("deletePasswordsCheckbox", | 53 localized_strings->SetString("deletePasswordsCheckbox", |
45 l10n_util::GetStringUTF16(IDS_DEL_PASSWORDS_CHKBOX)); | 54 l10n_util::GetStringUTF16(IDS_DEL_PASSWORDS_CHKBOX)); |
55 localized_strings->SetString("deleteLSODataCheckbox", | |
56 l10n_util::GetStringUTF16(IDS_DEL_FLASH_DATA_CHKBOX)); | |
46 localized_strings->SetString("deleteFormDataCheckbox", | 57 localized_strings->SetString("deleteFormDataCheckbox", |
47 l10n_util::GetStringUTF16(IDS_DEL_FORM_DATA_CHKBOX)); | 58 l10n_util::GetStringUTF16(IDS_DEL_FORM_DATA_CHKBOX)); |
48 localized_strings->SetString("clearBrowsingDataCommit", | 59 localized_strings->SetString("clearBrowsingDataCommit", |
49 l10n_util::GetStringUTF16(IDS_CLEAR_BROWSING_DATA_COMMIT)); | 60 l10n_util::GetStringUTF16(IDS_CLEAR_BROWSING_DATA_COMMIT)); |
50 localized_strings->SetString("flashStorageSettings", | 61 localized_strings->SetString("flashStorageSettings", |
51 l10n_util::GetStringUTF16(IDS_FLASH_STORAGE_SETTINGS)); | 62 l10n_util::GetStringUTF16(IDS_FLASH_STORAGE_SETTINGS)); |
52 localized_strings->SetString("flash_storage_url", | 63 localized_strings->SetString("flash_storage_url", |
53 l10n_util::GetStringUTF16(IDS_FLASH_STORAGE_URL)); | 64 l10n_util::GetStringUTF16(IDS_FLASH_STORAGE_URL)); |
54 localized_strings->SetString("clearDataDeleting", | 65 localized_strings->SetString("clearDataDeleting", |
55 l10n_util::GetStringUTF16(IDS_CLEAR_DATA_DELETING)); | 66 l10n_util::GetStringUTF16(IDS_CLEAR_DATA_DELETING)); |
(...skipping 26 matching lines...) Loading... | |
82 localized_strings->Set("clearBrowsingDataTimeList", time_list); | 93 localized_strings->Set("clearBrowsingDataTimeList", time_list); |
83 } | 94 } |
84 | 95 |
85 void ClearBrowserDataHandler::RegisterMessages() { | 96 void ClearBrowserDataHandler::RegisterMessages() { |
86 // Setup handlers specific to this panel. | 97 // Setup handlers specific to this panel. |
87 DCHECK(dom_ui_); | 98 DCHECK(dom_ui_); |
88 dom_ui_->RegisterMessageCallback("performClearBrowserData", | 99 dom_ui_->RegisterMessageCallback("performClearBrowserData", |
89 NewCallback(this, &ClearBrowserDataHandler::HandleClearBrowserData)); | 100 NewCallback(this, &ClearBrowserDataHandler::HandleClearBrowserData)); |
90 } | 101 } |
91 | 102 |
103 void ClearBrowserDataHandler::Observe(NotificationType type, | |
104 const NotificationSource& source, | |
105 const NotificationDetails& details) { | |
106 switch (type.value) { | |
107 case NotificationType::PREF_CHANGED: { | |
108 const std::string& pref_name = *Details<std::string>(details).ptr(); | |
109 if (pref_name == prefs::kClearPluginLSODataEnabled) | |
110 UpdateClearPluginLSOData(); | |
111 break; | |
Evan Stade
2010/12/22 00:16:40
should unhandled PREF_CHANGED notifications be pas
Bernhard Bauer
2010/12/22 03:40:05
Hm. I don't want to confuse OptionsPageUIHandler w
| |
112 } | |
113 | |
114 default: | |
115 OptionsPageUIHandler::Observe(type, source, details); | |
116 } | |
117 } | |
118 | |
92 void ClearBrowserDataHandler::HandleClearBrowserData(const ListValue* value) { | 119 void ClearBrowserDataHandler::HandleClearBrowserData(const ListValue* value) { |
93 Profile *profile = dom_ui_->GetProfile(); | 120 Profile *profile = dom_ui_->GetProfile(); |
94 PrefService *prefs = profile->GetPrefs(); | 121 PrefService *prefs = profile->GetPrefs(); |
95 | 122 |
96 int remove_mask = 0; | 123 int remove_mask = 0; |
97 if (prefs->GetBoolean(prefs::kDeleteBrowsingHistory)) | 124 if (prefs->GetBoolean(prefs::kDeleteBrowsingHistory)) |
98 remove_mask |= BrowsingDataRemover::REMOVE_HISTORY; | 125 remove_mask |= BrowsingDataRemover::REMOVE_HISTORY; |
99 if (prefs->GetBoolean(prefs::kDeleteDownloadHistory)) | 126 if (prefs->GetBoolean(prefs::kDeleteDownloadHistory)) |
100 remove_mask |= BrowsingDataRemover::REMOVE_DOWNLOADS; | 127 remove_mask |= BrowsingDataRemover::REMOVE_DOWNLOADS; |
101 if (prefs->GetBoolean(prefs::kDeleteCache)) | 128 if (prefs->GetBoolean(prefs::kDeleteCache)) |
102 remove_mask |= BrowsingDataRemover::REMOVE_CACHE; | 129 remove_mask |= BrowsingDataRemover::REMOVE_CACHE; |
103 if (prefs->GetBoolean(prefs::kDeleteCookies)) | 130 if (prefs->GetBoolean(prefs::kDeleteCookies)) |
104 remove_mask |= BrowsingDataRemover::REMOVE_COOKIES; | 131 remove_mask |= BrowsingDataRemover::REMOVE_COOKIES; |
105 if (prefs->GetBoolean(prefs::kDeletePasswords)) | 132 if (prefs->GetBoolean(prefs::kDeletePasswords)) |
106 remove_mask |= BrowsingDataRemover::REMOVE_PASSWORDS; | 133 remove_mask |= BrowsingDataRemover::REMOVE_PASSWORDS; |
134 if (prefs->GetBoolean(prefs::kDeleteLSOData)) | |
135 remove_mask |= BrowsingDataRemover::REMOVE_LSO_DATA; | |
107 if (prefs->GetBoolean(prefs::kDeleteFormData)) | 136 if (prefs->GetBoolean(prefs::kDeleteFormData)) |
108 remove_mask |= BrowsingDataRemover::REMOVE_FORM_DATA; | 137 remove_mask |= BrowsingDataRemover::REMOVE_FORM_DATA; |
109 | 138 |
110 int period_selected = prefs->GetInteger(prefs::kDeleteTimePeriod); | 139 int period_selected = prefs->GetInteger(prefs::kDeleteTimePeriod); |
111 | 140 |
112 FundamentalValue state(true); | 141 FundamentalValue state(true); |
113 dom_ui_->CallJavascriptFunction(L"ClearBrowserDataOverlay.setClearingState", | 142 dom_ui_->CallJavascriptFunction(L"ClearBrowserDataOverlay.setClearingState", |
114 state); | 143 state); |
115 | 144 |
116 // BrowsingDataRemover deletes itself when done. | 145 // BrowsingDataRemover deletes itself when done. |
117 remover_ = new BrowsingDataRemover(profile, | 146 remover_ = new BrowsingDataRemover(profile, |
118 static_cast<BrowsingDataRemover::TimePeriod>(period_selected), | 147 static_cast<BrowsingDataRemover::TimePeriod>(period_selected), |
119 base::Time()); | 148 base::Time()); |
120 remover_->AddObserver(this); | 149 remover_->AddObserver(this); |
121 remover_->Remove(remove_mask); | 150 remover_->Remove(remove_mask); |
122 } | 151 } |
123 | 152 |
153 void ClearBrowserDataHandler::UpdateClearPluginLSOData() { | |
154 scoped_ptr<Value> enabled( | |
155 Value::CreateBooleanValue(clear_plugin_lso_data_enabled_.GetValue())); | |
156 dom_ui_->CallJavascriptFunction( | |
157 L"ClearBrowserDataOverlay.setClearPluginLSODataEnabled", | |
Evan Stade
2010/12/22 00:16:40
nit: no newline
Bernhard Bauer
2010/12/22 03:40:05
I think the rule is if you start breaking lines, y
Evan Stade
2010/12/22 21:36:16
actually I think either way is acceptable, but thi
Peter Kasting
2010/12/22 22:39:22
That's true of function declarations and definitio
Bernhard Bauer
2011/01/03 11:56:30
OK, Done.
| |
158 *enabled); | |
159 } | |
160 | |
124 void ClearBrowserDataHandler::OnBrowsingDataRemoverDone() { | 161 void ClearBrowserDataHandler::OnBrowsingDataRemoverDone() { |
125 // No need to remove ourselves as an observer as BrowsingDataRemover deletes | 162 // No need to remove ourselves as an observer as BrowsingDataRemover deletes |
126 // itself after we return. | 163 // itself after we return. |
127 remover_ = NULL; | 164 remover_ = NULL; |
128 DCHECK(dom_ui_); | 165 DCHECK(dom_ui_); |
129 dom_ui_->CallJavascriptFunction(L"ClearBrowserDataOverlay.dismiss"); | 166 dom_ui_->CallJavascriptFunction(L"ClearBrowserDataOverlay.dismiss"); |
130 } | 167 } |
131 | 168 |
OLD | NEW |