OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 <memory> | 5 #include <memory> |
6 #include <string> | 6 #include <string> |
7 | 7 |
8 #include "base/json/json_string_value_serializer.h" | 8 #include "base/json/json_string_value_serializer.h" |
9 #include "base/memory/ref_counted.h" | 9 #include "base/memory/ref_counted.h" |
10 #include "base/strings/pattern.h" | 10 #include "base/strings/pattern.h" |
11 #include "base/strings/string_util.h" | 11 #include "base/strings/string_util.h" |
12 #include "base/values.h" | 12 #include "base/values.h" |
13 #include "chrome/browser/browsing_data/browsing_data_helper.h" | 13 #include "chrome/browser/browsing_data/browsing_data_helper.h" |
14 #include "chrome/browser/browsing_data/browsing_data_remover.h" | 14 #include "chrome/browser/browsing_data/browsing_data_remover.h" |
15 #include "chrome/browser/browsing_data/browsing_data_remover_factory.h" | 15 #include "chrome/browser/browsing_data/browsing_data_remover_factory.h" |
| 16 #include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h" |
16 #include "chrome/browser/extensions/api/browsing_data/browsing_data_api.h" | 17 #include "chrome/browser/extensions/api/browsing_data/browsing_data_api.h" |
17 #include "chrome/browser/extensions/extension_function_test_utils.h" | 18 #include "chrome/browser/extensions/extension_function_test_utils.h" |
18 #include "chrome/browser/profiles/profile.h" | 19 #include "chrome/browser/profiles/profile.h" |
19 #include "chrome/browser/ui/browser.h" | 20 #include "chrome/browser/ui/browser.h" |
20 #include "chrome/common/pref_names.h" | 21 #include "chrome/common/pref_names.h" |
21 #include "chrome/test/base/in_process_browser_test.h" | 22 #include "chrome/test/base/in_process_browser_test.h" |
22 #include "components/browsing_data/core/browsing_data_utils.h" | 23 #include "components/browsing_data/core/browsing_data_utils.h" |
23 #include "components/browsing_data/core/pref_names.h" | 24 #include "components/browsing_data/core/pref_names.h" |
24 #include "components/prefs/pref_service.h" | 25 #include "components/prefs/pref_service.h" |
25 | 26 |
26 using extension_function_test_utils::RunFunctionAndReturnError; | 27 using extension_function_test_utils::RunFunctionAndReturnError; |
27 using extension_function_test_utils::RunFunctionAndReturnSingleResult; | 28 using extension_function_test_utils::RunFunctionAndReturnSingleResult; |
28 | 29 |
29 namespace { | 30 namespace { |
30 | 31 |
31 enum OriginTypeMask { | 32 enum OriginTypeMask { |
32 UNPROTECTED_WEB = BrowsingDataHelper::UNPROTECTED_WEB, | 33 UNPROTECTED_WEB = |
33 PROTECTED_WEB = BrowsingDataHelper::PROTECTED_WEB, | 34 ChromeBrowsingDataRemoverDelegate::ORIGIN_TYPE_UNPROTECTED_WEB, |
34 EXTENSION = BrowsingDataHelper::EXTENSION | 35 PROTECTED_WEB = ChromeBrowsingDataRemoverDelegate::ORIGIN_TYPE_PROTECTED_WEB, |
| 36 EXTENSION = ChromeBrowsingDataRemoverDelegate::ORIGIN_TYPE_EXTENSION |
35 }; | 37 }; |
36 | 38 |
37 const char kRemoveEverythingArguments[] = | 39 const char kRemoveEverythingArguments[] = |
38 "[{\"since\": 1000}, {" | 40 "[{\"since\": 1000}, {" |
39 "\"appcache\": true, \"cache\": true, \"cookies\": true, " | 41 "\"appcache\": true, \"cache\": true, \"cookies\": true, " |
40 "\"downloads\": true, \"fileSystems\": true, \"formData\": true, " | 42 "\"downloads\": true, \"fileSystems\": true, \"formData\": true, " |
41 "\"history\": true, \"indexedDB\": true, \"localStorage\": true, " | 43 "\"history\": true, \"indexedDB\": true, \"localStorage\": true, " |
42 "\"serverBoundCertificates\": true, \"passwords\": true, " | 44 "\"serverBoundCertificates\": true, \"passwords\": true, " |
43 "\"pluginData\": true, \"serviceWorkers\": true, \"cacheStorage\": true, " | 45 "\"pluginData\": true, \"serviceWorkers\": true, \"cacheStorage\": true, " |
44 "\"webSQL\": true" | 46 "\"webSQL\": true" |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
147 // Since the smallest selectable period is an hour, that should be | 149 // Since the smallest selectable period is an hour, that should be |
148 // sufficient. | 150 // sufficient. |
149 EXPECT_LE(expected_since, since + 10.0 * 1000.0); | 151 EXPECT_LE(expected_since, since + 10.0 * 1000.0); |
150 } | 152 } |
151 | 153 |
152 void SetPrefsAndVerifySettings(int data_type_flags, | 154 void SetPrefsAndVerifySettings(int data_type_flags, |
153 int expected_origin_type_mask, | 155 int expected_origin_type_mask, |
154 int expected_removal_mask) { | 156 int expected_removal_mask) { |
155 PrefService* prefs = browser()->profile()->GetPrefs(); | 157 PrefService* prefs = browser()->profile()->GetPrefs(); |
156 prefs->SetBoolean(browsing_data::prefs::kDeleteCache, | 158 prefs->SetBoolean(browsing_data::prefs::kDeleteCache, |
157 !!(data_type_flags & BrowsingDataRemover::REMOVE_CACHE)); | 159 !!(data_type_flags & |
| 160 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_CACHE)); |
158 prefs->SetBoolean(browsing_data::prefs::kDeleteCookies, | 161 prefs->SetBoolean(browsing_data::prefs::kDeleteCookies, |
159 !!(data_type_flags & BrowsingDataRemover::REMOVE_COOKIES)); | 162 !!(data_type_flags & |
| 163 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_COOKIES)); |
160 prefs->SetBoolean(browsing_data::prefs::kDeleteBrowsingHistory, | 164 prefs->SetBoolean(browsing_data::prefs::kDeleteBrowsingHistory, |
161 !!(data_type_flags & BrowsingDataRemover::REMOVE_HISTORY)); | 165 !!(data_type_flags & |
| 166 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY)); |
162 prefs->SetBoolean(browsing_data::prefs::kDeleteFormData, | 167 prefs->SetBoolean(browsing_data::prefs::kDeleteFormData, |
163 !!(data_type_flags & BrowsingDataRemover::REMOVE_FORM_DATA)); | 168 !!(data_type_flags & |
| 169 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA)); |
164 prefs->SetBoolean(browsing_data::prefs::kDeleteDownloadHistory, | 170 prefs->SetBoolean(browsing_data::prefs::kDeleteDownloadHistory, |
165 !!(data_type_flags & BrowsingDataRemover::REMOVE_DOWNLOADS)); | 171 !!(data_type_flags & |
| 172 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_DOWNLOADS)); |
166 prefs->SetBoolean(browsing_data::prefs::kDeleteHostedAppsData, | 173 prefs->SetBoolean(browsing_data::prefs::kDeleteHostedAppsData, |
167 !!(data_type_flags & | 174 !!(data_type_flags & |
168 BrowsingDataRemover::REMOVE_HOSTED_APP_DATA_TESTONLY)); | 175 ChromeBrowsingDataRemoverDelegate:: |
| 176 DATA_TYPE_HOSTED_APP_DATA_TEST_ONLY)); |
169 prefs->SetBoolean(browsing_data::prefs::kDeletePasswords, | 177 prefs->SetBoolean(browsing_data::prefs::kDeletePasswords, |
170 !!(data_type_flags & BrowsingDataRemover::REMOVE_PASSWORDS)); | 178 !!(data_type_flags & |
| 179 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS)); |
171 prefs->SetBoolean(prefs::kClearPluginLSODataEnabled, | 180 prefs->SetBoolean(prefs::kClearPluginLSODataEnabled, |
172 !!(data_type_flags & BrowsingDataRemover::REMOVE_PLUGIN_DATA)); | 181 !!(data_type_flags & |
| 182 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA)); |
173 | 183 |
174 scoped_refptr<BrowsingDataSettingsFunction> function = | 184 scoped_refptr<BrowsingDataSettingsFunction> function = |
175 new BrowsingDataSettingsFunction(); | 185 new BrowsingDataSettingsFunction(); |
176 SCOPED_TRACE("settings"); | 186 SCOPED_TRACE("settings"); |
177 std::unique_ptr<base::Value> result_value(RunFunctionAndReturnSingleResult( | 187 std::unique_ptr<base::Value> result_value(RunFunctionAndReturnSingleResult( |
178 function.get(), std::string("[]"), browser())); | 188 function.get(), std::string("[]"), browser())); |
179 | 189 |
180 base::DictionaryValue* result; | 190 base::DictionaryValue* result; |
181 EXPECT_TRUE(result_value->GetAsDictionary(&result)); | 191 EXPECT_TRUE(result_value->GetAsDictionary(&result)); |
182 | 192 |
183 base::DictionaryValue* options; | 193 base::DictionaryValue* options; |
184 EXPECT_TRUE(result->GetDictionary("options", &options)); | 194 EXPECT_TRUE(result->GetDictionary("options", &options)); |
185 base::DictionaryValue* origin_types; | 195 base::DictionaryValue* origin_types; |
186 EXPECT_TRUE(options->GetDictionary("originTypes", &origin_types)); | 196 EXPECT_TRUE(options->GetDictionary("originTypes", &origin_types)); |
187 int origin_type_mask = GetAsMask(origin_types, "unprotectedWeb", | 197 int origin_type_mask = GetAsMask(origin_types, "unprotectedWeb", |
188 UNPROTECTED_WEB) | | 198 UNPROTECTED_WEB) | |
189 GetAsMask(origin_types, "protectedWeb", | 199 GetAsMask(origin_types, "protectedWeb", |
190 PROTECTED_WEB) | | 200 PROTECTED_WEB) | |
191 GetAsMask(origin_types, "extension", EXTENSION); | 201 GetAsMask(origin_types, "extension", EXTENSION); |
192 EXPECT_EQ(expected_origin_type_mask, origin_type_mask); | 202 EXPECT_EQ(expected_origin_type_mask, origin_type_mask); |
193 | 203 |
194 base::DictionaryValue* data_to_remove; | 204 base::DictionaryValue* data_to_remove; |
195 EXPECT_TRUE(result->GetDictionary("dataToRemove", &data_to_remove)); | 205 EXPECT_TRUE(result->GetDictionary("dataToRemove", &data_to_remove)); |
196 int removal_mask = | 206 int removal_mask = |
197 GetAsMask(data_to_remove, "appcache", | 207 GetAsMask(data_to_remove, "appcache", |
198 BrowsingDataRemover::REMOVE_APPCACHE) | | 208 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_APP_CACHE) | |
199 GetAsMask(data_to_remove, "cache", BrowsingDataRemover::REMOVE_CACHE) | | 209 GetAsMask(data_to_remove, "cache", |
| 210 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_CACHE) | |
200 GetAsMask(data_to_remove, "cookies", | 211 GetAsMask(data_to_remove, "cookies", |
201 BrowsingDataRemover::REMOVE_COOKIES) | | 212 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_COOKIES) | |
202 GetAsMask(data_to_remove, "downloads", | 213 GetAsMask(data_to_remove, "downloads", |
203 BrowsingDataRemover::REMOVE_DOWNLOADS) | | 214 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_DOWNLOADS) | |
204 GetAsMask(data_to_remove, "fileSystems", | 215 GetAsMask(data_to_remove, "fileSystems", |
205 BrowsingDataRemover::REMOVE_FILE_SYSTEMS) | | 216 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FILE_SYSTEMS) | |
206 GetAsMask(data_to_remove, "formData", | 217 GetAsMask(data_to_remove, "formData", |
207 BrowsingDataRemover::REMOVE_FORM_DATA) | | 218 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA) | |
208 GetAsMask(data_to_remove, "history", | 219 GetAsMask(data_to_remove, "history", |
209 BrowsingDataRemover::REMOVE_HISTORY) | | 220 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY) | |
210 GetAsMask(data_to_remove, "indexedDB", | 221 GetAsMask(data_to_remove, "indexedDB", |
211 BrowsingDataRemover::REMOVE_INDEXEDDB) | | 222 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_INDEXED_DB) | |
212 GetAsMask(data_to_remove, "localStorage", | 223 GetAsMask(data_to_remove, "localStorage", |
213 BrowsingDataRemover::REMOVE_LOCAL_STORAGE) | | 224 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_LOCAL_STORAGE) | |
214 GetAsMask(data_to_remove, "pluginData", | 225 GetAsMask(data_to_remove, "pluginData", |
215 BrowsingDataRemover::REMOVE_PLUGIN_DATA) | | 226 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA) | |
216 GetAsMask(data_to_remove, "passwords", | 227 GetAsMask(data_to_remove, "passwords", |
217 BrowsingDataRemover::REMOVE_PASSWORDS) | | 228 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS) | |
218 GetAsMask(data_to_remove, "serviceWorkers", | 229 GetAsMask( |
219 BrowsingDataRemover::REMOVE_SERVICE_WORKERS) | | 230 data_to_remove, "serviceWorkers", |
| 231 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SERVICE_WORKERS) | |
220 GetAsMask(data_to_remove, "cacheStorage", | 232 GetAsMask(data_to_remove, "cacheStorage", |
221 BrowsingDataRemover::REMOVE_CACHE_STORAGE) | | 233 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_CACHE_STORAGE) | |
222 GetAsMask(data_to_remove, "webSQL", | 234 GetAsMask(data_to_remove, "webSQL", |
223 BrowsingDataRemover::REMOVE_WEBSQL) | | 235 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_WEB_SQL) | |
224 GetAsMask(data_to_remove, "serverBoundCertificates", | 236 GetAsMask(data_to_remove, "serverBoundCertificates", |
225 BrowsingDataRemover::REMOVE_CHANNEL_IDS); | 237 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_CHANNEL_IDS); |
226 | 238 |
227 EXPECT_EQ(expected_removal_mask, removal_mask); | 239 EXPECT_EQ(expected_removal_mask, removal_mask); |
228 } | 240 } |
229 | 241 |
230 // The kAllowDeletingBrowserHistory pref must be set to false before this | 242 // The kAllowDeletingBrowserHistory pref must be set to false before this |
231 // is called. | 243 // is called. |
232 void CheckRemovalPermitted(const std::string& data_types, bool permitted) { | 244 void CheckRemovalPermitted(const std::string& data_types, bool permitted) { |
233 scoped_refptr<BrowsingDataRemoveFunction> function = | 245 scoped_refptr<BrowsingDataRemoveFunction> function = |
234 new BrowsingDataRemoveFunction(); | 246 new BrowsingDataRemoveFunction(); |
235 std::string args = "[{\"since\": 1}," + data_types + "]"; | 247 std::string args = "[{\"since\": 1}," + data_types + "]"; |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
284 | 296 |
285 IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, RemoveBrowsingDataAll) { | 297 IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, RemoveBrowsingDataAll) { |
286 scoped_refptr<BrowsingDataRemoveFunction> function = | 298 scoped_refptr<BrowsingDataRemoveFunction> function = |
287 new BrowsingDataRemoveFunction(); | 299 new BrowsingDataRemoveFunction(); |
288 EXPECT_EQ(NULL, RunFunctionAndReturnSingleResult(function.get(), | 300 EXPECT_EQ(NULL, RunFunctionAndReturnSingleResult(function.get(), |
289 kRemoveEverythingArguments, | 301 kRemoveEverythingArguments, |
290 browser())); | 302 browser())); |
291 | 303 |
292 EXPECT_EQ(base::Time::FromDoubleT(1.0), GetBeginTime()); | 304 EXPECT_EQ(base::Time::FromDoubleT(1.0), GetBeginTime()); |
293 EXPECT_EQ( | 305 EXPECT_EQ( |
294 (BrowsingDataRemover::REMOVE_SITE_DATA | | 306 (ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_DATA | |
295 BrowsingDataRemover::REMOVE_CACHE | | 307 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_CACHE | |
296 BrowsingDataRemover::REMOVE_DOWNLOADS | | 308 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_DOWNLOADS | |
297 BrowsingDataRemover::REMOVE_FORM_DATA | | 309 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA | |
298 BrowsingDataRemover::REMOVE_HISTORY | | 310 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY | |
299 BrowsingDataRemover::REMOVE_PASSWORDS) & | 311 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS) & |
300 // TODO(benwells): implement clearing of site usage data via the | 312 // TODO(benwells): implement clearing of site usage data via the |
301 // browsing data API. https://crbug.com/500801. | 313 // browsing data API. https://crbug.com/500801. |
302 ~BrowsingDataRemover::REMOVE_SITE_USAGE_DATA & | 314 ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_USAGE_DATA & |
303 // TODO(dmurph): implement clearing of durable storage permission | 315 // TODO(dmurph): implement clearing of durable storage permission |
304 // via the browsing data API. https://crbug.com/500801. | 316 // via the browsing data API. https://crbug.com/500801. |
305 ~BrowsingDataRemover::REMOVE_DURABLE_PERMISSION & | 317 ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_DURABLE_PERMISSION & |
306 // We can't remove plugin data inside a test profile. | 318 // We can't remove plugin data inside a test profile. |
307 ~BrowsingDataRemover::REMOVE_PLUGIN_DATA & | 319 ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA & |
308 // TODO(ramyasharma): implement clearing of external protocol data | 320 // TODO(ramyasharma): implement clearing of external protocol data |
309 // via the browsing data API. https://crbug.com/692850. | 321 // via the browsing data API. https://crbug.com/692850. |
310 ~BrowsingDataRemover::REMOVE_EXTERNAL_PROTOCOL_DATA, | 322 ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_EXTERNAL_PROTOCOL_DATA, |
311 GetRemovalMask()); | 323 GetRemovalMask()); |
312 } | 324 } |
313 | 325 |
314 IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, BrowsingDataOriginTypeMask) { | 326 IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, BrowsingDataOriginTypeMask) { |
315 RunBrowsingDataRemoveFunctionAndCompareOriginTypeMask("{}", 0); | 327 RunBrowsingDataRemoveFunctionAndCompareOriginTypeMask("{}", 0); |
316 | 328 |
317 RunBrowsingDataRemoveFunctionAndCompareOriginTypeMask( | 329 RunBrowsingDataRemoveFunctionAndCompareOriginTypeMask( |
318 "{\"unprotectedWeb\": true}", UNPROTECTED_WEB); | 330 "{\"unprotectedWeb\": true}", UNPROTECTED_WEB); |
319 RunBrowsingDataRemoveFunctionAndCompareOriginTypeMask( | 331 RunBrowsingDataRemoveFunctionAndCompareOriginTypeMask( |
320 "{\"protectedWeb\": true}", PROTECTED_WEB); | 332 "{\"protectedWeb\": true}", PROTECTED_WEB); |
(...skipping 12 matching lines...) Expand all Loading... |
333 | 345 |
334 RunBrowsingDataRemoveFunctionAndCompareOriginTypeMask( | 346 RunBrowsingDataRemoveFunctionAndCompareOriginTypeMask( |
335 ("{\"unprotectedWeb\": true, \"protectedWeb\": true, " | 347 ("{\"unprotectedWeb\": true, \"protectedWeb\": true, " |
336 "\"extension\": true}"), | 348 "\"extension\": true}"), |
337 UNPROTECTED_WEB | PROTECTED_WEB | EXTENSION); | 349 UNPROTECTED_WEB | PROTECTED_WEB | EXTENSION); |
338 } | 350 } |
339 | 351 |
340 IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, | 352 IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, |
341 BrowsingDataRemovalMask) { | 353 BrowsingDataRemovalMask) { |
342 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask( | 354 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask( |
343 "appcache", BrowsingDataRemover::REMOVE_APPCACHE); | 355 "appcache", ChromeBrowsingDataRemoverDelegate::DATA_TYPE_APP_CACHE); |
344 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask( | 356 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask( |
345 "cache", BrowsingDataRemover::REMOVE_CACHE); | 357 "cache", ChromeBrowsingDataRemoverDelegate::DATA_TYPE_CACHE); |
346 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask( | 358 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask( |
347 "cookies", BrowsingDataRemover::REMOVE_COOKIES); | 359 "cookies", ChromeBrowsingDataRemoverDelegate::DATA_TYPE_COOKIES); |
348 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask( | 360 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask( |
349 "downloads", BrowsingDataRemover::REMOVE_DOWNLOADS); | 361 "downloads", ChromeBrowsingDataRemoverDelegate::DATA_TYPE_DOWNLOADS); |
350 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask( | 362 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask( |
351 "fileSystems", BrowsingDataRemover::REMOVE_FILE_SYSTEMS); | 363 "fileSystems", |
| 364 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FILE_SYSTEMS); |
352 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask( | 365 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask( |
353 "formData", BrowsingDataRemover::REMOVE_FORM_DATA); | 366 "formData", ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA); |
354 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask( | 367 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask( |
355 "history", BrowsingDataRemover::REMOVE_HISTORY); | 368 "history", ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY); |
356 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask( | 369 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask( |
357 "indexedDB", BrowsingDataRemover::REMOVE_INDEXEDDB); | 370 "indexedDB", ChromeBrowsingDataRemoverDelegate::DATA_TYPE_INDEXED_DB); |
358 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask( | 371 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask( |
359 "localStorage", BrowsingDataRemover::REMOVE_LOCAL_STORAGE); | 372 "localStorage", |
| 373 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_LOCAL_STORAGE); |
360 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask( | 374 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask( |
361 "serverBoundCertificates", | 375 "serverBoundCertificates", |
362 BrowsingDataRemover::REMOVE_CHANNEL_IDS); | 376 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_CHANNEL_IDS); |
363 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask( | 377 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask( |
364 "passwords", BrowsingDataRemover::REMOVE_PASSWORDS); | 378 "passwords", ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS); |
365 // We can't remove plugin data inside a test profile. | 379 // We can't remove plugin data inside a test profile. |
366 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask( | 380 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask( |
367 "serviceWorkers", BrowsingDataRemover::REMOVE_SERVICE_WORKERS); | 381 "serviceWorkers", |
| 382 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SERVICE_WORKERS); |
368 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask( | 383 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask( |
369 "cacheStorage", BrowsingDataRemover::REMOVE_CACHE_STORAGE); | 384 "cacheStorage", |
| 385 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_CACHE_STORAGE); |
370 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask( | 386 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask( |
371 "webSQL", BrowsingDataRemover::REMOVE_WEBSQL); | 387 "webSQL", ChromeBrowsingDataRemoverDelegate::DATA_TYPE_WEB_SQL); |
372 } | 388 } |
373 | 389 |
374 // Test an arbitrary combination of data types. | 390 // Test an arbitrary combination of data types. |
375 IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, | 391 IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, |
376 BrowsingDataRemovalMaskCombination) { | 392 BrowsingDataRemovalMaskCombination) { |
377 RunBrowsingDataRemoveFunctionAndCompareRemovalMask( | 393 RunBrowsingDataRemoveFunctionAndCompareRemovalMask( |
378 "{\"appcache\": true, \"cookies\": true, \"history\": true}", | 394 "{\"appcache\": true, \"cookies\": true, \"history\": true}", |
379 BrowsingDataRemover::REMOVE_APPCACHE | | 395 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_APP_CACHE | |
380 BrowsingDataRemover::REMOVE_COOKIES | | 396 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_COOKIES | |
381 BrowsingDataRemover::REMOVE_HISTORY); | 397 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY); |
382 } | 398 } |
383 | 399 |
384 // Make sure the remove() function accepts the format produced by settings(). | 400 // Make sure the remove() function accepts the format produced by settings(). |
385 IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, | 401 IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, |
386 BrowsingDataRemovalInputFromSettings) { | 402 BrowsingDataRemovalInputFromSettings) { |
387 PrefService* prefs = browser()->profile()->GetPrefs(); | 403 PrefService* prefs = browser()->profile()->GetPrefs(); |
388 prefs->SetBoolean(browsing_data::prefs::kDeleteCache, true); | 404 prefs->SetBoolean(browsing_data::prefs::kDeleteCache, true); |
389 prefs->SetBoolean(browsing_data::prefs::kDeleteBrowsingHistory, true); | 405 prefs->SetBoolean(browsing_data::prefs::kDeleteBrowsingHistory, true); |
390 prefs->SetBoolean(browsing_data::prefs::kDeleteDownloadHistory, true); | 406 prefs->SetBoolean(browsing_data::prefs::kDeleteDownloadHistory, true); |
391 prefs->SetBoolean(browsing_data::prefs::kDeleteCookies, false); | 407 prefs->SetBoolean(browsing_data::prefs::kDeleteCookies, false); |
392 prefs->SetBoolean(browsing_data::prefs::kDeleteFormData, false); | 408 prefs->SetBoolean(browsing_data::prefs::kDeleteFormData, false); |
393 prefs->SetBoolean(browsing_data::prefs::kDeleteHostedAppsData, false); | 409 prefs->SetBoolean(browsing_data::prefs::kDeleteHostedAppsData, false); |
394 prefs->SetBoolean(browsing_data::prefs::kDeletePasswords, false); | 410 prefs->SetBoolean(browsing_data::prefs::kDeletePasswords, false); |
395 prefs->SetBoolean(prefs::kClearPluginLSODataEnabled, false); | 411 prefs->SetBoolean(prefs::kClearPluginLSODataEnabled, false); |
396 int expected_mask = BrowsingDataRemover::REMOVE_CACHE | | 412 int expected_mask = ChromeBrowsingDataRemoverDelegate::DATA_TYPE_CACHE | |
397 BrowsingDataRemover::REMOVE_DOWNLOADS | | 413 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_DOWNLOADS | |
398 BrowsingDataRemover::REMOVE_HISTORY; | 414 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY; |
399 std::string json; | 415 std::string json; |
400 // Scoping for the traces. | 416 // Scoping for the traces. |
401 { | 417 { |
402 scoped_refptr<BrowsingDataSettingsFunction> settings_function = | 418 scoped_refptr<BrowsingDataSettingsFunction> settings_function = |
403 new BrowsingDataSettingsFunction(); | 419 new BrowsingDataSettingsFunction(); |
404 SCOPED_TRACE("settings_json"); | 420 SCOPED_TRACE("settings_json"); |
405 std::unique_ptr<base::Value> result_value(RunFunctionAndReturnSingleResult( | 421 std::unique_ptr<base::Value> result_value(RunFunctionAndReturnSingleResult( |
406 settings_function.get(), std::string("[]"), browser())); | 422 settings_function.get(), std::string("[]"), browser())); |
407 | 423 |
408 base::DictionaryValue* result; | 424 base::DictionaryValue* result; |
(...skipping 12 matching lines...) Expand all Loading... |
421 remove_function.get(), | 437 remove_function.get(), |
422 std::string("[{\"since\": 1},") + json + "]", | 438 std::string("[{\"since\": 1},") + json + "]", |
423 browser())); | 439 browser())); |
424 EXPECT_EQ(expected_mask, GetRemovalMask()); | 440 EXPECT_EQ(expected_mask, GetRemovalMask()); |
425 EXPECT_EQ(UNPROTECTED_WEB, GetOriginTypeMask()); | 441 EXPECT_EQ(UNPROTECTED_WEB, GetOriginTypeMask()); |
426 } | 442 } |
427 } | 443 } |
428 | 444 |
429 IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, ShortcutFunctionRemovalMask) { | 445 IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, ShortcutFunctionRemovalMask) { |
430 RunAndCompareRemovalMask<BrowsingDataRemoveAppcacheFunction>( | 446 RunAndCompareRemovalMask<BrowsingDataRemoveAppcacheFunction>( |
431 BrowsingDataRemover::REMOVE_APPCACHE); | 447 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_APP_CACHE); |
432 RunAndCompareRemovalMask<BrowsingDataRemoveCacheFunction>( | 448 RunAndCompareRemovalMask<BrowsingDataRemoveCacheFunction>( |
433 BrowsingDataRemover::REMOVE_CACHE); | 449 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_CACHE); |
434 RunAndCompareRemovalMask<BrowsingDataRemoveCookiesFunction>( | 450 RunAndCompareRemovalMask<BrowsingDataRemoveCookiesFunction>( |
435 BrowsingDataRemover::REMOVE_COOKIES | | 451 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_COOKIES | |
436 BrowsingDataRemover::REMOVE_CHANNEL_IDS); | 452 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_CHANNEL_IDS); |
437 RunAndCompareRemovalMask<BrowsingDataRemoveDownloadsFunction>( | 453 RunAndCompareRemovalMask<BrowsingDataRemoveDownloadsFunction>( |
438 BrowsingDataRemover::REMOVE_DOWNLOADS); | 454 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_DOWNLOADS); |
439 RunAndCompareRemovalMask<BrowsingDataRemoveFileSystemsFunction>( | 455 RunAndCompareRemovalMask<BrowsingDataRemoveFileSystemsFunction>( |
440 BrowsingDataRemover::REMOVE_FILE_SYSTEMS); | 456 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FILE_SYSTEMS); |
441 RunAndCompareRemovalMask<BrowsingDataRemoveFormDataFunction>( | 457 RunAndCompareRemovalMask<BrowsingDataRemoveFormDataFunction>( |
442 BrowsingDataRemover::REMOVE_FORM_DATA); | 458 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA); |
443 RunAndCompareRemovalMask<BrowsingDataRemoveHistoryFunction>( | 459 RunAndCompareRemovalMask<BrowsingDataRemoveHistoryFunction>( |
444 BrowsingDataRemover::REMOVE_HISTORY); | 460 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY); |
445 RunAndCompareRemovalMask<BrowsingDataRemoveIndexedDBFunction>( | 461 RunAndCompareRemovalMask<BrowsingDataRemoveIndexedDBFunction>( |
446 BrowsingDataRemover::REMOVE_INDEXEDDB); | 462 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_INDEXED_DB); |
447 RunAndCompareRemovalMask<BrowsingDataRemoveLocalStorageFunction>( | 463 RunAndCompareRemovalMask<BrowsingDataRemoveLocalStorageFunction>( |
448 BrowsingDataRemover::REMOVE_LOCAL_STORAGE); | 464 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_LOCAL_STORAGE); |
449 // We can't remove plugin data inside a test profile. | 465 // We can't remove plugin data inside a test profile. |
450 RunAndCompareRemovalMask<BrowsingDataRemovePasswordsFunction>( | 466 RunAndCompareRemovalMask<BrowsingDataRemovePasswordsFunction>( |
451 BrowsingDataRemover::REMOVE_PASSWORDS); | 467 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS); |
452 RunAndCompareRemovalMask<BrowsingDataRemoveServiceWorkersFunction>( | 468 RunAndCompareRemovalMask<BrowsingDataRemoveServiceWorkersFunction>( |
453 BrowsingDataRemover::REMOVE_SERVICE_WORKERS); | 469 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SERVICE_WORKERS); |
454 RunAndCompareRemovalMask<BrowsingDataRemoveWebSQLFunction>( | 470 RunAndCompareRemovalMask<BrowsingDataRemoveWebSQLFunction>( |
455 BrowsingDataRemover::REMOVE_WEBSQL); | 471 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_WEB_SQL); |
456 } | 472 } |
457 | 473 |
458 // Test the processing of the 'delete since' preference. | 474 // Test the processing of the 'delete since' preference. |
459 IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, SettingsFunctionSince) { | 475 IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, SettingsFunctionSince) { |
460 SetSinceAndVerify(browsing_data::TimePeriod::ALL_TIME); | 476 SetSinceAndVerify(browsing_data::TimePeriod::ALL_TIME); |
461 SetSinceAndVerify(browsing_data::TimePeriod::LAST_HOUR); | 477 SetSinceAndVerify(browsing_data::TimePeriod::LAST_HOUR); |
462 SetSinceAndVerify(browsing_data::TimePeriod::LAST_DAY); | 478 SetSinceAndVerify(browsing_data::TimePeriod::LAST_DAY); |
463 SetSinceAndVerify(browsing_data::TimePeriod::LAST_WEEK); | 479 SetSinceAndVerify(browsing_data::TimePeriod::LAST_WEEK); |
464 SetSinceAndVerify(browsing_data::TimePeriod::FOUR_WEEKS); | 480 SetSinceAndVerify(browsing_data::TimePeriod::FOUR_WEEKS); |
465 } | 481 } |
466 | 482 |
467 IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, SettingsFunctionEmpty) { | 483 IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, SettingsFunctionEmpty) { |
468 SetPrefsAndVerifySettings(0, 0, 0); | 484 SetPrefsAndVerifySettings(0, 0, 0); |
469 } | 485 } |
470 | 486 |
471 // Test straightforward settings, mapped 1:1 to data types. | 487 // Test straightforward settings, mapped 1:1 to data types. |
472 IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, SettingsFunctionSimple) { | 488 IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, SettingsFunctionSimple) { |
473 SetPrefsAndVerifySettings(BrowsingDataRemover::REMOVE_CACHE, 0, | 489 SetPrefsAndVerifySettings( |
474 BrowsingDataRemover::REMOVE_CACHE); | 490 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_CACHE, 0, |
475 SetPrefsAndVerifySettings(BrowsingDataRemover::REMOVE_HISTORY, 0, | 491 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_CACHE); |
476 BrowsingDataRemover::REMOVE_HISTORY); | 492 SetPrefsAndVerifySettings( |
477 SetPrefsAndVerifySettings(BrowsingDataRemover::REMOVE_FORM_DATA, 0, | 493 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, 0, |
478 BrowsingDataRemover::REMOVE_FORM_DATA); | 494 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY); |
479 SetPrefsAndVerifySettings(BrowsingDataRemover::REMOVE_DOWNLOADS, 0, | 495 SetPrefsAndVerifySettings( |
480 BrowsingDataRemover::REMOVE_DOWNLOADS); | 496 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA, 0, |
481 SetPrefsAndVerifySettings(BrowsingDataRemover::REMOVE_PASSWORDS, 0, | 497 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA); |
482 BrowsingDataRemover::REMOVE_PASSWORDS); | 498 SetPrefsAndVerifySettings( |
| 499 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_DOWNLOADS, 0, |
| 500 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_DOWNLOADS); |
| 501 SetPrefsAndVerifySettings( |
| 502 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS, 0, |
| 503 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS); |
483 } | 504 } |
484 | 505 |
485 // Test cookie and app data settings. | 506 // Test cookie and app data settings. |
486 IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, SettingsFunctionSiteData) { | 507 IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, SettingsFunctionSiteData) { |
487 int site_data_no_durable_or_usage_or_external = | 508 int site_data_no_durable_or_usage_or_external = |
488 BrowsingDataRemover::REMOVE_SITE_DATA & | 509 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_DATA & |
489 ~BrowsingDataRemover::REMOVE_SITE_USAGE_DATA & | 510 ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_USAGE_DATA & |
490 ~BrowsingDataRemover::REMOVE_DURABLE_PERMISSION & | 511 ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_DURABLE_PERMISSION & |
491 ~BrowsingDataRemover::REMOVE_EXTERNAL_PROTOCOL_DATA; | 512 ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_EXTERNAL_PROTOCOL_DATA; |
492 int site_data_no_plugins_durable_usage_external = | 513 int site_data_no_plugins_durable_usage_external = |
493 site_data_no_durable_or_usage_or_external & | 514 site_data_no_durable_or_usage_or_external & |
494 ~BrowsingDataRemover::REMOVE_PLUGIN_DATA; | 515 ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA; |
495 | 516 |
496 SetPrefsAndVerifySettings(BrowsingDataRemover::REMOVE_COOKIES, | |
497 UNPROTECTED_WEB, | |
498 site_data_no_plugins_durable_usage_external); | |
499 SetPrefsAndVerifySettings( | 517 SetPrefsAndVerifySettings( |
500 BrowsingDataRemover::REMOVE_HOSTED_APP_DATA_TESTONLY, PROTECTED_WEB, | 518 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_COOKIES, |
| 519 UNPROTECTED_WEB, site_data_no_plugins_durable_usage_external); |
| 520 SetPrefsAndVerifySettings( |
| 521 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HOSTED_APP_DATA_TEST_ONLY, |
| 522 PROTECTED_WEB, site_data_no_plugins_durable_usage_external); |
| 523 SetPrefsAndVerifySettings( |
| 524 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_COOKIES | |
| 525 ChromeBrowsingDataRemoverDelegate:: |
| 526 DATA_TYPE_HOSTED_APP_DATA_TEST_ONLY, |
| 527 PROTECTED_WEB | UNPROTECTED_WEB, |
501 site_data_no_plugins_durable_usage_external); | 528 site_data_no_plugins_durable_usage_external); |
502 SetPrefsAndVerifySettings( | 529 SetPrefsAndVerifySettings( |
503 BrowsingDataRemover::REMOVE_COOKIES | | 530 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_COOKIES | |
504 BrowsingDataRemover::REMOVE_HOSTED_APP_DATA_TESTONLY, | 531 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA, |
505 PROTECTED_WEB | UNPROTECTED_WEB, | 532 UNPROTECTED_WEB, |
506 site_data_no_plugins_durable_usage_external); | 533 site_data_no_durable_or_usage_or_external); |
507 SetPrefsAndVerifySettings(BrowsingDataRemover::REMOVE_COOKIES | | |
508 BrowsingDataRemover::REMOVE_PLUGIN_DATA, | |
509 UNPROTECTED_WEB, | |
510 site_data_no_durable_or_usage_or_external); | |
511 } | 534 } |
512 | 535 |
513 // Test an arbitrary assortment of settings. | 536 // Test an arbitrary assortment of settings. |
514 IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, SettingsFunctionAssorted) { | 537 IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, SettingsFunctionAssorted) { |
515 int site_data_no_plugins_durable_usage_external = | 538 int site_data_no_plugins_durable_usage_external = |
516 BrowsingDataRemover::REMOVE_SITE_DATA & | 539 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_DATA & |
517 ~BrowsingDataRemover::REMOVE_DURABLE_PERMISSION & | 540 ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_DURABLE_PERMISSION & |
518 ~BrowsingDataRemover::REMOVE_SITE_USAGE_DATA & | 541 ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_USAGE_DATA & |
519 ~BrowsingDataRemover::REMOVE_PLUGIN_DATA & | 542 ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA & |
520 ~BrowsingDataRemover::REMOVE_EXTERNAL_PROTOCOL_DATA; | 543 ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_EXTERNAL_PROTOCOL_DATA; |
521 | 544 |
522 SetPrefsAndVerifySettings(BrowsingDataRemover::REMOVE_COOKIES | | 545 SetPrefsAndVerifySettings( |
523 BrowsingDataRemover::REMOVE_HISTORY | | 546 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_COOKIES | |
524 BrowsingDataRemover::REMOVE_DOWNLOADS, | 547 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY | |
525 UNPROTECTED_WEB, | 548 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_DOWNLOADS, |
526 site_data_no_plugins_durable_usage_external | | 549 UNPROTECTED_WEB, |
527 BrowsingDataRemover::REMOVE_HISTORY | | 550 site_data_no_plugins_durable_usage_external | |
528 BrowsingDataRemover::REMOVE_DOWNLOADS); | 551 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY | |
| 552 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_DOWNLOADS); |
529 } | 553 } |
OLD | NEW |