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