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

Side by Side Diff: chrome/browser/chrome_content_browser_client_unittest.cc

Issue 2733393003: Split browsing data masks between content and embedder (Closed)
Patch Set: Rebase (merged automatically) 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 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
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
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
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
OLDNEW
« no previous file with comments | « chrome/browser/chrome_content_browser_client.cc ('k') | chrome/browser/chromeos/profiles/profile_helper.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698