Chromium Code Reviews| Index: components/browsing_data/core/browsing_data_utils.cc |
| diff --git a/components/browsing_data/core/browsing_data_utils.cc b/components/browsing_data/core/browsing_data_utils.cc |
| index aa516ad8b6b8727bd9a5998794325c28cda4b3ef..ef81827400c020a97e635877d5a59486250eda96 100644 |
| --- a/components/browsing_data/core/browsing_data_utils.cc |
| +++ b/components/browsing_data/core/browsing_data_utils.cc |
| @@ -4,6 +4,13 @@ |
| #include "components/browsing_data/core/browsing_data_utils.h" |
| +#include "components/browsing_data/core/counters/autofill_counter.h" |
| +#include "components/browsing_data/core/counters/history_counter.h" |
| +#include "components/browsing_data/core/counters/passwords_counter.h" |
| +#include "components/browsing_data/core/pref_names.h" |
| +#include "grit/components_strings.h" |
| +#include "ui/base/l10n/l10n_util.h" |
| + |
| namespace browsing_data { |
| base::Time CalculateBeginDeleteTime(TimePeriod time_period) { |
| @@ -29,4 +36,108 @@ base::Time CalculateBeginDeleteTime(TimePeriod time_period) { |
| return delete_begin_time - diff; |
| } |
| +base::string16 GetCounterTextFromResult( |
| + const browsing_data::BrowsingDataCounter::Result* result) { |
| + base::string16 text; |
| + std::string pref_name = result->source()->GetPrefName(); |
| + |
| + if (!result->Finished()) { |
| + // The counter is still counting. |
| + text = l10n_util::GetStringUTF16(IDS_CLEAR_BROWSING_DATA_CALCULATING); |
| + |
| + } else if (pref_name == browsing_data::prefs::kDeletePasswords || |
| + pref_name == browsing_data::prefs::kDeleteDownloadHistory) { |
| + // Counters with trivially formatted result: passwords and downloads. |
| + browsing_data::BrowsingDataCounter::ResultInt count = |
| + static_cast<const browsing_data::BrowsingDataCounter::FinishedResult*>( |
| + result) |
| + ->Value(); |
| + text = l10n_util::GetPluralStringFUTF16( |
| + pref_name == browsing_data::prefs::kDeletePasswords |
| + ? IDS_DEL_PASSWORDS_COUNTER |
| + : IDS_DEL_DOWNLOADS_COUNTER, |
| + count); |
| + } else if (pref_name == browsing_data::prefs::kDeleteBrowsingHistory) { |
| + // History counter. |
| + const browsing_data::HistoryCounter::HistoryResult* history_result = |
| + static_cast<const browsing_data::HistoryCounter::HistoryResult*>( |
| + result); |
| + browsing_data::BrowsingDataCounter::ResultInt local_item_count = |
| + history_result->Value(); |
| + bool has_synced_visits = history_result->has_synced_visits(); |
| + |
| + text = has_synced_visits |
| + ? l10n_util::GetPluralStringFUTF16( |
| + IDS_DEL_BROWSING_HISTORY_COUNTER_SYNCED, local_item_count) |
| + : l10n_util::GetPluralStringFUTF16( |
| + IDS_DEL_BROWSING_HISTORY_COUNTER, local_item_count); |
| + |
| + } else if (pref_name == browsing_data::prefs::kDeleteFormData) { |
| + // Autofill counter. |
| + const browsing_data::AutofillCounter::AutofillResult* autofill_result = |
| + static_cast<const browsing_data::AutofillCounter::AutofillResult*>( |
| + result); |
| + browsing_data::AutofillCounter::ResultInt num_suggestions = |
| + autofill_result->Value(); |
| + browsing_data::AutofillCounter::ResultInt num_credit_cards = |
| + autofill_result->num_credit_cards(); |
| + browsing_data::AutofillCounter::ResultInt num_addresses = |
| + autofill_result->num_addresses(); |
| + |
| + std::vector<base::string16> displayed_strings; |
| + |
| + if (num_credit_cards) { |
| + displayed_strings.push_back(l10n_util::GetPluralStringFUTF16( |
| + IDS_DEL_AUTOFILL_COUNTER_CREDIT_CARDS, num_credit_cards)); |
| + } |
| + if (num_addresses) { |
| + displayed_strings.push_back(l10n_util::GetPluralStringFUTF16( |
| + IDS_DEL_AUTOFILL_COUNTER_ADDRESSES, num_addresses)); |
| + } |
| + if (num_suggestions) { |
| + // We use a different wording for autocomplete suggestions based on the |
| + // length of the entire string. |
| + switch (displayed_strings.size()) { |
| + case 0: |
| + displayed_strings.push_back(l10n_util::GetPluralStringFUTF16( |
| + IDS_DEL_AUTOFILL_COUNTER_SUGGESTIONS, num_suggestions)); |
| + break; |
| + case 1: |
| + displayed_strings.push_back(l10n_util::GetPluralStringFUTF16( |
| + IDS_DEL_AUTOFILL_COUNTER_SUGGESTIONS_LONG, num_suggestions)); |
| + break; |
| + case 2: |
| + displayed_strings.push_back(l10n_util::GetPluralStringFUTF16( |
| + IDS_DEL_AUTOFILL_COUNTER_SUGGESTIONS_SHORT, num_suggestions)); |
| + break; |
| + default: |
| + NOTREACHED(); |
| + } |
| + } |
| + |
| + // Construct the resulting string from the sections in |displayed_strings|. |
| + switch (displayed_strings.size()) { |
| + case 0: |
| + text = l10n_util::GetStringUTF16(IDS_DEL_AUTOFILL_COUNTER_EMPTY); |
| + break; |
| + case 1: |
| + text = displayed_strings[0]; |
| + break; |
| + case 2: |
| + text = l10n_util::GetStringFUTF16(IDS_DEL_AUTOFILL_COUNTER_TWO_TYPES, |
| + displayed_strings[0], |
| + displayed_strings[1]); |
| + break; |
| + case 3: |
| + text = l10n_util::GetStringFUTF16( |
| + IDS_DEL_AUTOFILL_COUNTER_THREE_TYPES, displayed_strings[0], |
| + displayed_strings[1], displayed_strings[2]); |
| + break; |
| + default: |
| + NOTREACHED(); |
| + } |
| + } |
| + return text; |
|
msramek
2016/08/10 09:59:50
nit: Please also add an empty line above this retu
ioanap
2016/08/10 11:12:32
Done.
|
| +} |
| + |
| } // namespace browsing_data |