Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(550)

Side by Side Diff: chrome/browser/extensions/api/browsing_data/browsing_data_test.cc

Issue 2733393003: Split browsing data masks between content and embedder (Closed)
Patch Set: Extensions can't match extensions if there are no extensions. Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698