OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "components/browsing_data/core/browsing_data_utils.h" | 5 #include "components/browsing_data/core/browsing_data_utils.h" |
6 | 6 |
7 #include "base/metrics/user_metrics.h" | 7 #include "base/metrics/user_metrics.h" |
8 #include "components/browsing_data/core/counters/autofill_counter.h" | 8 #include "components/browsing_data/core/counters/autofill_counter.h" |
9 #include "components/browsing_data/core/counters/history_counter.h" | 9 #include "components/browsing_data/core/counters/history_counter.h" |
10 #include "components/browsing_data/core/counters/passwords_counter.h" | 10 #include "components/browsing_data/core/counters/passwords_counter.h" |
11 #include "components/browsing_data/core/pref_names.h" | 11 #include "components/browsing_data/core/pref_names.h" |
| 12 #include "components/prefs/pref_service.h" |
12 #include "components/strings/grit/components_strings.h" | 13 #include "components/strings/grit/components_strings.h" |
13 #include "ui/base/l10n/l10n_util.h" | 14 #include "ui/base/l10n/l10n_util.h" |
14 | 15 |
15 namespace browsing_data { | 16 namespace browsing_data { |
16 | 17 |
17 base::Time CalculateBeginDeleteTime(TimePeriod time_period) { | 18 base::Time CalculateBeginDeleteTime(TimePeriod time_period) { |
18 base::TimeDelta diff; | 19 base::TimeDelta diff; |
19 base::Time delete_begin_time = base::Time::Now(); | 20 base::Time delete_begin_time = base::Time::Now(); |
20 switch (time_period) { | 21 switch (time_period) { |
21 case LAST_HOUR: | 22 case TimePeriod::LAST_HOUR: |
22 diff = base::TimeDelta::FromHours(1); | 23 diff = base::TimeDelta::FromHours(1); |
23 break; | 24 break; |
24 case LAST_DAY: | 25 case TimePeriod::LAST_DAY: |
25 diff = base::TimeDelta::FromHours(24); | 26 diff = base::TimeDelta::FromHours(24); |
26 break; | 27 break; |
27 case LAST_WEEK: | 28 case TimePeriod::LAST_WEEK: |
28 diff = base::TimeDelta::FromHours(7 * 24); | 29 diff = base::TimeDelta::FromHours(7 * 24); |
29 break; | 30 break; |
30 case FOUR_WEEKS: | 31 case TimePeriod::FOUR_WEEKS: |
31 diff = base::TimeDelta::FromHours(4 * 7 * 24); | 32 diff = base::TimeDelta::FromHours(4 * 7 * 24); |
32 break; | 33 break; |
33 case ALL_TIME: | 34 case TimePeriod::ALL_TIME: |
34 delete_begin_time = base::Time(); | 35 delete_begin_time = base::Time(); |
35 break; | 36 break; |
36 } | 37 } |
37 return delete_begin_time - diff; | 38 return delete_begin_time - diff; |
38 } | 39 } |
39 | 40 |
40 base::Time CalculateEndDeleteTime(TimePeriod time_period) { | 41 base::Time CalculateEndDeleteTime(TimePeriod time_period) { |
41 // No TimePeriod currently supports the second time bound. | 42 // No TimePeriod currently supports the second time bound. |
42 return base::Time::Max(); | 43 return base::Time::Max(); |
43 } | 44 } |
44 | 45 |
45 void RecordDeletionForPeriod(TimePeriod period) { | 46 void RecordDeletionForPeriod(TimePeriod period) { |
46 switch (period) { | 47 switch (period) { |
47 case browsing_data::LAST_HOUR: | 48 case TimePeriod::LAST_HOUR: |
48 base::RecordAction(base::UserMetricsAction("ClearBrowsingData_LastHour")); | 49 base::RecordAction(base::UserMetricsAction("ClearBrowsingData_LastHour")); |
49 break; | 50 break; |
50 case browsing_data::LAST_DAY: | 51 case TimePeriod::LAST_DAY: |
51 base::RecordAction(base::UserMetricsAction("ClearBrowsingData_LastDay")); | 52 base::RecordAction(base::UserMetricsAction("ClearBrowsingData_LastDay")); |
52 break; | 53 break; |
53 case browsing_data::LAST_WEEK: | 54 case TimePeriod::LAST_WEEK: |
54 base::RecordAction(base::UserMetricsAction("ClearBrowsingData_LastWeek")); | 55 base::RecordAction(base::UserMetricsAction("ClearBrowsingData_LastWeek")); |
55 break; | 56 break; |
56 case browsing_data::FOUR_WEEKS: | 57 case TimePeriod::FOUR_WEEKS: |
57 base::RecordAction( | 58 base::RecordAction( |
58 base::UserMetricsAction("ClearBrowsingData_LastMonth")); | 59 base::UserMetricsAction("ClearBrowsingData_LastMonth")); |
59 break; | 60 break; |
60 case browsing_data::ALL_TIME: | 61 case TimePeriod::ALL_TIME: |
61 base::RecordAction( | 62 base::RecordAction( |
62 base::UserMetricsAction("ClearBrowsingData_Everything")); | 63 base::UserMetricsAction("ClearBrowsingData_Everything")); |
63 break; | 64 break; |
64 } | 65 } |
65 } | 66 } |
66 | 67 |
67 base::string16 GetCounterTextFromResult( | 68 base::string16 GetCounterTextFromResult( |
68 const browsing_data::BrowsingDataCounter::Result* result) { | 69 const browsing_data::BrowsingDataCounter::Result* result) { |
69 base::string16 text; | 70 base::string16 text; |
70 std::string pref_name = result->source()->GetPrefName(); | 71 std::string pref_name = result->source()->GetPrefName(); |
71 | 72 |
72 if (!result->Finished()) { | 73 if (!result->Finished()) { |
73 // The counter is still counting. | 74 // The counter is still counting. |
74 text = l10n_util::GetStringUTF16(IDS_CLEAR_BROWSING_DATA_CALCULATING); | 75 text = l10n_util::GetStringUTF16(IDS_CLEAR_BROWSING_DATA_CALCULATING); |
75 | 76 |
76 } else if (pref_name == browsing_data::prefs::kDeletePasswords || | 77 } else if (pref_name == browsing_data::prefs::kDeletePasswords || |
77 pref_name == browsing_data::prefs::kDeleteDownloadHistory) { | 78 pref_name == browsing_data::prefs::kDeleteDownloadHistory) { |
78 // Counters with trivially formatted result: passwords and downloads. | 79 // Counters with trivially formatted result: passwords and downloads. |
79 browsing_data::BrowsingDataCounter::ResultInt count = | 80 browsing_data::BrowsingDataCounter::ResultInt count = |
80 static_cast<const browsing_data::BrowsingDataCounter::FinishedResult*>( | 81 static_cast<const browsing_data::BrowsingDataCounter::FinishedResult*>( |
81 result) | 82 result) |
82 ->Value(); | 83 ->Value(); |
83 text = l10n_util::GetPluralStringFUTF16( | 84 text = l10n_util::GetPluralStringFUTF16( |
84 pref_name == browsing_data::prefs::kDeletePasswords | 85 pref_name == browsing_data::prefs::kDeletePasswords |
85 ? IDS_DEL_PASSWORDS_COUNTER | 86 ? IDS_DEL_PASSWORDS_COUNTER |
86 : IDS_DEL_DOWNLOADS_COUNTER, | 87 : IDS_DEL_DOWNLOADS_COUNTER, |
87 count); | 88 count); |
88 } else if (pref_name == browsing_data::prefs::kDeleteBrowsingHistory) { | 89 } else if (pref_name == browsing_data::prefs::kDeleteBrowsingHistory || |
| 90 pref_name == browsing_data::prefs::kDeleteBrowsingHistoryBasic) { |
89 // History counter. | 91 // History counter. |
90 const browsing_data::HistoryCounter::HistoryResult* history_result = | 92 const browsing_data::HistoryCounter::HistoryResult* history_result = |
91 static_cast<const browsing_data::HistoryCounter::HistoryResult*>( | 93 static_cast<const browsing_data::HistoryCounter::HistoryResult*>( |
92 result); | 94 result); |
93 browsing_data::BrowsingDataCounter::ResultInt local_item_count = | 95 browsing_data::BrowsingDataCounter::ResultInt local_item_count = |
94 history_result->Value(); | 96 history_result->Value(); |
95 bool has_synced_visits = history_result->has_synced_visits(); | 97 bool has_synced_visits = history_result->has_synced_visits(); |
96 | 98 |
97 text = has_synced_visits | 99 text = has_synced_visits |
98 ? l10n_util::GetPluralStringFUTF16( | 100 ? l10n_util::GetPluralStringFUTF16( |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
162 displayed_strings[1], displayed_strings[2]); | 164 displayed_strings[1], displayed_strings[2]); |
163 break; | 165 break; |
164 default: | 166 default: |
165 NOTREACHED(); | 167 NOTREACHED(); |
166 } | 168 } |
167 } | 169 } |
168 | 170 |
169 return text; | 171 return text; |
170 } | 172 } |
171 | 173 |
| 174 const char* GetTimePeriodPreferenceName( |
| 175 ClearBrowsingDataTab clear_browsing_data_tab) { |
| 176 return clear_browsing_data_tab == ClearBrowsingDataTab::BASIC |
| 177 ? prefs::kDeleteTimePeriodBasic |
| 178 : prefs::kDeleteTimePeriod; |
| 179 } |
| 180 |
172 bool GetDeletionPreferenceFromDataType( | 181 bool GetDeletionPreferenceFromDataType( |
173 BrowsingDataType data_type, | 182 BrowsingDataType data_type, |
| 183 ClearBrowsingDataTab clear_browsing_data_tab, |
174 std::string* out_pref) { | 184 std::string* out_pref) { |
| 185 if (clear_browsing_data_tab == ClearBrowsingDataTab::BASIC) { |
| 186 switch (data_type) { |
| 187 case BrowsingDataType::HISTORY: |
| 188 *out_pref = prefs::kDeleteBrowsingHistoryBasic; |
| 189 return true; |
| 190 case BrowsingDataType::CACHE: |
| 191 *out_pref = prefs::kDeleteCacheBasic; |
| 192 return true; |
| 193 case BrowsingDataType::COOKIES: |
| 194 *out_pref = prefs::kDeleteCookiesBasic; |
| 195 return true; |
| 196 default: |
| 197 // This is not a valid type for the basic tab. |
| 198 NOTREACHED(); |
| 199 return false; |
| 200 } |
| 201 } |
175 switch (data_type) { | 202 switch (data_type) { |
176 case HISTORY: | 203 case BrowsingDataType::HISTORY: |
177 *out_pref = prefs::kDeleteBrowsingHistory; | 204 *out_pref = prefs::kDeleteBrowsingHistory; |
178 return true; | 205 return true; |
179 case CACHE: | 206 case BrowsingDataType::CACHE: |
180 *out_pref = prefs::kDeleteCache; | 207 *out_pref = prefs::kDeleteCache; |
181 return true; | 208 return true; |
182 case COOKIES: | 209 case BrowsingDataType::COOKIES: |
183 *out_pref = prefs::kDeleteCookies; | 210 *out_pref = prefs::kDeleteCookies; |
184 return true; | 211 return true; |
185 case PASSWORDS: | 212 case BrowsingDataType::PASSWORDS: |
186 *out_pref = prefs::kDeletePasswords; | 213 *out_pref = prefs::kDeletePasswords; |
187 return true; | 214 return true; |
188 case FORM_DATA: | 215 case BrowsingDataType::FORM_DATA: |
189 *out_pref = prefs::kDeleteFormData; | 216 *out_pref = prefs::kDeleteFormData; |
190 return true; | 217 return true; |
191 case BOOKMARKS: | 218 case BrowsingDataType::BOOKMARKS: |
192 // Bookmarks are deleted on the Android side. No corresponding deletion | 219 // Bookmarks are deleted on the Android side. No corresponding deletion |
193 // preference. | 220 // preference. |
194 return false; | 221 return false; |
195 case NUM_TYPES: | 222 case BrowsingDataType::NUM_TYPES: |
196 // This is not an actual type. | 223 // This is not an actual type. |
197 NOTREACHED(); | 224 NOTREACHED(); |
198 return false; | 225 return false; |
199 } | 226 } |
200 NOTREACHED(); | 227 NOTREACHED(); |
201 return false; | 228 return false; |
202 } | 229 } |
203 | 230 |
| 231 void MigratePreferencesToBasic(PrefService* prefs) { |
| 232 if (!prefs->GetBoolean(prefs::kPreferencesMigratedToBasic)) { |
| 233 prefs->SetBoolean(prefs::kDeleteBrowsingHistoryBasic, |
| 234 prefs->GetBoolean(prefs::kDeleteBrowsingHistory)); |
| 235 prefs->SetBoolean(prefs::kDeleteCacheBasic, |
| 236 prefs->GetBoolean(prefs::kDeleteCache)); |
| 237 prefs->SetBoolean(prefs::kDeleteCookiesBasic, |
| 238 prefs->GetBoolean(prefs::kDeleteCookies)); |
| 239 prefs->SetInteger(prefs::kDeleteTimePeriodBasic, |
| 240 prefs->GetInteger(prefs::kDeleteTimePeriod)); |
| 241 prefs->SetBoolean(prefs::kPreferencesMigratedToBasic, true); |
| 242 } |
| 243 } |
| 244 |
204 } // namespace browsing_data | 245 } // namespace browsing_data |
OLD | NEW |