OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "chrome/browser/chrome_content_browser_client.h" | 5 #include "chrome/browser/chrome_content_browser_client.h" |
6 | 6 |
7 #include <list> | 7 #include <list> |
8 #include <map> | 8 #include <map> |
9 #include <memory> | 9 #include <memory> |
10 | 10 |
11 #include "base/bind.h" | 11 #include "base/bind.h" |
12 #include "base/command_line.h" | 12 #include "base/command_line.h" |
13 #include "base/macros.h" | 13 #include "base/macros.h" |
14 #include "base/memory/ptr_util.h" | 14 #include "base/memory/ptr_util.h" |
15 #include "base/message_loop/message_loop.h" | 15 #include "base/message_loop/message_loop.h" |
16 #include "base/metrics/field_trial.h" | 16 #include "base/metrics/field_trial.h" |
17 #include "base/strings/stringprintf.h" | 17 #include "base/strings/stringprintf.h" |
18 #include "base/strings/utf_string_conversions.h" | 18 #include "base/strings/utf_string_conversions.h" |
19 #include "build/build_config.h" | 19 #include "build/build_config.h" |
20 #include "chrome/browser/browsing_data/browsing_data_helper.h" | 20 #include "chrome/browser/browsing_data/browsing_data_helper.h" |
21 #include "chrome/browser/browsing_data/browsing_data_remover_factory.h" | 21 #include "chrome/browser/browsing_data/browsing_data_remover_factory.h" |
| 22 #include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h" |
22 #include "chrome/browser/browsing_data/mock_browsing_data_remover.h" | 23 #include "chrome/browser/browsing_data/mock_browsing_data_remover.h" |
23 #include "chrome/browser/search_engines/template_url_service_factory.h" | 24 #include "chrome/browser/search_engines/template_url_service_factory.h" |
24 #include "chrome/test/base/testing_profile.h" | 25 #include "chrome/test/base/testing_profile.h" |
25 #include "components/content_settings/core/browser/host_content_settings_map.h" | 26 #include "components/content_settings/core/browser/host_content_settings_map.h" |
26 #include "components/search_engines/template_url_service.h" | 27 #include "components/search_engines/template_url_service.h" |
27 #include "components/variations/entropy_provider.h" | 28 #include "components/variations/entropy_provider.h" |
28 #include "components/variations/variations_associated_data.h" | 29 #include "components/variations/variations_associated_data.h" |
29 #include "components/version_info/version_info.h" | 30 #include "components/version_info/version_info.h" |
30 #include "content/public/browser/browsing_data_filter_builder.h" | 31 #include "content/public/browser/browsing_data_filter_builder.h" |
31 #include "content/public/browser/navigation_controller.h" | 32 #include "content/public/browser/navigation_controller.h" |
(...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
380 TEST_F(ChromeContentBrowserClientClearSiteDataTest, Parameters) { | 381 TEST_F(ChromeContentBrowserClientClearSiteDataTest, Parameters) { |
381 ChromeContentBrowserClient client; | 382 ChromeContentBrowserClient client; |
382 | 383 |
383 struct TestCase { | 384 struct TestCase { |
384 bool cookies; | 385 bool cookies; |
385 bool storage; | 386 bool storage; |
386 bool cache; | 387 bool cache; |
387 int mask; | 388 int mask; |
388 } test_cases[] = { | 389 } test_cases[] = { |
389 {false, false, false, 0}, | 390 {false, false, false, 0}, |
390 {true, false, false, BrowsingDataRemover::REMOVE_COOKIES | | 391 {true, false, false, |
391 BrowsingDataRemover::REMOVE_CHANNEL_IDS | | 392 BrowsingDataRemover::DATA_TYPE_COOKIES | |
392 BrowsingDataRemover::REMOVE_PLUGIN_DATA}, | 393 BrowsingDataRemover::DATA_TYPE_CHANNEL_IDS | |
393 {false, true, false, BrowsingDataRemover::REMOVE_SITE_DATA & | 394 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA}, |
394 ~BrowsingDataRemover::REMOVE_COOKIES & | 395 {false, true, false, |
395 ~BrowsingDataRemover::REMOVE_CHANNEL_IDS & | 396 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_DATA & |
396 ~BrowsingDataRemover::REMOVE_PLUGIN_DATA}, | 397 ~BrowsingDataRemover::DATA_TYPE_COOKIES & |
397 {false, false, true, BrowsingDataRemover::REMOVE_CACHE}, | 398 ~BrowsingDataRemover::DATA_TYPE_CHANNEL_IDS & |
398 {true, true, false, BrowsingDataRemover::REMOVE_SITE_DATA}, | 399 ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA}, |
399 {true, false, true, BrowsingDataRemover::REMOVE_COOKIES | | 400 {false, false, true, BrowsingDataRemover::DATA_TYPE_CACHE}, |
400 BrowsingDataRemover::REMOVE_CHANNEL_IDS | | 401 {true, true, false, |
401 BrowsingDataRemover::REMOVE_PLUGIN_DATA | | 402 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_DATA}, |
402 BrowsingDataRemover::REMOVE_CACHE}, | 403 {true, false, true, |
403 {false, true, true, BrowsingDataRemover::REMOVE_CACHE | | 404 BrowsingDataRemover::DATA_TYPE_COOKIES | |
404 (BrowsingDataRemover::REMOVE_SITE_DATA & | 405 BrowsingDataRemover::DATA_TYPE_CHANNEL_IDS | |
405 ~BrowsingDataRemover::REMOVE_COOKIES & | 406 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA | |
406 ~BrowsingDataRemover::REMOVE_CHANNEL_IDS & | 407 BrowsingDataRemover::DATA_TYPE_CACHE}, |
407 ~BrowsingDataRemover::REMOVE_PLUGIN_DATA)}, | 408 {false, true, true, |
408 {true, true, true, BrowsingDataRemover::REMOVE_SITE_DATA | | 409 BrowsingDataRemover::DATA_TYPE_CACHE | |
409 BrowsingDataRemover::REMOVE_CACHE}, | 410 (ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_DATA & |
| 411 ~BrowsingDataRemover::DATA_TYPE_COOKIES & |
| 412 ~BrowsingDataRemover::DATA_TYPE_CHANNEL_IDS & |
| 413 ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA)}, |
| 414 {true, true, true, |
| 415 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_DATA | |
| 416 BrowsingDataRemover::DATA_TYPE_CACHE}, |
410 }; | 417 }; |
411 | 418 |
412 for (unsigned int i = 0; i < arraysize(test_cases); ++i) { | 419 for (unsigned int i = 0; i < arraysize(test_cases); ++i) { |
413 SCOPED_TRACE(base::StringPrintf("Test case %d", i)); | 420 SCOPED_TRACE(base::StringPrintf("Test case %d", i)); |
414 const TestCase& test_case = test_cases[i]; | 421 const TestCase& test_case = test_cases[i]; |
415 | 422 |
416 // We always delete data for all time and all origin types. | 423 // We always delete data for all time and all origin types. |
417 BrowsingDataHelper::OriginTypeMask all_origin_types = | 424 int all_origin_types = ChromeBrowsingDataRemoverDelegate::ALL_ORIGIN_TYPES; |
418 BrowsingDataHelper::ALL; | |
419 | 425 |
420 // Some data are deleted for the origin and some for the registrable domain. | 426 // Some data are deleted for the origin and some for the registrable domain. |
421 // Depending on the chosen datatypes, this might result into one or two | 427 // Depending on the chosen datatypes, this might result into one or two |
422 // calls. In the latter case, the removal mask will be split into two | 428 // calls. In the latter case, the removal mask will be split into two |
423 // parts - one for the origin deletion and one for the registrable domain. | 429 // parts - one for the origin deletion and one for the registrable domain. |
424 const int domain_scoped_types = BrowsingDataRemover::REMOVE_COOKIES | | 430 const int domain_scoped_types = |
425 BrowsingDataRemover::REMOVE_CHANNEL_IDS | | 431 BrowsingDataRemover::DATA_TYPE_COOKIES | |
426 BrowsingDataRemover::REMOVE_PLUGIN_DATA; | 432 BrowsingDataRemover::DATA_TYPE_CHANNEL_IDS | |
| 433 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA; |
427 int registrable_domain_deletion_mask = test_case.mask & domain_scoped_types; | 434 int registrable_domain_deletion_mask = test_case.mask & domain_scoped_types; |
428 int origin_deletion_mask = test_case.mask & ~domain_scoped_types; | 435 int origin_deletion_mask = test_case.mask & ~domain_scoped_types; |
429 | 436 |
430 if (registrable_domain_deletion_mask) { | 437 if (registrable_domain_deletion_mask) { |
431 remover()->ExpectCallDontCareAboutFilterBuilder( | 438 remover()->ExpectCallDontCareAboutFilterBuilder( |
432 base::Time(), base::Time::Max(), | 439 base::Time(), base::Time::Max(), |
433 registrable_domain_deletion_mask, all_origin_types); | 440 registrable_domain_deletion_mask, all_origin_types); |
434 } | 441 } |
435 | 442 |
436 if (origin_deletion_mask) { | 443 if (origin_deletion_mask) { |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
498 for (const TestCase& test_case : test_cases) { | 505 for (const TestCase& test_case : test_cases) { |
499 SCOPED_TRACE(test_case.origin); | 506 SCOPED_TRACE(test_case.origin); |
500 | 507 |
501 std::unique_ptr<BrowsingDataFilterBuilder> | 508 std::unique_ptr<BrowsingDataFilterBuilder> |
502 registrable_domain_filter_builder(BrowsingDataFilterBuilder::Create( | 509 registrable_domain_filter_builder(BrowsingDataFilterBuilder::Create( |
503 BrowsingDataFilterBuilder::WHITELIST)); | 510 BrowsingDataFilterBuilder::WHITELIST)); |
504 registrable_domain_filter_builder->AddRegisterableDomain(test_case.domain); | 511 registrable_domain_filter_builder->AddRegisterableDomain(test_case.domain); |
505 | 512 |
506 remover()->ExpectCall( | 513 remover()->ExpectCall( |
507 base::Time(), base::Time::Max(), | 514 base::Time(), base::Time::Max(), |
508 BrowsingDataRemover::REMOVE_COOKIES | | 515 BrowsingDataRemover::DATA_TYPE_COOKIES | |
509 BrowsingDataRemover::REMOVE_CHANNEL_IDS | | 516 BrowsingDataRemover::DATA_TYPE_CHANNEL_IDS | |
510 BrowsingDataRemover::REMOVE_PLUGIN_DATA, | 517 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA, |
511 BrowsingDataHelper::ALL, std::move(registrable_domain_filter_builder)); | 518 ChromeBrowsingDataRemoverDelegate::ALL_ORIGIN_TYPES, |
| 519 std::move(registrable_domain_filter_builder)); |
512 | 520 |
513 std::unique_ptr<BrowsingDataFilterBuilder> origin_filter_builder( | 521 std::unique_ptr<BrowsingDataFilterBuilder> origin_filter_builder( |
514 BrowsingDataFilterBuilder::Create( | 522 BrowsingDataFilterBuilder::Create( |
515 BrowsingDataFilterBuilder::WHITELIST)); | 523 BrowsingDataFilterBuilder::WHITELIST)); |
516 origin_filter_builder->AddOrigin(url::Origin(GURL(test_case.origin))); | 524 origin_filter_builder->AddOrigin(url::Origin(GURL(test_case.origin))); |
517 | 525 |
518 remover()->ExpectCall( | 526 remover()->ExpectCall(base::Time(), base::Time::Max(), |
519 base::Time(), base::Time::Max(), | 527 BrowsingDataRemover::DATA_TYPE_CACHE, |
520 BrowsingDataRemover::REMOVE_CACHE, BrowsingDataHelper::ALL, | 528 ChromeBrowsingDataRemoverDelegate::ALL_ORIGIN_TYPES, |
521 std::move(origin_filter_builder)); | 529 std::move(origin_filter_builder)); |
522 | 530 |
523 SetClearingFinished(false); | 531 SetClearingFinished(false); |
524 client.ClearSiteData( | 532 client.ClearSiteData( |
525 profile(), url::Origin(GURL(test_case.origin)), true /* cookies */, | 533 profile(), url::Origin(GURL(test_case.origin)), true /* cookies */, |
526 false /* storage */, true /* cache */, | 534 false /* storage */, true /* cache */, |
527 base::Bind( | 535 base::Bind( |
528 &ChromeContentBrowserClientClearSiteDataTest::SetClearingFinished, | 536 &ChromeContentBrowserClientClearSiteDataTest::SetClearingFinished, |
529 base::Unretained(this), true)); | 537 base::Unretained(this), true)); |
530 EXPECT_TRUE(IsClearingFinished()); | 538 EXPECT_TRUE(IsClearingFinished()); |
531 | 539 |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
574 client.ClearSiteData( | 582 client.ClearSiteData( |
575 profile(), origin, true /* cookies */, false /* storage */, | 583 profile(), origin, true /* cookies */, false /* storage */, |
576 true /* cache */, | 584 true /* cache */, |
577 base::Bind( | 585 base::Bind( |
578 &ChromeContentBrowserClientClearSiteDataTest::SetClearingFinished, | 586 &ChromeContentBrowserClientClearSiteDataTest::SetClearingFinished, |
579 base::Unretained(this), true)); | 587 base::Unretained(this), true)); |
580 EXPECT_TRUE(IsClearingFinished()); | 588 EXPECT_TRUE(IsClearingFinished()); |
581 } | 589 } |
582 | 590 |
583 } // namespace | 591 } // namespace |
OLD | NEW |