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..a64f02b391db109c1090f51bf8fc799e38dffef8 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,109 @@ 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; |
+} |
+ |
} // namespace browsing_data |