| 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 |