| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 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 <stddef.h> | 5 #include <stddef.h> |
| 6 #include <stdint.h> | 6 #include <stdint.h> |
| 7 | 7 |
| 8 #include <list> | 8 #include <list> |
| 9 #include <memory> | 9 #include <memory> |
| 10 #include <set> | 10 #include <set> |
| (...skipping 15 matching lines...) Expand all Loading... |
| 26 #include "base/strings/utf_string_conversions.h" | 26 #include "base/strings/utf_string_conversions.h" |
| 27 #include "base/task/cancelable_task_tracker.h" | 27 #include "base/task/cancelable_task_tracker.h" |
| 28 #include "base/threading/thread_task_runner_handle.h" | 28 #include "base/threading/thread_task_runner_handle.h" |
| 29 #include "build/build_config.h" | 29 #include "build/build_config.h" |
| 30 #include "chrome/browser/browsing_data/browsing_data_filter_builder.h" | 30 #include "chrome/browser/browsing_data/browsing_data_filter_builder.h" |
| 31 #include "chrome/browser/browsing_data/browsing_data_helper.h" | 31 #include "chrome/browser/browsing_data/browsing_data_helper.h" |
| 32 #include "chrome/browser/browsing_data/browsing_data_remover.h" | 32 #include "chrome/browser/browsing_data/browsing_data_remover.h" |
| 33 #include "chrome/browser/browsing_data/browsing_data_remover_factory.h" | 33 #include "chrome/browser/browsing_data/browsing_data_remover_factory.h" |
| 34 #include "chrome/browser/browsing_data/browsing_data_remover_impl.h" | 34 #include "chrome/browser/browsing_data/browsing_data_remover_impl.h" |
| 35 #include "chrome/browser/browsing_data/browsing_data_remover_test_util.h" | 35 #include "chrome/browser/browsing_data/browsing_data_remover_test_util.h" |
| 36 #include "chrome/browser/browsing_data/registrable_domain_filter_builder.h" | |
| 37 #include "chrome/test/base/testing_profile.h" | 36 #include "chrome/test/base/testing_profile.h" |
| 38 #include "content/public/browser/browser_context.h" | 37 #include "content/public/browser/browser_context.h" |
| 39 #include "content/public/browser/cookie_store_factory.h" | 38 #include "content/public/browser/cookie_store_factory.h" |
| 40 #include "content/public/browser/dom_storage_context.h" | 39 #include "content/public/browser/dom_storage_context.h" |
| 41 #include "content/public/browser/local_storage_usage_info.h" | 40 #include "content/public/browser/local_storage_usage_info.h" |
| 42 #include "content/public/browser/permission_type.h" | 41 #include "content/public/browser/permission_type.h" |
| 43 #include "content/public/browser/storage_partition.h" | 42 #include "content/public/browser/storage_partition.h" |
| 44 #include "content/public/test/mock_download_manager.h" | 43 #include "content/public/test/mock_download_manager.h" |
| 45 #include "content/public/test/test_browser_thread.h" | 44 #include "content/public/test/test_browser_thread.h" |
| 46 #include "content/public/test/test_browser_thread_bundle.h" | 45 #include "content/public/test/test_browser_thread_bundle.h" |
| (...skipping 533 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 580 | 579 |
| 581 // Save so we can verify later. | 580 // Save so we can verify later. |
| 582 storage_partition_removal_data_ = | 581 storage_partition_removal_data_ = |
| 583 storage_partition.GetStoragePartitionRemovalData(); | 582 storage_partition.GetStoragePartitionRemovalData(); |
| 584 } | 583 } |
| 585 | 584 |
| 586 void BlockUntilOriginDataRemoved( | 585 void BlockUntilOriginDataRemoved( |
| 587 const base::Time& delete_begin, | 586 const base::Time& delete_begin, |
| 588 const base::Time& delete_end, | 587 const base::Time& delete_end, |
| 589 int remove_mask, | 588 int remove_mask, |
| 590 const BrowsingDataFilterBuilder& filter_builder) { | 589 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder) { |
| 591 TestStoragePartition storage_partition; | 590 TestStoragePartition storage_partition; |
| 592 remover_->OverrideStoragePartitionForTesting(&storage_partition); | 591 remover_->OverrideStoragePartitionForTesting(&storage_partition); |
| 593 | 592 |
| 594 BrowsingDataRemoverCompletionInhibitor completion_inhibitor; | 593 BrowsingDataRemoverCompletionObserver completion_observer(remover_); |
| 595 remover_->RemoveImpl(delete_begin, delete_end, remove_mask, filter_builder, | 594 remover_->RemoveWithFilterAndReply( |
| 596 BrowsingDataHelper::UNPROTECTED_WEB); | 595 delete_begin, delete_end, remove_mask, |
| 597 completion_inhibitor.BlockUntilNearCompletion(); | 596 BrowsingDataHelper::UNPROTECTED_WEB, |
| 598 completion_inhibitor.ContinueToCompletion(); | 597 std::move(filter_builder), &completion_observer); |
| 598 completion_observer.BlockUntilCompletion(); |
| 599 | 599 |
| 600 // Save so we can verify later. | 600 // Save so we can verify later. |
| 601 storage_partition_removal_data_ = | 601 storage_partition_removal_data_ = |
| 602 storage_partition.GetStoragePartitionRemovalData(); | 602 storage_partition.GetStoragePartitionRemovalData(); |
| 603 } | 603 } |
| 604 | 604 |
| 605 BrowserContext* GetBrowserContext() { | 605 BrowserContext* GetBrowserContext() { |
| 606 return browser_context_.get(); | 606 return browser_context_.get(); |
| 607 } | 607 } |
| 608 | 608 |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 698 EXPECT_EQ(removal_data.remove_mask, | 698 EXPECT_EQ(removal_data.remove_mask, |
| 699 StoragePartition::REMOVE_DATA_MASK_COOKIES); | 699 StoragePartition::REMOVE_DATA_MASK_COOKIES); |
| 700 // Removing with time period other than all time should not clear | 700 // Removing with time period other than all time should not clear |
| 701 // persistent storage data. | 701 // persistent storage data. |
| 702 EXPECT_EQ(removal_data.quota_storage_remove_mask, | 702 EXPECT_EQ(removal_data.quota_storage_remove_mask, |
| 703 ~StoragePartition::QUOTA_MANAGED_STORAGE_MASK_PERSISTENT); | 703 ~StoragePartition::QUOTA_MANAGED_STORAGE_MASK_PERSISTENT); |
| 704 EXPECT_EQ(removal_data.remove_begin, GetBeginTime()); | 704 EXPECT_EQ(removal_data.remove_begin, GetBeginTime()); |
| 705 } | 705 } |
| 706 | 706 |
| 707 TEST_F(BrowsingDataRemoverImplTest, RemoveCookiesDomainBlacklist) { | 707 TEST_F(BrowsingDataRemoverImplTest, RemoveCookiesDomainBlacklist) { |
| 708 RegistrableDomainFilterBuilder filter( | 708 std::unique_ptr<BrowsingDataFilterBuilder> filter( |
| 709 RegistrableDomainFilterBuilder::BLACKLIST); | 709 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST)); |
| 710 filter.AddRegisterableDomain(kTestRegisterableDomain1); | 710 filter->AddRegisterableDomain(kTestRegisterableDomain1); |
| 711 filter.AddRegisterableDomain(kTestRegisterableDomain3); | 711 filter->AddRegisterableDomain(kTestRegisterableDomain3); |
| 712 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(), | 712 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(), |
| 713 BrowsingDataRemover::REMOVE_COOKIES, filter); | 713 BrowsingDataRemover::REMOVE_COOKIES, |
| 714 std::move(filter)); |
| 714 | 715 |
| 715 EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask()); | 716 EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask()); |
| 716 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); | 717 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); |
| 717 | 718 |
| 718 // Verify that storage partition was instructed to remove the cookies. | 719 // Verify that storage partition was instructed to remove the cookies. |
| 719 StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); | 720 StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
| 720 EXPECT_EQ(removal_data.remove_mask, | 721 EXPECT_EQ(removal_data.remove_mask, |
| 721 StoragePartition::REMOVE_DATA_MASK_COOKIES); | 722 StoragePartition::REMOVE_DATA_MASK_COOKIES); |
| 722 // Removing with time period other than all time should not clear | 723 // Removing with time period other than all time should not clear |
| 723 // persistent storage data. | 724 // persistent storage data. |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 803 EXPECT_EQ(kTestOrigin2, channel_ids.front().server_identifier()); | 804 EXPECT_EQ(kTestOrigin2, channel_ids.front().server_identifier()); |
| 804 } | 805 } |
| 805 | 806 |
| 806 TEST_F(BrowsingDataRemoverImplTest, RemoveChannelIDsForServerIdentifiers) { | 807 TEST_F(BrowsingDataRemoverImplTest, RemoveChannelIDsForServerIdentifiers) { |
| 807 RemoveChannelIDTester tester(GetBrowserContext()); | 808 RemoveChannelIDTester tester(GetBrowserContext()); |
| 808 | 809 |
| 809 tester.AddChannelID(kTestRegisterableDomain1); | 810 tester.AddChannelID(kTestRegisterableDomain1); |
| 810 tester.AddChannelID(kTestRegisterableDomain3); | 811 tester.AddChannelID(kTestRegisterableDomain3); |
| 811 EXPECT_EQ(2, tester.ChannelIDCount()); | 812 EXPECT_EQ(2, tester.ChannelIDCount()); |
| 812 | 813 |
| 813 RegistrableDomainFilterBuilder filter_builder( | 814 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder( |
| 814 RegistrableDomainFilterBuilder::WHITELIST); | 815 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); |
| 815 filter_builder.AddRegisterableDomain(kTestRegisterableDomain1); | 816 filter_builder->AddRegisterableDomain(kTestRegisterableDomain1); |
| 816 | 817 |
| 817 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), | 818 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), |
| 818 BrowsingDataRemover::REMOVE_CHANNEL_IDS, | 819 BrowsingDataRemover::REMOVE_CHANNEL_IDS, |
| 819 filter_builder); | 820 std::move(filter_builder)); |
| 820 | 821 |
| 821 EXPECT_EQ(1, tester.ChannelIDCount()); | 822 EXPECT_EQ(1, tester.ChannelIDCount()); |
| 822 net::ChannelIDStore::ChannelIDList channel_ids; | 823 net::ChannelIDStore::ChannelIDList channel_ids; |
| 823 tester.GetChannelIDList(&channel_ids); | 824 tester.GetChannelIDList(&channel_ids); |
| 824 EXPECT_EQ(kTestRegisterableDomain3, channel_ids.front().server_identifier()); | 825 EXPECT_EQ(kTestRegisterableDomain3, channel_ids.front().server_identifier()); |
| 825 } | 826 } |
| 826 | 827 |
| 827 TEST_F(BrowsingDataRemoverImplTest, RemoveUnprotectedLocalStorageForever) { | 828 TEST_F(BrowsingDataRemoverImplTest, RemoveUnprotectedLocalStorageForever) { |
| 828 #if BUILDFLAG(ENABLE_EXTENSIONS) | 829 #if BUILDFLAG(ENABLE_EXTENSIONS) |
| 829 MockExtensionSpecialStoragePolicy* policy = CreateMockPolicy(); | 830 MockExtensionSpecialStoragePolicy* policy = CreateMockPolicy(); |
| (...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1100 | 1101 |
| 1101 // Check that all related origin data would be removed, that is, origin | 1102 // Check that all related origin data would be removed, that is, origin |
| 1102 // matcher would match these origin. | 1103 // matcher would match these origin. |
| 1103 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin1, mock_policy())); | 1104 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin1, mock_policy())); |
| 1104 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin2, mock_policy())); | 1105 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin2, mock_policy())); |
| 1105 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin3, mock_policy())); | 1106 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin3, mock_policy())); |
| 1106 } | 1107 } |
| 1107 | 1108 |
| 1108 TEST_F(BrowsingDataRemoverImplTest, | 1109 TEST_F(BrowsingDataRemoverImplTest, |
| 1109 RemoveQuotaManagedDataForeverSpecificOrigin) { | 1110 RemoveQuotaManagedDataForeverSpecificOrigin) { |
| 1110 RegistrableDomainFilterBuilder builder( | 1111 std::unique_ptr<BrowsingDataFilterBuilder> builder( |
| 1111 RegistrableDomainFilterBuilder::WHITELIST); | 1112 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); |
| 1112 builder.AddRegisterableDomain(kTestRegisterableDomain1); | 1113 builder->AddRegisterableDomain(kTestRegisterableDomain1); |
| 1113 // Remove Origin 1. | 1114 // Remove Origin 1. |
| 1114 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), | 1115 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), |
| 1115 BrowsingDataRemover::REMOVE_APPCACHE | | 1116 BrowsingDataRemover::REMOVE_APPCACHE | |
| 1116 BrowsingDataRemover::REMOVE_SERVICE_WORKERS | | 1117 BrowsingDataRemover::REMOVE_SERVICE_WORKERS | |
| 1117 BrowsingDataRemover::REMOVE_CACHE_STORAGE | | 1118 BrowsingDataRemover::REMOVE_CACHE_STORAGE | |
| 1118 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1119 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
| 1119 BrowsingDataRemover::REMOVE_INDEXEDDB | | 1120 BrowsingDataRemover::REMOVE_INDEXEDDB | |
| 1120 BrowsingDataRemover::REMOVE_WEBSQL, | 1121 BrowsingDataRemover::REMOVE_WEBSQL, |
| 1121 builder); | 1122 std::move(builder)); |
| 1122 | 1123 |
| 1123 EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE | | 1124 EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE | |
| 1124 BrowsingDataRemover::REMOVE_SERVICE_WORKERS | | 1125 BrowsingDataRemover::REMOVE_SERVICE_WORKERS | |
| 1125 BrowsingDataRemover::REMOVE_CACHE_STORAGE | | 1126 BrowsingDataRemover::REMOVE_CACHE_STORAGE | |
| 1126 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1127 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
| 1127 BrowsingDataRemover::REMOVE_INDEXEDDB | | 1128 BrowsingDataRemover::REMOVE_INDEXEDDB | |
| 1128 BrowsingDataRemover::REMOVE_WEBSQL, | 1129 BrowsingDataRemover::REMOVE_WEBSQL, |
| 1129 GetRemovalMask()); | 1130 GetRemovalMask()); |
| 1130 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); | 1131 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); |
| 1131 | 1132 |
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1273 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin3, mock_policy())); | 1274 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin3, mock_policy())); |
| 1274 } | 1275 } |
| 1275 | 1276 |
| 1276 TEST_F(BrowsingDataRemoverImplTest, RemoveQuotaManagedProtectedSpecificOrigin) { | 1277 TEST_F(BrowsingDataRemoverImplTest, RemoveQuotaManagedProtectedSpecificOrigin) { |
| 1277 #if BUILDFLAG(ENABLE_EXTENSIONS) | 1278 #if BUILDFLAG(ENABLE_EXTENSIONS) |
| 1278 MockExtensionSpecialStoragePolicy* policy = CreateMockPolicy(); | 1279 MockExtensionSpecialStoragePolicy* policy = CreateMockPolicy(); |
| 1279 // Protect kOrigin1. | 1280 // Protect kOrigin1. |
| 1280 policy->AddProtected(kOrigin1.GetOrigin()); | 1281 policy->AddProtected(kOrigin1.GetOrigin()); |
| 1281 #endif | 1282 #endif |
| 1282 | 1283 |
| 1283 RegistrableDomainFilterBuilder builder( | 1284 std::unique_ptr<BrowsingDataFilterBuilder> builder( |
| 1284 RegistrableDomainFilterBuilder::WHITELIST); | 1285 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); |
| 1285 builder.AddRegisterableDomain(kTestRegisterableDomain1); | 1286 builder->AddRegisterableDomain(kTestRegisterableDomain1); |
| 1286 | 1287 |
| 1287 // Try to remove kOrigin1. Expect failure. | 1288 // Try to remove kOrigin1. Expect failure. |
| 1288 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), | 1289 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), |
| 1289 BrowsingDataRemover::REMOVE_APPCACHE | | 1290 BrowsingDataRemover::REMOVE_APPCACHE | |
| 1290 BrowsingDataRemover::REMOVE_SERVICE_WORKERS | | 1291 BrowsingDataRemover::REMOVE_SERVICE_WORKERS | |
| 1291 BrowsingDataRemover::REMOVE_CACHE_STORAGE | | 1292 BrowsingDataRemover::REMOVE_CACHE_STORAGE | |
| 1292 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1293 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
| 1293 BrowsingDataRemover::REMOVE_INDEXEDDB | | 1294 BrowsingDataRemover::REMOVE_INDEXEDDB | |
| 1294 BrowsingDataRemover::REMOVE_WEBSQL, | 1295 BrowsingDataRemover::REMOVE_WEBSQL, |
| 1295 builder); | 1296 std::move(builder)); |
| 1296 | 1297 |
| 1297 EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE | | 1298 EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE | |
| 1298 BrowsingDataRemover::REMOVE_SERVICE_WORKERS | | 1299 BrowsingDataRemover::REMOVE_SERVICE_WORKERS | |
| 1299 BrowsingDataRemover::REMOVE_CACHE_STORAGE | | 1300 BrowsingDataRemover::REMOVE_CACHE_STORAGE | |
| 1300 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1301 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
| 1301 BrowsingDataRemover::REMOVE_INDEXEDDB | | 1302 BrowsingDataRemover::REMOVE_INDEXEDDB | |
| 1302 BrowsingDataRemover::REMOVE_WEBSQL, | 1303 BrowsingDataRemover::REMOVE_WEBSQL, |
| 1303 GetRemovalMask()); | 1304 GetRemovalMask()); |
| 1304 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); | 1305 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); |
| 1305 | 1306 |
| (...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1504 EXPECT_CALL( | 1505 EXPECT_CALL( |
| 1505 *tester.download_manager(), | 1506 *tester.download_manager(), |
| 1506 RemoveDownloadsByURLAndTime(ProbablySameFilter(filter), _, _)); | 1507 RemoveDownloadsByURLAndTime(ProbablySameFilter(filter), _, _)); |
| 1507 | 1508 |
| 1508 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), | 1509 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), |
| 1509 BrowsingDataRemover::REMOVE_DOWNLOADS, false); | 1510 BrowsingDataRemover::REMOVE_DOWNLOADS, false); |
| 1510 } | 1511 } |
| 1511 | 1512 |
| 1512 TEST_F(BrowsingDataRemoverImplTest, RemoveDownloadsByOrigin) { | 1513 TEST_F(BrowsingDataRemoverImplTest, RemoveDownloadsByOrigin) { |
| 1513 RemoveDownloadsTester tester(GetBrowserContext()); | 1514 RemoveDownloadsTester tester(GetBrowserContext()); |
| 1514 RegistrableDomainFilterBuilder builder( | 1515 std::unique_ptr<BrowsingDataFilterBuilder> builder( |
| 1515 RegistrableDomainFilterBuilder::WHITELIST); | 1516 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); |
| 1516 builder.AddRegisterableDomain(kTestRegisterableDomain1); | 1517 builder->AddRegisterableDomain(kTestRegisterableDomain1); |
| 1517 base::Callback<bool(const GURL&)> filter = builder.BuildGeneralFilter(); | 1518 base::Callback<bool(const GURL&)> filter = builder->BuildGeneralFilter(); |
| 1518 | 1519 |
| 1519 EXPECT_CALL( | 1520 EXPECT_CALL( |
| 1520 *tester.download_manager(), | 1521 *tester.download_manager(), |
| 1521 RemoveDownloadsByURLAndTime(ProbablySameFilter(filter), _, _)); | 1522 RemoveDownloadsByURLAndTime(ProbablySameFilter(filter), _, _)); |
| 1522 | 1523 |
| 1523 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), | 1524 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), |
| 1524 BrowsingDataRemover::REMOVE_DOWNLOADS, builder); | 1525 BrowsingDataRemover::REMOVE_DOWNLOADS, |
| 1526 std::move(builder)); |
| 1525 } | 1527 } |
| 1526 | 1528 |
| 1527 class MultipleTasksObserver { | 1529 class MultipleTasksObserver { |
| 1528 public: | 1530 public: |
| 1529 // A simple implementation of BrowsingDataRemover::Observer. | 1531 // A simple implementation of BrowsingDataRemover::Observer. |
| 1530 // MultipleTasksObserver will use several instances of Target to test | 1532 // MultipleTasksObserver will use several instances of Target to test |
| 1531 // that completion callbacks are returned to the correct one. | 1533 // that completion callbacks are returned to the correct one. |
| 1532 class Target : public BrowsingDataRemover::Observer { | 1534 class Target : public BrowsingDataRemover::Observer { |
| 1533 public: | 1535 public: |
| 1534 Target(MultipleTasksObserver* parent, BrowsingDataRemover* remover) | 1536 Target(MultipleTasksObserver* parent, BrowsingDataRemover* remover) |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1575 Target target_a_; | 1577 Target target_a_; |
| 1576 Target target_b_; | 1578 Target target_b_; |
| 1577 Target* last_called_target_; | 1579 Target* last_called_target_; |
| 1578 }; | 1580 }; |
| 1579 | 1581 |
| 1580 TEST_F(BrowsingDataRemoverImplTest, MultipleTasks) { | 1582 TEST_F(BrowsingDataRemoverImplTest, MultipleTasks) { |
| 1581 BrowsingDataRemoverImpl* remover = static_cast<BrowsingDataRemoverImpl*>( | 1583 BrowsingDataRemoverImpl* remover = static_cast<BrowsingDataRemoverImpl*>( |
| 1582 BrowsingDataRemoverFactory::GetForBrowserContext(GetBrowserContext())); | 1584 BrowsingDataRemoverFactory::GetForBrowserContext(GetBrowserContext())); |
| 1583 EXPECT_FALSE(remover->is_removing()); | 1585 EXPECT_FALSE(remover->is_removing()); |
| 1584 | 1586 |
| 1585 std::unique_ptr<RegistrableDomainFilterBuilder> filter_builder_1( | 1587 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder_1( |
| 1586 new RegistrableDomainFilterBuilder( | 1588 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); |
| 1587 RegistrableDomainFilterBuilder::WHITELIST)); | 1589 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder_2( |
| 1588 std::unique_ptr<RegistrableDomainFilterBuilder> filter_builder_2( | 1590 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST)); |
| 1589 new RegistrableDomainFilterBuilder( | |
| 1590 RegistrableDomainFilterBuilder::BLACKLIST)); | |
| 1591 filter_builder_2->AddRegisterableDomain("example.com"); | 1591 filter_builder_2->AddRegisterableDomain("example.com"); |
| 1592 | 1592 |
| 1593 MultipleTasksObserver observer(remover); | 1593 MultipleTasksObserver observer(remover); |
| 1594 BrowsingDataRemoverCompletionInhibitor completion_inhibitor; | 1594 BrowsingDataRemoverCompletionInhibitor completion_inhibitor; |
| 1595 | 1595 |
| 1596 // Test several tasks with various configuration of masks, filters, and target | 1596 // Test several tasks with various configuration of masks, filters, and target |
| 1597 // observers. | 1597 // observers. |
| 1598 std::list<BrowsingDataRemoverImpl::RemovalTask> tasks; | 1598 std::list<BrowsingDataRemoverImpl::RemovalTask> tasks; |
| 1599 tasks.emplace_back(base::Time(), base::Time::Max(), | 1599 tasks.emplace_back(base::Time(), base::Time::Max(), |
| 1600 BrowsingDataRemover::REMOVE_HISTORY, | 1600 BrowsingDataRemover::REMOVE_HISTORY, |
| 1601 BrowsingDataHelper::UNPROTECTED_WEB, | 1601 BrowsingDataHelper::UNPROTECTED_WEB, |
| 1602 base::MakeUnique<RegistrableDomainFilterBuilder>( | 1602 BrowsingDataFilterBuilder::Create( |
| 1603 RegistrableDomainFilterBuilder::BLACKLIST), | 1603 BrowsingDataFilterBuilder::BLACKLIST), |
| 1604 observer.target_a()); | 1604 observer.target_a()); |
| 1605 tasks.emplace_back(base::Time(), base::Time::Max(), | 1605 tasks.emplace_back(base::Time(), base::Time::Max(), |
| 1606 BrowsingDataRemover::REMOVE_COOKIES, | 1606 BrowsingDataRemover::REMOVE_COOKIES, |
| 1607 BrowsingDataHelper::PROTECTED_WEB, | 1607 BrowsingDataHelper::PROTECTED_WEB, |
| 1608 base::MakeUnique<RegistrableDomainFilterBuilder>( | 1608 BrowsingDataFilterBuilder::Create( |
| 1609 RegistrableDomainFilterBuilder::BLACKLIST), | 1609 BrowsingDataFilterBuilder::BLACKLIST), |
| 1610 nullptr); | 1610 nullptr); |
| 1611 tasks.emplace_back( | 1611 tasks.emplace_back( |
| 1612 base::Time::Now(), base::Time::Max(), | 1612 base::Time::Now(), base::Time::Max(), |
| 1613 BrowsingDataRemover::REMOVE_PASSWORDS, BrowsingDataHelper::ALL, | 1613 BrowsingDataRemover::REMOVE_PASSWORDS, BrowsingDataHelper::ALL, |
| 1614 base::MakeUnique<RegistrableDomainFilterBuilder>( | 1614 BrowsingDataFilterBuilder::Create( |
| 1615 RegistrableDomainFilterBuilder::BLACKLIST), | 1615 BrowsingDataFilterBuilder::BLACKLIST), |
| 1616 observer.target_b()); | 1616 observer.target_b()); |
| 1617 tasks.emplace_back( | 1617 tasks.emplace_back( |
| 1618 base::Time(), base::Time::UnixEpoch(), | 1618 base::Time(), base::Time::UnixEpoch(), |
| 1619 BrowsingDataRemover::REMOVE_WEBSQL, | 1619 BrowsingDataRemover::REMOVE_WEBSQL, |
| 1620 BrowsingDataHelper::UNPROTECTED_WEB, | 1620 BrowsingDataHelper::UNPROTECTED_WEB, |
| 1621 std::move(filter_builder_1), | 1621 std::move(filter_builder_1), |
| 1622 observer.target_b()); | 1622 observer.target_b()); |
| 1623 tasks.emplace_back( | 1623 tasks.emplace_back( |
| 1624 base::Time::UnixEpoch(), base::Time::Now(), | 1624 base::Time::UnixEpoch(), base::Time::Now(), |
| 1625 BrowsingDataRemover::REMOVE_CHANNEL_IDS, | 1625 BrowsingDataRemover::REMOVE_CHANNEL_IDS, |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1710 EXPECT_TRUE(remover->is_removing()); | 1710 EXPECT_TRUE(remover->is_removing()); |
| 1711 | 1711 |
| 1712 // Add one more deletion and wait for it. | 1712 // Add one more deletion and wait for it. |
| 1713 BlockUntilBrowsingDataRemoved( | 1713 BlockUntilBrowsingDataRemoved( |
| 1714 base::Time(), base::Time::Max(), | 1714 base::Time(), base::Time::Max(), |
| 1715 BrowsingDataRemover::REMOVE_COOKIES, | 1715 BrowsingDataRemover::REMOVE_COOKIES, |
| 1716 BrowsingDataHelper::UNPROTECTED_WEB); | 1716 BrowsingDataHelper::UNPROTECTED_WEB); |
| 1717 | 1717 |
| 1718 EXPECT_FALSE(remover->is_removing()); | 1718 EXPECT_FALSE(remover->is_removing()); |
| 1719 } | 1719 } |
| OLD | NEW |