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 "components/browsing_data/core/counters/autofill_counter.h" | |
8 #include "components/browsing_data/core/counters/history_counter.h" | |
9 #include "components/browsing_data/core/counters/passwords_counter.h" | |
10 #include "components/browsing_data/core/pref_names.h" | |
11 #include "grit/components_strings.h" | |
12 #include "ui/base/l10n/l10n_util.h" | |
13 | |
7 namespace browsing_data { | 14 namespace browsing_data { |
8 | 15 |
9 base::Time CalculateBeginDeleteTime(TimePeriod time_period) { | 16 base::Time CalculateBeginDeleteTime(TimePeriod time_period) { |
10 base::TimeDelta diff; | 17 base::TimeDelta diff; |
11 base::Time delete_begin_time = base::Time::Now(); | 18 base::Time delete_begin_time = base::Time::Now(); |
12 switch (time_period) { | 19 switch (time_period) { |
13 case LAST_HOUR: | 20 case LAST_HOUR: |
14 diff = base::TimeDelta::FromHours(1); | 21 diff = base::TimeDelta::FromHours(1); |
15 break; | 22 break; |
16 case LAST_DAY: | 23 case LAST_DAY: |
17 diff = base::TimeDelta::FromHours(24); | 24 diff = base::TimeDelta::FromHours(24); |
18 break; | 25 break; |
19 case LAST_WEEK: | 26 case LAST_WEEK: |
20 diff = base::TimeDelta::FromHours(7 * 24); | 27 diff = base::TimeDelta::FromHours(7 * 24); |
21 break; | 28 break; |
22 case FOUR_WEEKS: | 29 case FOUR_WEEKS: |
23 diff = base::TimeDelta::FromHours(4 * 7 * 24); | 30 diff = base::TimeDelta::FromHours(4 * 7 * 24); |
24 break; | 31 break; |
25 case ALL_TIME: | 32 case ALL_TIME: |
26 delete_begin_time = base::Time(); | 33 delete_begin_time = base::Time(); |
27 break; | 34 break; |
28 } | 35 } |
29 return delete_begin_time - diff; | 36 return delete_begin_time - diff; |
30 } | 37 } |
31 | 38 |
39 base::string16 GetCounterTextFromResult( | |
40 const browsing_data::BrowsingDataCounter::Result* result) { | |
41 base::string16 text; | |
42 std::string pref_name = result->source()->GetPrefName(); | |
43 | |
44 if (!result->Finished()) { | |
45 // The counter is still counting. | |
46 text = l10n_util::GetStringUTF16(IDS_CLEAR_BROWSING_DATA_CALCULATING); | |
47 | |
48 } else if (pref_name == browsing_data::prefs::kDeletePasswords || | |
49 pref_name == browsing_data::prefs::kDeleteDownloadHistory) { | |
50 // Counters with trivially formatted result: passwords and downloads. | |
51 browsing_data::BrowsingDataCounter::ResultInt count = | |
52 static_cast<const browsing_data::BrowsingDataCounter::FinishedResult*>( | |
53 result) | |
54 ->Value(); | |
55 text = l10n_util::GetPluralStringFUTF16( | |
56 pref_name == browsing_data::prefs::kDeletePasswords | |
57 ? IDS_DEL_PASSWORDS_COUNTER | |
58 : IDS_DEL_DOWNLOADS_COUNTER, | |
59 count); | |
60 } else if (pref_name == browsing_data::prefs::kDeleteBrowsingHistory) { | |
61 // History counter. | |
62 const browsing_data::HistoryCounter::HistoryResult* history_result = | |
63 static_cast<const browsing_data::HistoryCounter::HistoryResult*>( | |
64 result); | |
65 browsing_data::BrowsingDataCounter::ResultInt local_item_count = | |
66 history_result->Value(); | |
67 bool has_synced_visits = history_result->has_synced_visits(); | |
68 | |
69 text = has_synced_visits | |
70 ? l10n_util::GetPluralStringFUTF16( | |
71 IDS_DEL_BROWSING_HISTORY_COUNTER_SYNCED, local_item_count) | |
72 : l10n_util::GetPluralStringFUTF16( | |
73 IDS_DEL_BROWSING_HISTORY_COUNTER, local_item_count); | |
74 | |
75 } else if (pref_name == browsing_data::prefs::kDeleteFormData) { | |
76 // Autofill counter. | |
77 const browsing_data::AutofillCounter::AutofillResult* autofill_result = | |
78 static_cast<const browsing_data::AutofillCounter::AutofillResult*>( | |
79 result); | |
80 browsing_data::AutofillCounter::ResultInt num_suggestions = | |
81 autofill_result->Value(); | |
82 browsing_data::AutofillCounter::ResultInt num_credit_cards = | |
83 autofill_result->num_credit_cards(); | |
84 browsing_data::AutofillCounter::ResultInt num_addresses = | |
85 autofill_result->num_addresses(); | |
86 | |
87 std::vector<base::string16> displayed_strings; | |
88 | |
89 if (num_credit_cards) { | |
90 displayed_strings.push_back(l10n_util::GetPluralStringFUTF16( | |
91 IDS_DEL_AUTOFILL_COUNTER_CREDIT_CARDS, num_credit_cards)); | |
92 } | |
93 if (num_addresses) { | |
94 displayed_strings.push_back(l10n_util::GetPluralStringFUTF16( | |
95 IDS_DEL_AUTOFILL_COUNTER_ADDRESSES, num_addresses)); | |
96 } | |
97 if (num_suggestions) { | |
98 // We use a different wording for autocomplete suggestions based on the | |
99 // length of the entire string. | |
100 switch (displayed_strings.size()) { | |
101 case 0: | |
102 displayed_strings.push_back(l10n_util::GetPluralStringFUTF16( | |
103 IDS_DEL_AUTOFILL_COUNTER_SUGGESTIONS, num_suggestions)); | |
104 break; | |
105 case 1: | |
106 displayed_strings.push_back(l10n_util::GetPluralStringFUTF16( | |
107 IDS_DEL_AUTOFILL_COUNTER_SUGGESTIONS_LONG, num_suggestions)); | |
108 break; | |
109 case 2: | |
110 displayed_strings.push_back(l10n_util::GetPluralStringFUTF16( | |
111 IDS_DEL_AUTOFILL_COUNTER_SUGGESTIONS_SHORT, num_suggestions)); | |
112 break; | |
113 default: | |
114 NOTREACHED(); | |
115 } | |
116 } | |
117 | |
118 // Construct the resulting string from the sections in |displayed_strings|. | |
119 switch (displayed_strings.size()) { | |
120 case 0: | |
121 text = l10n_util::GetStringUTF16(IDS_DEL_AUTOFILL_COUNTER_EMPTY); | |
122 break; | |
123 case 1: | |
124 text = displayed_strings[0]; | |
125 break; | |
126 case 2: | |
127 text = l10n_util::GetStringFUTF16(IDS_DEL_AUTOFILL_COUNTER_TWO_TYPES, | |
128 displayed_strings[0], | |
129 displayed_strings[1]); | |
130 break; | |
131 case 3: | |
132 text = l10n_util::GetStringFUTF16( | |
133 IDS_DEL_AUTOFILL_COUNTER_THREE_TYPES, displayed_strings[0], | |
134 displayed_strings[1], displayed_strings[2]); | |
135 break; | |
136 default: | |
137 NOTREACHED(); | |
138 } | |
139 } | |
140 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.
| |
141 } | |
142 | |
32 } // namespace browsing_data | 143 } // namespace browsing_data |
OLD | NEW |