| OLD | NEW |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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/browsing_data/chrome_browsing_data_remover_delegate.h" | 5 #include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h" |
| 6 | 6 |
| 7 #include "base/guid.h" | 7 #include "base/guid.h" |
| 8 #include "base/run_loop.h" | 8 #include "base/run_loop.h" |
| 9 #include "base/strings/string_number_conversions.h" | 9 #include "base/strings/string_number_conversions.h" |
| 10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
| 11 #include "base/time/time.h" | 11 #include "base/time/time.h" |
| 12 #include "chrome/browser/autofill/personal_data_manager_factory.h" | 12 #include "chrome/browser/autofill/personal_data_manager_factory.h" |
| 13 #include "chrome/browser/bookmarks/bookmark_model_factory.h" | 13 #include "chrome/browser/bookmarks/bookmark_model_factory.h" |
| 14 #include "chrome/browser/browsing_data/browsing_data_helper.h" | 14 #include "chrome/browser/browsing_data/browsing_data_helper.h" |
| 15 #include "chrome/browser/browsing_data/browsing_data_remover.h" | 15 #include "chrome/browser/browsing_data/browsing_data_remover.h" |
| 16 #include "chrome/browser/browsing_data/browsing_data_remover_factory.h" | 16 #include "chrome/browser/browsing_data/browsing_data_remover_factory.h" |
| 17 #include "chrome/browser/browsing_data/browsing_data_remover_impl.h" | 17 #include "chrome/browser/browsing_data/browsing_data_remover_impl.h" |
| 18 #include "chrome/browser/browsing_data/browsing_data_remover_test_util.h" | 18 #include "chrome/browser/browsing_data/browsing_data_remover_test_util.h" |
| 19 #include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h" | 19 #include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h" |
| 20 #include "chrome/browser/browsing_data/chrome_browsing_data_types.h" |
| 20 #include "chrome/browser/content_settings/host_content_settings_map_factory.h" | 21 #include "chrome/browser/content_settings/host_content_settings_map_factory.h" |
| 21 #include "chrome/browser/domain_reliability/service_factory.h" | 22 #include "chrome/browser/domain_reliability/service_factory.h" |
| 22 #include "chrome/browser/download/chrome_download_manager_delegate.h" | 23 #include "chrome/browser/download/chrome_download_manager_delegate.h" |
| 23 #include "chrome/browser/favicon/favicon_service_factory.h" | 24 #include "chrome/browser/favicon/favicon_service_factory.h" |
| 24 #include "chrome/browser/history/history_service_factory.h" | 25 #include "chrome/browser/history/history_service_factory.h" |
| 25 #include "chrome/browser/password_manager/password_store_factory.h" | 26 #include "chrome/browser/password_manager/password_store_factory.h" |
| 26 #include "chrome/browser/permissions/permission_decision_auto_blocker.h" | 27 #include "chrome/browser/permissions/permission_decision_auto_blocker.h" |
| 27 #include "chrome/browser/safe_browsing/safe_browsing_service.h" | 28 #include "chrome/browser/safe_browsing/safe_browsing_service.h" |
| 28 #include "chrome/browser/storage/durable_storage_permission_context.h" | 29 #include "chrome/browser/storage/durable_storage_permission_context.h" |
| 29 #include "chrome/browser/translate/language_model_factory.h" | 30 #include "chrome/browser/translate/language_model_factory.h" |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 78 #include "chromeos/dbus/dbus_thread_manager.h" | 79 #include "chromeos/dbus/dbus_thread_manager.h" |
| 79 #include "chromeos/dbus/mock_cryptohome_client.h" | 80 #include "chromeos/dbus/mock_cryptohome_client.h" |
| 80 #include "components/signin/core/account_id/account_id.h" | 81 #include "components/signin/core/account_id/account_id.h" |
| 81 #endif | 82 #endif |
| 82 | 83 |
| 83 #if BUILDFLAG(ENABLE_PLUGINS) | 84 #if BUILDFLAG(ENABLE_PLUGINS) |
| 84 #include "chrome/browser/browsing_data/mock_browsing_data_flash_lso_helper.h" | 85 #include "chrome/browser/browsing_data/mock_browsing_data_flash_lso_helper.h" |
| 85 #endif | 86 #endif |
| 86 | 87 |
| 87 using content::BrowsingDataFilterBuilder; | 88 using content::BrowsingDataFilterBuilder; |
| 89 using content::BrowsingDataType; |
| 88 using domain_reliability::CLEAR_BEACONS; | 90 using domain_reliability::CLEAR_BEACONS; |
| 89 using domain_reliability::CLEAR_CONTEXTS; | 91 using domain_reliability::CLEAR_CONTEXTS; |
| 90 using domain_reliability::DomainReliabilityClearMode; | 92 using domain_reliability::DomainReliabilityClearMode; |
| 91 using domain_reliability::DomainReliabilityMonitor; | 93 using domain_reliability::DomainReliabilityMonitor; |
| 92 using domain_reliability::DomainReliabilityService; | 94 using domain_reliability::DomainReliabilityService; |
| 93 using domain_reliability::DomainReliabilityServiceFactory; | 95 using domain_reliability::DomainReliabilityServiceFactory; |
| 94 using testing::_; | 96 using testing::_; |
| 95 using testing::ByRef; | 97 using testing::ByRef; |
| 96 using testing::Eq; | 98 using testing::Eq; |
| 97 using testing::FloatEq; | 99 using testing::FloatEq; |
| (...skipping 621 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 719 | 721 |
| 720 content::MockDownloadManager* download_manager() { return download_manager_; } | 722 content::MockDownloadManager* download_manager() { return download_manager_; } |
| 721 | 723 |
| 722 private: | 724 private: |
| 723 content::MockDownloadManager* download_manager_; | 725 content::MockDownloadManager* download_manager_; |
| 724 ChromeDownloadManagerDelegate chrome_download_manager_delegate_; | 726 ChromeDownloadManagerDelegate chrome_download_manager_delegate_; |
| 725 | 727 |
| 726 DISALLOW_COPY_AND_ASSIGN(RemoveDownloadsTester); | 728 DISALLOW_COPY_AND_ASSIGN(RemoveDownloadsTester); |
| 727 }; | 729 }; |
| 728 | 730 |
| 731 // A wrapper to typecast a const initializer to std::set in ambiguous |
| 732 // situations, such as the EXPECT macros. |
| 733 inline const std::set<const BrowsingDataType*> Mask( |
| 734 const std::set<const BrowsingDataType*> mask) { |
| 735 return mask; |
| 736 } |
| 737 |
| 729 } // namespace | 738 } // namespace |
| 730 | 739 |
| 731 // RemoveAutofillTester is not a part of the anonymous namespace above, as | 740 // RemoveAutofillTester is not a part of the anonymous namespace above, as |
| 732 // PersonalDataManager declares it a friend in an empty namespace. | 741 // PersonalDataManager declares it a friend in an empty namespace. |
| 733 class RemoveAutofillTester : public autofill::PersonalDataManagerObserver { | 742 class RemoveAutofillTester : public autofill::PersonalDataManagerObserver { |
| 734 public: | 743 public: |
| 735 explicit RemoveAutofillTester(TestingProfile* profile) | 744 explicit RemoveAutofillTester(TestingProfile* profile) |
| 736 : personal_data_manager_( | 745 : personal_data_manager_( |
| 737 autofill::PersonalDataManagerFactory::GetForProfile(profile)) { | 746 autofill::PersonalDataManagerFactory::GetForProfile(profile)) { |
| 738 autofill::test::DisableSystemServices(profile->GetPrefs()); | 747 autofill::test::DisableSystemServices(profile->GetPrefs()); |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 838 // the message loop is cleared out, before destroying the threads and loop. | 847 // the message loop is cleared out, before destroying the threads and loop. |
| 839 // Otherwise we leak memory. | 848 // Otherwise we leak memory. |
| 840 profile_.reset(); | 849 profile_.reset(); |
| 841 base::RunLoop().RunUntilIdle(); | 850 base::RunLoop().RunUntilIdle(); |
| 842 | 851 |
| 843 TestingBrowserProcess::GetGlobal()->SetLocalState(nullptr); | 852 TestingBrowserProcess::GetGlobal()->SetLocalState(nullptr); |
| 844 } | 853 } |
| 845 | 854 |
| 846 ~ChromeBrowsingDataRemoverDelegateTest() override {} | 855 ~ChromeBrowsingDataRemoverDelegateTest() override {} |
| 847 | 856 |
| 848 void BlockUntilBrowsingDataRemoved(const base::Time& delete_begin, | 857 void BlockUntilBrowsingDataRemoved( |
| 849 const base::Time& delete_end, | 858 const base::Time& delete_begin, |
| 850 int remove_mask, | 859 const base::Time& delete_end, |
| 851 bool include_protected_origins) { | 860 const std::set<const content::BrowsingDataType*>& remove_mask, |
| 861 bool include_protected_origins) { |
| 852 int origin_type_mask = BrowsingDataHelper::UNPROTECTED_WEB; | 862 int origin_type_mask = BrowsingDataHelper::UNPROTECTED_WEB; |
| 853 if (include_protected_origins) | 863 if (include_protected_origins) |
| 854 origin_type_mask |= BrowsingDataHelper::PROTECTED_WEB; | 864 origin_type_mask |= BrowsingDataHelper::PROTECTED_WEB; |
| 855 | 865 |
| 856 BrowsingDataRemoverCompletionObserver completion_observer(remover_); | 866 BrowsingDataRemoverCompletionObserver completion_observer(remover_); |
| 857 remover_->RemoveAndReply( | 867 remover_->RemoveAndReply( |
| 858 delete_begin, delete_end, remove_mask, origin_type_mask, | 868 delete_begin, delete_end, remove_mask, origin_type_mask, |
| 859 &completion_observer); | 869 &completion_observer); |
| 860 completion_observer.BlockUntilCompletion(); | 870 completion_observer.BlockUntilCompletion(); |
| 861 } | 871 } |
| 862 | 872 |
| 863 void BlockUntilOriginDataRemoved( | 873 void BlockUntilOriginDataRemoved( |
| 864 const base::Time& delete_begin, | 874 const base::Time& delete_begin, |
| 865 const base::Time& delete_end, | 875 const base::Time& delete_end, |
| 866 int remove_mask, | 876 const std::set<const content::BrowsingDataType*>& remove_mask, |
| 867 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder) { | 877 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder) { |
| 868 BrowsingDataRemoverCompletionObserver completion_observer(remover_); | 878 BrowsingDataRemoverCompletionObserver completion_observer(remover_); |
| 869 static_cast<BrowsingDataRemoverImpl*>(remover_) | 879 static_cast<BrowsingDataRemoverImpl*>(remover_) |
| 870 ->RemoveWithFilterAndReply(delete_begin, delete_end, remove_mask, | 880 ->RemoveWithFilterAndReply(delete_begin, delete_end, remove_mask, |
| 871 BrowsingDataHelper::UNPROTECTED_WEB, | 881 BrowsingDataHelper::UNPROTECTED_WEB, |
| 872 std::move(filter_builder), | 882 std::move(filter_builder), |
| 873 &completion_observer); | 883 &completion_observer); |
| 874 completion_observer.BlockUntilCompletion(); | 884 completion_observer.BlockUntilCompletion(); |
| 875 } | 885 } |
| 876 | 886 |
| 877 const base::Time& GetBeginTime() { | 887 const base::Time& GetBeginTime() { |
| 878 return remover_->GetLastUsedBeginTime(); | 888 return remover_->GetLastUsedBeginTime(); |
| 879 } | 889 } |
| 880 | 890 |
| 881 int GetRemovalMask() { | 891 const std::set<const content::BrowsingDataType*>& GetRemovalMask() { |
| 882 return remover_->GetLastUsedRemovalMask(); | 892 return remover_->GetLastUsedRemovalMask(); |
| 883 } | 893 } |
| 884 | 894 |
| 885 int GetOriginTypeMask() { | 895 int GetOriginTypeMask() { |
| 886 return remover_->GetLastUsedOriginTypeMask(); | 896 return remover_->GetLastUsedOriginTypeMask(); |
| 887 } | 897 } |
| 888 | 898 |
| 889 TestingProfile* GetProfile() { | 899 TestingProfile* GetProfile() { |
| 890 return profile_.get(); | 900 return profile_.get(); |
| 891 } | 901 } |
| (...skipping 15 matching lines...) Expand all Loading... |
| 907 DISALLOW_COPY_AND_ASSIGN(ChromeBrowsingDataRemoverDelegateTest); | 917 DISALLOW_COPY_AND_ASSIGN(ChromeBrowsingDataRemoverDelegateTest); |
| 908 }; | 918 }; |
| 909 | 919 |
| 910 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveSafeBrowsingCookieForever) { | 920 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveSafeBrowsingCookieForever) { |
| 911 RemoveSafeBrowsingCookieTester tester; | 921 RemoveSafeBrowsingCookieTester tester; |
| 912 | 922 |
| 913 tester.AddCookie(); | 923 tester.AddCookie(); |
| 914 ASSERT_TRUE(tester.ContainsCookie()); | 924 ASSERT_TRUE(tester.ContainsCookie()); |
| 915 | 925 |
| 916 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), | 926 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), |
| 917 BrowsingDataRemover::REMOVE_COOKIES, false); | 927 { &kBrowsingDataTypeCookies }, false); |
| 918 | 928 |
| 919 EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask()); | 929 EXPECT_EQ(Mask({ &kBrowsingDataTypeCookies }), GetRemovalMask()); |
| 920 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); | 930 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); |
| 921 EXPECT_FALSE(tester.ContainsCookie()); | 931 EXPECT_FALSE(tester.ContainsCookie()); |
| 922 } | 932 } |
| 923 | 933 |
| 924 TEST_F(ChromeBrowsingDataRemoverDelegateTest, | 934 TEST_F(ChromeBrowsingDataRemoverDelegateTest, |
| 925 RemoveSafeBrowsingCookieLastHour) { | 935 RemoveSafeBrowsingCookieLastHour) { |
| 926 RemoveSafeBrowsingCookieTester tester; | 936 RemoveSafeBrowsingCookieTester tester; |
| 927 | 937 |
| 928 tester.AddCookie(); | 938 tester.AddCookie(); |
| 929 ASSERT_TRUE(tester.ContainsCookie()); | 939 ASSERT_TRUE(tester.ContainsCookie()); |
| 930 | 940 |
| 931 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), | 941 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), |
| 932 BrowsingDataRemover::REMOVE_COOKIES, false); | 942 { &kBrowsingDataTypeCookies }, false); |
| 933 | 943 |
| 934 EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask()); | 944 EXPECT_EQ(Mask({ &kBrowsingDataTypeCookies }), GetRemovalMask()); |
| 935 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); | 945 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); |
| 936 // Removing with time period other than all time should not clear safe | 946 // Removing with time period other than all time should not clear safe |
| 937 // browsing cookies. | 947 // browsing cookies. |
| 938 EXPECT_TRUE(tester.ContainsCookie()); | 948 EXPECT_TRUE(tester.ContainsCookie()); |
| 939 } | 949 } |
| 940 | 950 |
| 941 TEST_F(ChromeBrowsingDataRemoverDelegateTest, | 951 TEST_F(ChromeBrowsingDataRemoverDelegateTest, |
| 942 RemoveSafeBrowsingCookieForeverWithPredicate) { | 952 RemoveSafeBrowsingCookieForeverWithPredicate) { |
| 943 RemoveSafeBrowsingCookieTester tester; | 953 RemoveSafeBrowsingCookieTester tester; |
| 944 | 954 |
| 945 tester.AddCookie(); | 955 tester.AddCookie(); |
| 946 ASSERT_TRUE(tester.ContainsCookie()); | 956 ASSERT_TRUE(tester.ContainsCookie()); |
| 947 std::unique_ptr<BrowsingDataFilterBuilder> filter( | 957 std::unique_ptr<BrowsingDataFilterBuilder> filter( |
| 948 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST)); | 958 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST)); |
| 949 filter->AddRegisterableDomain(kTestRegisterableDomain1); | 959 filter->AddRegisterableDomain(kTestRegisterableDomain1); |
| 950 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), | 960 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), |
| 951 BrowsingDataRemover::REMOVE_COOKIES, | 961 { &kBrowsingDataTypeCookies }, |
| 952 std::move(filter)); | 962 std::move(filter)); |
| 953 | 963 |
| 954 EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask()); | 964 EXPECT_EQ(Mask({ &kBrowsingDataTypeCookies }), GetRemovalMask()); |
| 955 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); | 965 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); |
| 956 EXPECT_TRUE(tester.ContainsCookie()); | 966 EXPECT_TRUE(tester.ContainsCookie()); |
| 957 | 967 |
| 958 std::unique_ptr<BrowsingDataFilterBuilder> filter2( | 968 std::unique_ptr<BrowsingDataFilterBuilder> filter2( |
| 959 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); | 969 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); |
| 960 filter2->AddRegisterableDomain(kTestRegisterableDomain1); | 970 filter2->AddRegisterableDomain(kTestRegisterableDomain1); |
| 961 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), | 971 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), |
| 962 BrowsingDataRemover::REMOVE_COOKIES, | 972 { &kBrowsingDataTypeCookies }, |
| 963 std::move(filter2)); | 973 std::move(filter2)); |
| 964 EXPECT_FALSE(tester.ContainsCookie()); | 974 EXPECT_FALSE(tester.ContainsCookie()); |
| 965 } | 975 } |
| 966 | 976 |
| 967 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveHistoryForever) { | 977 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveHistoryForever) { |
| 968 RemoveHistoryTester tester; | 978 RemoveHistoryTester tester; |
| 969 ASSERT_TRUE(tester.Init(GetProfile())); | 979 ASSERT_TRUE(tester.Init(GetProfile())); |
| 970 | 980 |
| 971 tester.AddHistory(kOrigin1, base::Time::Now()); | 981 tester.AddHistory(kOrigin1, base::Time::Now()); |
| 972 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1)); | 982 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1)); |
| 973 | 983 |
| 974 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), | 984 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), |
| 975 BrowsingDataRemover::REMOVE_HISTORY, false); | 985 { &kBrowsingDataTypeHistory }, false); |
| 976 | 986 |
| 977 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); | 987 EXPECT_EQ(Mask({ &kBrowsingDataTypeHistory }), GetRemovalMask()); |
| 978 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); | 988 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); |
| 979 EXPECT_FALSE(tester.HistoryContainsURL(kOrigin1)); | 989 EXPECT_FALSE(tester.HistoryContainsURL(kOrigin1)); |
| 980 } | 990 } |
| 981 | 991 |
| 982 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveHistoryForLastHour) { | 992 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveHistoryForLastHour) { |
| 983 RemoveHistoryTester tester; | 993 RemoveHistoryTester tester; |
| 984 ASSERT_TRUE(tester.Init(GetProfile())); | 994 ASSERT_TRUE(tester.Init(GetProfile())); |
| 985 | 995 |
| 986 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2); | 996 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2); |
| 987 | 997 |
| 988 tester.AddHistory(kOrigin1, base::Time::Now()); | 998 tester.AddHistory(kOrigin1, base::Time::Now()); |
| 989 tester.AddHistory(kOrigin2, two_hours_ago); | 999 tester.AddHistory(kOrigin2, two_hours_ago); |
| 990 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1)); | 1000 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1)); |
| 991 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin2)); | 1001 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin2)); |
| 992 | 1002 |
| 993 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), | 1003 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), |
| 994 BrowsingDataRemover::REMOVE_HISTORY, false); | 1004 { &kBrowsingDataTypeHistory }, false); |
| 995 | 1005 |
| 996 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); | 1006 EXPECT_EQ(Mask({ &kBrowsingDataTypeHistory }), GetRemovalMask()); |
| 997 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); | 1007 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); |
| 998 EXPECT_FALSE(tester.HistoryContainsURL(kOrigin1)); | 1008 EXPECT_FALSE(tester.HistoryContainsURL(kOrigin1)); |
| 999 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin2)); | 1009 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin2)); |
| 1000 } | 1010 } |
| 1001 | 1011 |
| 1002 // This should crash (DCHECK) in Debug, but death tests don't work properly | 1012 // This should crash (DCHECK) in Debug, but death tests don't work properly |
| 1003 // here. | 1013 // here. |
| 1004 // TODO(msramek): To make this testable, the refusal to delete history should | 1014 // TODO(msramek): To make this testable, the refusal to delete history should |
| 1005 // be made a part of interface (e.g. a success value) as opposed to a DCHECK. | 1015 // be made a part of interface (e.g. a success value) as opposed to a DCHECK. |
| 1006 #if defined(NDEBUG) && !defined(DCHECK_ALWAYS_ON) | 1016 #if defined(NDEBUG) && !defined(DCHECK_ALWAYS_ON) |
| 1007 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveHistoryProhibited) { | 1017 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveHistoryProhibited) { |
| 1008 RemoveHistoryTester tester; | 1018 RemoveHistoryTester tester; |
| 1009 ASSERT_TRUE(tester.Init(GetProfile())); | 1019 ASSERT_TRUE(tester.Init(GetProfile())); |
| 1010 PrefService* prefs = GetProfile()->GetPrefs(); | 1020 PrefService* prefs = GetProfile()->GetPrefs(); |
| 1011 prefs->SetBoolean(prefs::kAllowDeletingBrowserHistory, false); | 1021 prefs->SetBoolean(prefs::kAllowDeletingBrowserHistory, false); |
| 1012 | 1022 |
| 1013 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2); | 1023 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2); |
| 1014 | 1024 |
| 1015 tester.AddHistory(kOrigin1, base::Time::Now()); | 1025 tester.AddHistory(kOrigin1, base::Time::Now()); |
| 1016 tester.AddHistory(kOrigin2, two_hours_ago); | 1026 tester.AddHistory(kOrigin2, two_hours_ago); |
| 1017 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1)); | 1027 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1)); |
| 1018 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin2)); | 1028 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin2)); |
| 1019 | 1029 |
| 1020 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), | 1030 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), |
| 1021 BrowsingDataRemover::REMOVE_HISTORY, false); | 1031 { &kBrowsingDataTypeHistory }, false); |
| 1022 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); | 1032 EXPECT_EQ(Mask({ &kBrowsingDataTypeHistory }), GetRemovalMask()); |
| 1023 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); | 1033 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); |
| 1024 | 1034 |
| 1025 // Nothing should have been deleted. | 1035 // Nothing should have been deleted. |
| 1026 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin1)); | 1036 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin1)); |
| 1027 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin2)); | 1037 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin2)); |
| 1028 } | 1038 } |
| 1029 | 1039 |
| 1030 TEST_F(ChromeBrowsingDataRemoverDelegateTest, | 1040 TEST_F(ChromeBrowsingDataRemoverDelegateTest, |
| 1031 RemoveMultipleTypesHistoryProhibited) { | 1041 RemoveMultipleTypesHistoryProhibited) { |
| 1032 PrefService* prefs = GetProfile()->GetPrefs(); | 1042 PrefService* prefs = GetProfile()->GetPrefs(); |
| 1033 prefs->SetBoolean(prefs::kAllowDeletingBrowserHistory, false); | 1043 prefs->SetBoolean(prefs::kAllowDeletingBrowserHistory, false); |
| 1034 | 1044 |
| 1035 // Add some history. | 1045 // Add some history. |
| 1036 RemoveHistoryTester history_tester; | 1046 RemoveHistoryTester history_tester; |
| 1037 ASSERT_TRUE(history_tester.Init(GetProfile())); | 1047 ASSERT_TRUE(history_tester.Init(GetProfile())); |
| 1038 history_tester.AddHistory(kOrigin1, base::Time::Now()); | 1048 history_tester.AddHistory(kOrigin1, base::Time::Now()); |
| 1039 ASSERT_TRUE(history_tester.HistoryContainsURL(kOrigin1)); | 1049 ASSERT_TRUE(history_tester.HistoryContainsURL(kOrigin1)); |
| 1040 | 1050 |
| 1041 // Expect that passwords will be deleted, as they do not depend | 1051 // Expect that passwords will be deleted, as they do not depend |
| 1042 // on |prefs::kAllowDeletingBrowserHistory|. | 1052 // on |prefs::kAllowDeletingBrowserHistory|. |
| 1043 RemovePasswordsTester tester(GetProfile()); | 1053 RemovePasswordsTester tester(GetProfile()); |
| 1044 EXPECT_CALL(*tester.store(), RemoveLoginsByURLAndTimeImpl(_, _, _)); | 1054 EXPECT_CALL(*tester.store(), RemoveLoginsByURLAndTimeImpl(_, _, _)); |
| 1045 | 1055 |
| 1046 int removal_mask = BrowsingDataRemover::REMOVE_HISTORY | | 1056 std::set<const BrowsingDataType*> removal_mask = |
| 1047 BrowsingDataRemover::REMOVE_PASSWORDS; | 1057 { &kBrowsingDataTypeHistory, &kBrowsingDataTypePasswords }; |
| 1048 | |
| 1049 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), | 1058 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), |
| 1050 removal_mask, false); | 1059 removal_mask, false); |
| 1051 EXPECT_EQ(removal_mask, GetRemovalMask()); | 1060 EXPECT_EQ(removal_mask, GetRemovalMask()); |
| 1052 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); | 1061 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); |
| 1053 | 1062 |
| 1054 // Verify that history was not deleted. | 1063 // Verify that history was not deleted. |
| 1055 EXPECT_TRUE(history_tester.HistoryContainsURL(kOrigin1)); | 1064 EXPECT_TRUE(history_tester.HistoryContainsURL(kOrigin1)); |
| 1056 } | 1065 } |
| 1057 #endif | 1066 #endif |
| 1058 | 1067 |
| 1059 // Test that clearing history deletes favicons not associated with bookmarks. | 1068 // Test that clearing history deletes favicons not associated with bookmarks. |
| 1060 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveFaviconsForever) { | 1069 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveFaviconsForever) { |
| 1061 GURL page_url("http://a"); | 1070 GURL page_url("http://a"); |
| 1062 | 1071 |
| 1063 RemoveFaviconTester favicon_tester; | 1072 RemoveFaviconTester favicon_tester; |
| 1064 ASSERT_TRUE(favicon_tester.Init(GetProfile())); | 1073 ASSERT_TRUE(favicon_tester.Init(GetProfile())); |
| 1065 favicon_tester.VisitAndAddFavicon(page_url); | 1074 favicon_tester.VisitAndAddFavicon(page_url); |
| 1066 ASSERT_TRUE(favicon_tester.HasFaviconForPageURL(page_url)); | 1075 ASSERT_TRUE(favicon_tester.HasFaviconForPageURL(page_url)); |
| 1067 | 1076 |
| 1068 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), | 1077 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), |
| 1069 BrowsingDataRemover::REMOVE_HISTORY, false); | 1078 { &kBrowsingDataTypeHistory }, false); |
| 1070 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); | 1079 EXPECT_EQ(Mask({ &kBrowsingDataTypeHistory }), GetRemovalMask()); |
| 1071 EXPECT_FALSE(favicon_tester.HasFaviconForPageURL(page_url)); | 1080 EXPECT_FALSE(favicon_tester.HasFaviconForPageURL(page_url)); |
| 1072 } | 1081 } |
| 1073 | 1082 |
| 1074 // Test that a bookmark's favicon is expired and not deleted when clearing | 1083 // Test that a bookmark's favicon is expired and not deleted when clearing |
| 1075 // history. Expiring the favicon causes the bookmark's favicon to be updated | 1084 // history. Expiring the favicon causes the bookmark's favicon to be updated |
| 1076 // when the user next visits the bookmarked page. Expiring the bookmark's | 1085 // when the user next visits the bookmarked page. Expiring the bookmark's |
| 1077 // favicon is useful when the bookmark's favicon becomes incorrect (See | 1086 // favicon is useful when the bookmark's favicon becomes incorrect (See |
| 1078 // crbug.com/474421 for a sample bug which causes this). | 1087 // crbug.com/474421 for a sample bug which causes this). |
| 1079 TEST_F(ChromeBrowsingDataRemoverDelegateTest, ExpireBookmarkFavicons) { | 1088 TEST_F(ChromeBrowsingDataRemoverDelegateTest, ExpireBookmarkFavicons) { |
| 1080 GURL bookmarked_page("http://a"); | 1089 GURL bookmarked_page("http://a"); |
| 1081 | 1090 |
| 1082 TestingProfile* profile = GetProfile(); | 1091 TestingProfile* profile = GetProfile(); |
| 1083 profile->CreateBookmarkModel(true); | 1092 profile->CreateBookmarkModel(true); |
| 1084 bookmarks::BookmarkModel* bookmark_model = | 1093 bookmarks::BookmarkModel* bookmark_model = |
| 1085 BookmarkModelFactory::GetForBrowserContext(profile); | 1094 BookmarkModelFactory::GetForBrowserContext(profile); |
| 1086 bookmarks::test::WaitForBookmarkModelToLoad(bookmark_model); | 1095 bookmarks::test::WaitForBookmarkModelToLoad(bookmark_model); |
| 1087 bookmark_model->AddURL(bookmark_model->bookmark_bar_node(), 0, | 1096 bookmark_model->AddURL(bookmark_model->bookmark_bar_node(), 0, |
| 1088 base::ASCIIToUTF16("a"), bookmarked_page); | 1097 base::ASCIIToUTF16("a"), bookmarked_page); |
| 1089 | 1098 |
| 1090 RemoveFaviconTester favicon_tester; | 1099 RemoveFaviconTester favicon_tester; |
| 1091 ASSERT_TRUE(favicon_tester.Init(GetProfile())); | 1100 ASSERT_TRUE(favicon_tester.Init(GetProfile())); |
| 1092 favicon_tester.VisitAndAddFavicon(bookmarked_page); | 1101 favicon_tester.VisitAndAddFavicon(bookmarked_page); |
| 1093 ASSERT_TRUE(favicon_tester.HasFaviconForPageURL(bookmarked_page)); | 1102 ASSERT_TRUE(favicon_tester.HasFaviconForPageURL(bookmarked_page)); |
| 1094 | 1103 |
| 1095 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), | 1104 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), |
| 1096 BrowsingDataRemover::REMOVE_HISTORY, false); | 1105 { &kBrowsingDataTypeHistory }, false); |
| 1097 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); | 1106 EXPECT_EQ(Mask({ &kBrowsingDataTypeHistory }), GetRemovalMask()); |
| 1098 EXPECT_TRUE(favicon_tester.HasExpiredFaviconForPageURL(bookmarked_page)); | 1107 EXPECT_TRUE(favicon_tester.HasExpiredFaviconForPageURL(bookmarked_page)); |
| 1099 } | 1108 } |
| 1100 | 1109 |
| 1101 // TODO(crbug.com/589586): Disabled, since history is not yet marked as | 1110 // TODO(crbug.com/589586): Disabled, since history is not yet marked as |
| 1102 // a filterable datatype. | 1111 // a filterable datatype. |
| 1103 TEST_F(ChromeBrowsingDataRemoverDelegateTest, | 1112 TEST_F(ChromeBrowsingDataRemoverDelegateTest, |
| 1104 DISABLED_TimeBasedHistoryRemoval) { | 1113 DISABLED_TimeBasedHistoryRemoval) { |
| 1105 RemoveHistoryTester tester; | 1114 RemoveHistoryTester tester; |
| 1106 ASSERT_TRUE(tester.Init(GetProfile())); | 1115 ASSERT_TRUE(tester.Init(GetProfile())); |
| 1107 | 1116 |
| 1108 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2); | 1117 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2); |
| 1109 | 1118 |
| 1110 tester.AddHistory(kOrigin1, base::Time::Now()); | 1119 tester.AddHistory(kOrigin1, base::Time::Now()); |
| 1111 tester.AddHistory(kOrigin2, two_hours_ago); | 1120 tester.AddHistory(kOrigin2, two_hours_ago); |
| 1112 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1)); | 1121 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1)); |
| 1113 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin2)); | 1122 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin2)); |
| 1114 | 1123 |
| 1115 std::unique_ptr<BrowsingDataFilterBuilder> builder( | 1124 std::unique_ptr<BrowsingDataFilterBuilder> builder( |
| 1116 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST)); | 1125 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST)); |
| 1117 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(), | 1126 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(), |
| 1118 BrowsingDataRemover::REMOVE_HISTORY, | 1127 { &kBrowsingDataTypeHistory }, |
| 1119 std::move(builder)); | 1128 std::move(builder)); |
| 1120 | 1129 |
| 1121 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); | 1130 EXPECT_EQ(Mask({ &kBrowsingDataTypeHistory }), GetRemovalMask()); |
| 1122 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); | 1131 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); |
| 1123 EXPECT_FALSE(tester.HistoryContainsURL(kOrigin1)); | 1132 EXPECT_FALSE(tester.HistoryContainsURL(kOrigin1)); |
| 1124 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin2)); | 1133 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin2)); |
| 1125 } | 1134 } |
| 1126 | 1135 |
| 1127 // Verify that clearing autofill form data works. | 1136 // Verify that clearing autofill form data works. |
| 1128 TEST_F(ChromeBrowsingDataRemoverDelegateTest, AutofillRemovalLastHour) { | 1137 TEST_F(ChromeBrowsingDataRemoverDelegateTest, AutofillRemovalLastHour) { |
| 1129 GetProfile()->CreateWebDataService(); | 1138 GetProfile()->CreateWebDataService(); |
| 1130 RemoveAutofillTester tester(GetProfile()); | 1139 RemoveAutofillTester tester(GetProfile()); |
| 1131 | 1140 |
| 1132 ASSERT_FALSE(tester.HasProfile()); | 1141 ASSERT_FALSE(tester.HasProfile()); |
| 1133 tester.AddProfilesAndCards(); | 1142 tester.AddProfilesAndCards(); |
| 1134 ASSERT_TRUE(tester.HasProfile()); | 1143 ASSERT_TRUE(tester.HasProfile()); |
| 1135 | 1144 |
| 1136 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), | 1145 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), |
| 1137 BrowsingDataRemover::REMOVE_FORM_DATA, false); | 1146 { &kBrowsingDataTypeFormData }, false); |
| 1138 | 1147 |
| 1139 EXPECT_EQ(BrowsingDataRemover::REMOVE_FORM_DATA, GetRemovalMask()); | 1148 EXPECT_EQ(Mask({ &kBrowsingDataTypeFormData }), GetRemovalMask()); |
| 1140 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); | 1149 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); |
| 1141 ASSERT_FALSE(tester.HasProfile()); | 1150 ASSERT_FALSE(tester.HasProfile()); |
| 1142 } | 1151 } |
| 1143 | 1152 |
| 1144 TEST_F(ChromeBrowsingDataRemoverDelegateTest, AutofillRemovalEverything) { | 1153 TEST_F(ChromeBrowsingDataRemoverDelegateTest, AutofillRemovalEverything) { |
| 1145 GetProfile()->CreateWebDataService(); | 1154 GetProfile()->CreateWebDataService(); |
| 1146 RemoveAutofillTester tester(GetProfile()); | 1155 RemoveAutofillTester tester(GetProfile()); |
| 1147 | 1156 |
| 1148 ASSERT_FALSE(tester.HasProfile()); | 1157 ASSERT_FALSE(tester.HasProfile()); |
| 1149 tester.AddProfilesAndCards(); | 1158 tester.AddProfilesAndCards(); |
| 1150 ASSERT_TRUE(tester.HasProfile()); | 1159 ASSERT_TRUE(tester.HasProfile()); |
| 1151 | 1160 |
| 1152 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), | 1161 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), |
| 1153 BrowsingDataRemover::REMOVE_FORM_DATA, false); | 1162 { &kBrowsingDataTypeFormData }, false); |
| 1154 | 1163 |
| 1155 EXPECT_EQ(BrowsingDataRemover::REMOVE_FORM_DATA, GetRemovalMask()); | 1164 EXPECT_EQ(Mask({ &kBrowsingDataTypeFormData }), GetRemovalMask()); |
| 1156 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); | 1165 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); |
| 1157 ASSERT_FALSE(tester.HasProfile()); | 1166 ASSERT_FALSE(tester.HasProfile()); |
| 1158 } | 1167 } |
| 1159 | 1168 |
| 1160 // Verify that clearing autofill form data works. | 1169 // Verify that clearing autofill form data works. |
| 1161 TEST_F(ChromeBrowsingDataRemoverDelegateTest, | 1170 TEST_F(ChromeBrowsingDataRemoverDelegateTest, |
| 1162 AutofillOriginsRemovedWithHistory) { | 1171 AutofillOriginsRemovedWithHistory) { |
| 1163 GetProfile()->CreateWebDataService(); | 1172 GetProfile()->CreateWebDataService(); |
| 1164 RemoveAutofillTester tester(GetProfile()); | 1173 RemoveAutofillTester tester(GetProfile()); |
| 1165 | 1174 |
| 1166 tester.AddProfilesAndCards(); | 1175 tester.AddProfilesAndCards(); |
| 1167 EXPECT_FALSE(tester.HasOrigin(std::string())); | 1176 EXPECT_FALSE(tester.HasOrigin(std::string())); |
| 1168 EXPECT_TRUE(tester.HasOrigin(kWebOrigin)); | 1177 EXPECT_TRUE(tester.HasOrigin(kWebOrigin)); |
| 1169 EXPECT_TRUE(tester.HasOrigin(autofill::kSettingsOrigin)); | 1178 EXPECT_TRUE(tester.HasOrigin(autofill::kSettingsOrigin)); |
| 1170 | 1179 |
| 1171 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), | 1180 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), |
| 1172 BrowsingDataRemover::REMOVE_HISTORY, false); | 1181 { &kBrowsingDataTypeHistory }, false); |
| 1173 | 1182 |
| 1174 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); | 1183 EXPECT_EQ(Mask({ &kBrowsingDataTypeHistory }), GetRemovalMask()); |
| 1175 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); | 1184 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); |
| 1176 EXPECT_TRUE(tester.HasOrigin(std::string())); | 1185 EXPECT_TRUE(tester.HasOrigin(std::string())); |
| 1177 EXPECT_FALSE(tester.HasOrigin(kWebOrigin)); | 1186 EXPECT_FALSE(tester.HasOrigin(kWebOrigin)); |
| 1178 EXPECT_TRUE(tester.HasOrigin(autofill::kSettingsOrigin)); | 1187 EXPECT_TRUE(tester.HasOrigin(autofill::kSettingsOrigin)); |
| 1179 } | 1188 } |
| 1180 | 1189 |
| 1181 TEST_F(ChromeBrowsingDataRemoverDelegateTest, ZeroSuggestCacheClear) { | 1190 TEST_F(ChromeBrowsingDataRemoverDelegateTest, ZeroSuggestCacheClear) { |
| 1182 PrefService* prefs = GetProfile()->GetPrefs(); | 1191 PrefService* prefs = GetProfile()->GetPrefs(); |
| 1183 prefs->SetString(omnibox::kZeroSuggestCachedResults, | 1192 prefs->SetString(omnibox::kZeroSuggestCachedResults, |
| 1184 "[\"\", [\"foo\", \"bar\"]]"); | 1193 "[\"\", [\"foo\", \"bar\"]]"); |
| 1185 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), | 1194 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), |
| 1186 BrowsingDataRemover::REMOVE_COOKIES, false); | 1195 { &kBrowsingDataTypeCookies }, false); |
| 1187 | 1196 |
| 1188 // Expect the prefs to be cleared when cookies are removed. | 1197 // Expect the prefs to be cleared when cookies are removed. |
| 1189 EXPECT_TRUE(prefs->GetString(omnibox::kZeroSuggestCachedResults).empty()); | 1198 EXPECT_TRUE(prefs->GetString(omnibox::kZeroSuggestCachedResults).empty()); |
| 1190 EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask()); | 1199 EXPECT_EQ(Mask({ &kBrowsingDataTypeCookies }), GetRemovalMask()); |
| 1191 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); | 1200 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); |
| 1192 } | 1201 } |
| 1193 | 1202 |
| 1194 #if defined(OS_CHROMEOS) | 1203 #if defined(OS_CHROMEOS) |
| 1195 TEST_F(ChromeBrowsingDataRemoverDelegateTest, | 1204 TEST_F(ChromeBrowsingDataRemoverDelegateTest, |
| 1196 ContentProtectionPlatformKeysRemoval) { | 1205 ContentProtectionPlatformKeysRemoval) { |
| 1197 chromeos::ScopedTestDeviceSettingsService test_device_settings_service; | 1206 chromeos::ScopedTestDeviceSettingsService test_device_settings_service; |
| 1198 chromeos::ScopedTestCrosSettings test_cros_settings; | 1207 chromeos::ScopedTestCrosSettings test_cros_settings; |
| 1199 chromeos::MockUserManager* mock_user_manager = | 1208 chromeos::MockUserManager* mock_user_manager = |
| 1200 new testing::NiceMock<chromeos::MockUserManager>(); | 1209 new testing::NiceMock<chromeos::MockUserManager>(); |
| 1201 mock_user_manager->SetActiveUser( | 1210 mock_user_manager->SetActiveUser( |
| 1202 AccountId::FromUserEmail("test@example.com")); | 1211 AccountId::FromUserEmail("test@example.com")); |
| 1203 chromeos::ScopedUserManagerEnabler user_manager_enabler(mock_user_manager); | 1212 chromeos::ScopedUserManagerEnabler user_manager_enabler(mock_user_manager); |
| 1204 | 1213 |
| 1205 std::unique_ptr<chromeos::DBusThreadManagerSetter> dbus_setter = | 1214 std::unique_ptr<chromeos::DBusThreadManagerSetter> dbus_setter = |
| 1206 chromeos::DBusThreadManager::GetSetterForTesting(); | 1215 chromeos::DBusThreadManager::GetSetterForTesting(); |
| 1207 chromeos::MockCryptohomeClient* cryptohome_client = | 1216 chromeos::MockCryptohomeClient* cryptohome_client = |
| 1208 new chromeos::MockCryptohomeClient; | 1217 new chromeos::MockCryptohomeClient; |
| 1209 dbus_setter->SetCryptohomeClient( | 1218 dbus_setter->SetCryptohomeClient( |
| 1210 std::unique_ptr<chromeos::CryptohomeClient>(cryptohome_client)); | 1219 std::unique_ptr<chromeos::CryptohomeClient>(cryptohome_client)); |
| 1211 | 1220 |
| 1212 // Expect exactly one call. No calls means no attempt to delete keys and more | 1221 // Expect exactly one call. No calls means no attempt to delete keys and more |
| 1213 // than one call means a significant performance problem. | 1222 // than one call means a significant performance problem. |
| 1214 EXPECT_CALL(*cryptohome_client, TpmAttestationDeleteKeys(_, _, _, _)) | 1223 EXPECT_CALL(*cryptohome_client, TpmAttestationDeleteKeys(_, _, _, _)) |
| 1215 .WillOnce(WithArgs<3>(Invoke(FakeDBusCall))); | 1224 .WillOnce(WithArgs<3>(Invoke(FakeDBusCall))); |
| 1216 | 1225 |
| 1217 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), | 1226 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), |
| 1218 BrowsingDataRemover::REMOVE_MEDIA_LICENSES, | 1227 { &kBrowsingDataTypeMediaLicenses }, false); |
| 1219 false); | |
| 1220 | 1228 |
| 1221 chromeos::DBusThreadManager::Shutdown(); | 1229 chromeos::DBusThreadManager::Shutdown(); |
| 1222 } | 1230 } |
| 1223 #endif | 1231 #endif |
| 1224 | 1232 |
| 1225 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DomainReliability_Null) { | 1233 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DomainReliability_Null) { |
| 1226 const ClearDomainReliabilityTester& tester = | 1234 const ClearDomainReliabilityTester& tester = |
| 1227 clear_domain_reliability_tester(); | 1235 clear_domain_reliability_tester(); |
| 1228 | 1236 |
| 1229 EXPECT_EQ(0u, tester.clear_count()); | 1237 EXPECT_EQ(0u, tester.clear_count()); |
| 1230 } | 1238 } |
| 1231 | 1239 |
| 1232 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DomainReliability_Beacons) { | 1240 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DomainReliability_Beacons) { |
| 1233 const ClearDomainReliabilityTester& tester = | 1241 const ClearDomainReliabilityTester& tester = |
| 1234 clear_domain_reliability_tester(); | 1242 clear_domain_reliability_tester(); |
| 1235 | 1243 |
| 1236 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), | 1244 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), |
| 1237 BrowsingDataRemover::REMOVE_HISTORY, false); | 1245 { &kBrowsingDataTypeHistory }, false); |
| 1238 EXPECT_EQ(1u, tester.clear_count()); | 1246 EXPECT_EQ(1u, tester.clear_count()); |
| 1239 EXPECT_EQ(CLEAR_BEACONS, tester.last_clear_mode()); | 1247 EXPECT_EQ(CLEAR_BEACONS, tester.last_clear_mode()); |
| 1240 EXPECT_TRUE(ProbablySameFilters( | 1248 EXPECT_TRUE(ProbablySameFilters( |
| 1241 BrowsingDataFilterBuilder::BuildNoopFilter(), tester.last_filter())); | 1249 BrowsingDataFilterBuilder::BuildNoopFilter(), tester.last_filter())); |
| 1242 } | 1250 } |
| 1243 | 1251 |
| 1244 // TODO(crbug.com/589586): Disabled, since history is not yet marked as | 1252 // TODO(crbug.com/589586): Disabled, since history is not yet marked as |
| 1245 // a filterable datatype. | 1253 // a filterable datatype. |
| 1246 TEST_F(ChromeBrowsingDataRemoverDelegateTest, | 1254 TEST_F(ChromeBrowsingDataRemoverDelegateTest, |
| 1247 DISABLED_DomainReliability_Beacons_WithFilter) { | 1255 DISABLED_DomainReliability_Beacons_WithFilter) { |
| 1248 const ClearDomainReliabilityTester& tester = | 1256 const ClearDomainReliabilityTester& tester = |
| 1249 clear_domain_reliability_tester(); | 1257 clear_domain_reliability_tester(); |
| 1250 | 1258 |
| 1251 std::unique_ptr<BrowsingDataFilterBuilder> builder( | 1259 std::unique_ptr<BrowsingDataFilterBuilder> builder( |
| 1252 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); | 1260 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); |
| 1253 builder->AddRegisterableDomain(kTestRegisterableDomain1); | 1261 builder->AddRegisterableDomain(kTestRegisterableDomain1); |
| 1254 | 1262 |
| 1255 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), | 1263 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), |
| 1256 BrowsingDataRemover::REMOVE_HISTORY, | 1264 { &kBrowsingDataTypeHistory }, builder->Copy()); |
| 1257 builder->Copy()); | |
| 1258 EXPECT_EQ(1u, tester.clear_count()); | 1265 EXPECT_EQ(1u, tester.clear_count()); |
| 1259 EXPECT_EQ(CLEAR_BEACONS, tester.last_clear_mode()); | 1266 EXPECT_EQ(CLEAR_BEACONS, tester.last_clear_mode()); |
| 1260 EXPECT_TRUE(ProbablySameFilters( | 1267 EXPECT_TRUE(ProbablySameFilters( |
| 1261 builder->BuildGeneralFilter(), tester.last_filter())); | 1268 builder->BuildGeneralFilter(), tester.last_filter())); |
| 1262 } | 1269 } |
| 1263 | 1270 |
| 1264 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DomainReliability_Contexts) { | 1271 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DomainReliability_Contexts) { |
| 1265 const ClearDomainReliabilityTester& tester = | 1272 const ClearDomainReliabilityTester& tester = |
| 1266 clear_domain_reliability_tester(); | 1273 clear_domain_reliability_tester(); |
| 1267 | 1274 |
| 1268 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), | 1275 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), |
| 1269 BrowsingDataRemover::REMOVE_COOKIES, false); | 1276 { &kBrowsingDataTypeCookies }, false); |
| 1270 EXPECT_EQ(1u, tester.clear_count()); | 1277 EXPECT_EQ(1u, tester.clear_count()); |
| 1271 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode()); | 1278 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode()); |
| 1272 EXPECT_TRUE(ProbablySameFilters( | 1279 EXPECT_TRUE(ProbablySameFilters( |
| 1273 BrowsingDataFilterBuilder::BuildNoopFilter(), tester.last_filter())); | 1280 BrowsingDataFilterBuilder::BuildNoopFilter(), tester.last_filter())); |
| 1274 } | 1281 } |
| 1275 | 1282 |
| 1276 TEST_F(ChromeBrowsingDataRemoverDelegateTest, | 1283 TEST_F(ChromeBrowsingDataRemoverDelegateTest, |
| 1277 DomainReliability_Contexts_WithFilter) { | 1284 DomainReliability_Contexts_WithFilter) { |
| 1278 const ClearDomainReliabilityTester& tester = | 1285 const ClearDomainReliabilityTester& tester = |
| 1279 clear_domain_reliability_tester(); | 1286 clear_domain_reliability_tester(); |
| 1280 | 1287 |
| 1281 std::unique_ptr<BrowsingDataFilterBuilder> builder( | 1288 std::unique_ptr<BrowsingDataFilterBuilder> builder( |
| 1282 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); | 1289 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); |
| 1283 builder->AddRegisterableDomain(kTestRegisterableDomain1); | 1290 builder->AddRegisterableDomain(kTestRegisterableDomain1); |
| 1284 | 1291 |
| 1285 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), | 1292 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), |
| 1286 BrowsingDataRemover::REMOVE_COOKIES, | 1293 { &kBrowsingDataTypeCookies }, |
| 1287 builder->Copy()); | 1294 builder->Copy()); |
| 1288 EXPECT_EQ(1u, tester.clear_count()); | 1295 EXPECT_EQ(1u, tester.clear_count()); |
| 1289 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode()); | 1296 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode()); |
| 1290 EXPECT_TRUE(ProbablySameFilters( | 1297 EXPECT_TRUE(ProbablySameFilters( |
| 1291 builder->BuildGeneralFilter(), tester.last_filter())); | 1298 builder->BuildGeneralFilter(), tester.last_filter())); |
| 1292 } | 1299 } |
| 1293 | 1300 |
| 1294 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DomainReliability_ContextsWin) { | 1301 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DomainReliability_ContextsWin) { |
| 1295 const ClearDomainReliabilityTester& tester = | 1302 const ClearDomainReliabilityTester& tester = |
| 1296 clear_domain_reliability_tester(); | 1303 clear_domain_reliability_tester(); |
| 1297 | 1304 |
| 1298 BlockUntilBrowsingDataRemoved( | 1305 BlockUntilBrowsingDataRemoved( |
| 1299 base::Time(), base::Time::Max(), | 1306 base::Time(), base::Time::Max(), |
| 1300 BrowsingDataRemover::REMOVE_HISTORY | BrowsingDataRemover::REMOVE_COOKIES, | 1307 { &kBrowsingDataTypeHistory, &kBrowsingDataTypeCookies }, false); |
| 1301 false); | |
| 1302 EXPECT_EQ(1u, tester.clear_count()); | 1308 EXPECT_EQ(1u, tester.clear_count()); |
| 1303 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode()); | 1309 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode()); |
| 1304 } | 1310 } |
| 1305 | 1311 |
| 1306 TEST_F(ChromeBrowsingDataRemoverDelegateTest, | 1312 TEST_F(ChromeBrowsingDataRemoverDelegateTest, |
| 1307 DomainReliability_ProtectedOrigins) { | 1313 DomainReliability_ProtectedOrigins) { |
| 1308 const ClearDomainReliabilityTester& tester = | 1314 const ClearDomainReliabilityTester& tester = |
| 1309 clear_domain_reliability_tester(); | 1315 clear_domain_reliability_tester(); |
| 1310 | 1316 |
| 1311 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), | 1317 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), |
| 1312 BrowsingDataRemover::REMOVE_COOKIES, true); | 1318 { &kBrowsingDataTypeCookies }, true); |
| 1313 EXPECT_EQ(1u, tester.clear_count()); | 1319 EXPECT_EQ(1u, tester.clear_count()); |
| 1314 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode()); | 1320 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode()); |
| 1315 } | 1321 } |
| 1316 | 1322 |
| 1317 // TODO(juliatuttle): This isn't actually testing the no-monitor case, since | 1323 // TODO(juliatuttle): This isn't actually testing the no-monitor case, since |
| 1318 // BrowsingDataRemoverTest now creates one unconditionally, since it's needed | 1324 // BrowsingDataRemoverTest now creates one unconditionally, since it's needed |
| 1319 // for some unrelated test cases. This should be fixed so it tests the no- | 1325 // for some unrelated test cases. This should be fixed so it tests the no- |
| 1320 // monitor case again. | 1326 // monitor case again. |
| 1321 TEST_F(ChromeBrowsingDataRemoverDelegateTest, | 1327 TEST_F(ChromeBrowsingDataRemoverDelegateTest, |
| 1322 DISABLED_DomainReliability_NoMonitor) { | 1328 DISABLED_DomainReliability_NoMonitor) { |
| 1323 BlockUntilBrowsingDataRemoved( | 1329 BlockUntilBrowsingDataRemoved( |
| 1324 base::Time(), base::Time::Max(), | 1330 base::Time(), base::Time::Max(), |
| 1325 BrowsingDataRemover::REMOVE_HISTORY | BrowsingDataRemover::REMOVE_COOKIES, | 1331 { &kBrowsingDataTypeHistory, &kBrowsingDataTypeCookies }, false); |
| 1326 false); | |
| 1327 } | 1332 } |
| 1328 | 1333 |
| 1329 // Tests that the deletion of downloads completes successfully and that | 1334 // Tests that the deletion of downloads completes successfully and that |
| 1330 // ChromeDownloadManagerDelegate is correctly created and shut down. | 1335 // ChromeDownloadManagerDelegate is correctly created and shut down. |
| 1331 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveDownloads) { | 1336 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveDownloads) { |
| 1332 RemoveDownloadsTester tester(GetProfile()); | 1337 RemoveDownloadsTester tester(GetProfile()); |
| 1333 | 1338 |
| 1334 EXPECT_CALL( | 1339 EXPECT_CALL( |
| 1335 *tester.download_manager(), RemoveDownloadsByURLAndTime(_, _, _)); | 1340 *tester.download_manager(), RemoveDownloadsByURLAndTime(_, _, _)); |
| 1336 | 1341 |
| 1337 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), | 1342 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), |
| 1338 BrowsingDataRemover::REMOVE_DOWNLOADS, false); | 1343 { &kBrowsingDataTypeDownloads }, false); |
| 1339 } | 1344 } |
| 1340 | 1345 |
| 1341 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemovePasswordStatistics) { | 1346 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemovePasswordStatistics) { |
| 1342 RemovePasswordsTester tester(GetProfile()); | 1347 RemovePasswordsTester tester(GetProfile()); |
| 1343 base::Callback<bool(const GURL&)> empty_filter; | 1348 base::Callback<bool(const GURL&)> empty_filter; |
| 1344 | 1349 |
| 1345 EXPECT_CALL(*tester.store(), RemoveStatisticsByOriginAndTimeImpl( | 1350 EXPECT_CALL(*tester.store(), RemoveStatisticsByOriginAndTimeImpl( |
| 1346 ProbablySameFilter(empty_filter), | 1351 ProbablySameFilter(empty_filter), |
| 1347 base::Time(), base::Time::Max())); | 1352 base::Time(), base::Time::Max())); |
| 1348 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), | 1353 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), |
| 1349 BrowsingDataRemover::REMOVE_HISTORY, false); | 1354 { &kBrowsingDataTypeHistory }, false); |
| 1350 } | 1355 } |
| 1351 | 1356 |
| 1352 // TODO(crbug.com/589586): Disabled, since history is not yet marked as | 1357 // TODO(crbug.com/589586): Disabled, since history is not yet marked as |
| 1353 // a filterable datatype. | 1358 // a filterable datatype. |
| 1354 TEST_F(ChromeBrowsingDataRemoverDelegateTest, | 1359 TEST_F(ChromeBrowsingDataRemoverDelegateTest, |
| 1355 DISABLED_RemovePasswordStatisticsByOrigin) { | 1360 DISABLED_RemovePasswordStatisticsByOrigin) { |
| 1356 RemovePasswordsTester tester(GetProfile()); | 1361 RemovePasswordsTester tester(GetProfile()); |
| 1357 | 1362 |
| 1358 std::unique_ptr<BrowsingDataFilterBuilder> builder( | 1363 std::unique_ptr<BrowsingDataFilterBuilder> builder( |
| 1359 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); | 1364 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); |
| 1360 builder->AddRegisterableDomain(kTestRegisterableDomain1); | 1365 builder->AddRegisterableDomain(kTestRegisterableDomain1); |
| 1361 base::Callback<bool(const GURL&)> filter = builder->BuildGeneralFilter(); | 1366 base::Callback<bool(const GURL&)> filter = builder->BuildGeneralFilter(); |
| 1362 | 1367 |
| 1363 EXPECT_CALL(*tester.store(), | 1368 EXPECT_CALL(*tester.store(), |
| 1364 RemoveStatisticsByOriginAndTimeImpl( | 1369 RemoveStatisticsByOriginAndTimeImpl( |
| 1365 ProbablySameFilter(filter), base::Time(), base::Time::Max())); | 1370 ProbablySameFilter(filter), base::Time(), base::Time::Max())); |
| 1366 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), | 1371 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), |
| 1367 BrowsingDataRemover::REMOVE_HISTORY, | 1372 { &kBrowsingDataTypeHistory }, |
| 1368 std::move(builder)); | 1373 std::move(builder)); |
| 1369 } | 1374 } |
| 1370 | 1375 |
| 1371 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemovePasswordsByTimeOnly) { | 1376 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemovePasswordsByTimeOnly) { |
| 1372 RemovePasswordsTester tester(GetProfile()); | 1377 RemovePasswordsTester tester(GetProfile()); |
| 1373 base::Callback<bool(const GURL&)> filter = | 1378 base::Callback<bool(const GURL&)> filter = |
| 1374 BrowsingDataFilterBuilder::BuildNoopFilter(); | 1379 BrowsingDataFilterBuilder::BuildNoopFilter(); |
| 1375 | 1380 |
| 1376 EXPECT_CALL(*tester.store(), | 1381 EXPECT_CALL(*tester.store(), |
| 1377 RemoveLoginsByURLAndTimeImpl(ProbablySameFilter(filter), _, _)) | 1382 RemoveLoginsByURLAndTimeImpl(ProbablySameFilter(filter), _, _)) |
| 1378 .WillOnce(Return(password_manager::PasswordStoreChangeList())); | 1383 .WillOnce(Return(password_manager::PasswordStoreChangeList())); |
| 1379 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), | 1384 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), |
| 1380 BrowsingDataRemover::REMOVE_PASSWORDS, false); | 1385 { &kBrowsingDataTypePasswords }, false); |
| 1381 } | 1386 } |
| 1382 | 1387 |
| 1383 // Disabled, since passwords are not yet marked as a filterable datatype. | 1388 // Disabled, since passwords are not yet marked as a filterable datatype. |
| 1384 TEST_F(ChromeBrowsingDataRemoverDelegateTest, | 1389 TEST_F(ChromeBrowsingDataRemoverDelegateTest, |
| 1385 DISABLED_RemovePasswordsByOrigin) { | 1390 DISABLED_RemovePasswordsByOrigin) { |
| 1386 RemovePasswordsTester tester(GetProfile()); | 1391 RemovePasswordsTester tester(GetProfile()); |
| 1387 std::unique_ptr<BrowsingDataFilterBuilder> builder( | 1392 std::unique_ptr<BrowsingDataFilterBuilder> builder( |
| 1388 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); | 1393 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); |
| 1389 builder->AddRegisterableDomain(kTestRegisterableDomain1); | 1394 builder->AddRegisterableDomain(kTestRegisterableDomain1); |
| 1390 base::Callback<bool(const GURL&)> filter = builder->BuildGeneralFilter(); | 1395 base::Callback<bool(const GURL&)> filter = builder->BuildGeneralFilter(); |
| 1391 | 1396 |
| 1392 EXPECT_CALL(*tester.store(), | 1397 EXPECT_CALL(*tester.store(), |
| 1393 RemoveLoginsByURLAndTimeImpl(ProbablySameFilter(filter), _, _)) | 1398 RemoveLoginsByURLAndTimeImpl(ProbablySameFilter(filter), _, _)) |
| 1394 .WillOnce(Return(password_manager::PasswordStoreChangeList())); | 1399 .WillOnce(Return(password_manager::PasswordStoreChangeList())); |
| 1395 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), | 1400 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), |
| 1396 BrowsingDataRemover::REMOVE_PASSWORDS, | 1401 { &kBrowsingDataTypePasswords }, |
| 1397 std::move(builder)); | 1402 std::move(builder)); |
| 1398 } | 1403 } |
| 1399 | 1404 |
| 1400 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DisableAutoSignIn) { | 1405 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DisableAutoSignIn) { |
| 1401 RemovePasswordsTester tester(GetProfile()); | 1406 RemovePasswordsTester tester(GetProfile()); |
| 1402 base::Callback<bool(const GURL&)> empty_filter = | 1407 base::Callback<bool(const GURL&)> empty_filter = |
| 1403 BrowsingDataFilterBuilder::BuildNoopFilter(); | 1408 BrowsingDataFilterBuilder::BuildNoopFilter(); |
| 1404 | 1409 |
| 1405 EXPECT_CALL( | 1410 EXPECT_CALL( |
| 1406 *tester.store(), | 1411 *tester.store(), |
| 1407 DisableAutoSignInForOriginsImpl(ProbablySameFilter(empty_filter))) | 1412 DisableAutoSignInForOriginsImpl(ProbablySameFilter(empty_filter))) |
| 1408 .WillOnce(Return(password_manager::PasswordStoreChangeList())); | 1413 .WillOnce(Return(password_manager::PasswordStoreChangeList())); |
| 1409 | 1414 |
| 1410 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), | 1415 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), |
| 1411 BrowsingDataRemover::REMOVE_COOKIES, false); | 1416 { &kBrowsingDataTypeCookies }, false); |
| 1412 } | 1417 } |
| 1413 | 1418 |
| 1414 TEST_F(ChromeBrowsingDataRemoverDelegateTest, | 1419 TEST_F(ChromeBrowsingDataRemoverDelegateTest, |
| 1415 DisableAutoSignInAfterRemovingPasswords) { | 1420 DisableAutoSignInAfterRemovingPasswords) { |
| 1416 RemovePasswordsTester tester(GetProfile()); | 1421 RemovePasswordsTester tester(GetProfile()); |
| 1417 base::Callback<bool(const GURL&)> empty_filter = | 1422 base::Callback<bool(const GURL&)> empty_filter = |
| 1418 BrowsingDataFilterBuilder::BuildNoopFilter(); | 1423 BrowsingDataFilterBuilder::BuildNoopFilter(); |
| 1419 | 1424 |
| 1420 EXPECT_CALL(*tester.store(), RemoveLoginsByURLAndTimeImpl(_, _, _)) | 1425 EXPECT_CALL(*tester.store(), RemoveLoginsByURLAndTimeImpl(_, _, _)) |
| 1421 .WillOnce(Return(password_manager::PasswordStoreChangeList())); | 1426 .WillOnce(Return(password_manager::PasswordStoreChangeList())); |
| 1422 EXPECT_CALL( | 1427 EXPECT_CALL( |
| 1423 *tester.store(), | 1428 *tester.store(), |
| 1424 DisableAutoSignInForOriginsImpl(ProbablySameFilter(empty_filter))) | 1429 DisableAutoSignInForOriginsImpl(ProbablySameFilter(empty_filter))) |
| 1425 .WillOnce(Return(password_manager::PasswordStoreChangeList())); | 1430 .WillOnce(Return(password_manager::PasswordStoreChangeList())); |
| 1426 | 1431 |
| 1427 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), | 1432 BlockUntilBrowsingDataRemoved( |
| 1428 BrowsingDataRemover::REMOVE_COOKIES | | 1433 base::Time(), base::Time::Max(), |
| 1429 BrowsingDataRemover::REMOVE_PASSWORDS, | 1434 { &kBrowsingDataTypeCookies, &kBrowsingDataTypePasswords }, false); |
| 1430 false); | |
| 1431 } | 1435 } |
| 1432 | 1436 |
| 1433 TEST_F(ChromeBrowsingDataRemoverDelegateTest, | 1437 TEST_F(ChromeBrowsingDataRemoverDelegateTest, |
| 1434 RemoveContentSettingsWithBlacklist) { | 1438 RemoveContentSettingsWithBlacklist) { |
| 1435 // Add our settings. | 1439 // Add our settings. |
| 1436 HostContentSettingsMap* host_content_settings_map = | 1440 HostContentSettingsMap* host_content_settings_map = |
| 1437 HostContentSettingsMapFactory::GetForProfile(GetProfile()); | 1441 HostContentSettingsMapFactory::GetForProfile(GetProfile()); |
| 1438 host_content_settings_map->SetWebsiteSettingDefaultScope( | 1442 host_content_settings_map->SetWebsiteSettingDefaultScope( |
| 1439 kOrigin1, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), | 1443 kOrigin1, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), |
| 1440 base::MakeUnique<base::DictionaryValue>()); | 1444 base::MakeUnique<base::DictionaryValue>()); |
| 1441 host_content_settings_map->SetWebsiteSettingDefaultScope( | 1445 host_content_settings_map->SetWebsiteSettingDefaultScope( |
| 1442 kOrigin2, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), | 1446 kOrigin2, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), |
| 1443 base::MakeUnique<base::DictionaryValue>()); | 1447 base::MakeUnique<base::DictionaryValue>()); |
| 1444 host_content_settings_map->SetWebsiteSettingDefaultScope( | 1448 host_content_settings_map->SetWebsiteSettingDefaultScope( |
| 1445 kOrigin3, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), | 1449 kOrigin3, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), |
| 1446 base::MakeUnique<base::DictionaryValue>()); | 1450 base::MakeUnique<base::DictionaryValue>()); |
| 1447 host_content_settings_map->SetWebsiteSettingDefaultScope( | 1451 host_content_settings_map->SetWebsiteSettingDefaultScope( |
| 1448 kOrigin4, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), | 1452 kOrigin4, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), |
| 1449 base::MakeUnique<base::DictionaryValue>()); | 1453 base::MakeUnique<base::DictionaryValue>()); |
| 1450 | 1454 |
| 1451 // Clear all except for origin1 and origin3. | 1455 // Clear all except for origin1 and origin3. |
| 1452 std::unique_ptr<BrowsingDataFilterBuilder> filter( | 1456 std::unique_ptr<BrowsingDataFilterBuilder> filter( |
| 1453 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST)); | 1457 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST)); |
| 1454 filter->AddRegisterableDomain(kTestRegisterableDomain1); | 1458 filter->AddRegisterableDomain(kTestRegisterableDomain1); |
| 1455 filter->AddRegisterableDomain(kTestRegisterableDomain3); | 1459 filter->AddRegisterableDomain(kTestRegisterableDomain3); |
| 1456 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(), | 1460 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(), |
| 1457 BrowsingDataRemover::REMOVE_SITE_USAGE_DATA, | 1461 { &kBrowsingDataTypeSiteUsageData }, |
| 1458 std::move(filter)); | 1462 std::move(filter)); |
| 1459 | 1463 |
| 1460 EXPECT_EQ(BrowsingDataRemover::REMOVE_SITE_USAGE_DATA, GetRemovalMask()); | 1464 EXPECT_EQ(Mask({ &kBrowsingDataTypeSiteUsageData }), GetRemovalMask()); |
| 1461 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); | 1465 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); |
| 1462 | 1466 |
| 1463 // Verify we only have true, and they're origin1, origin3, and origin4. | 1467 // Verify we only have true, and they're origin1, origin3, and origin4. |
| 1464 ContentSettingsForOneType host_settings; | 1468 ContentSettingsForOneType host_settings; |
| 1465 host_content_settings_map->GetSettingsForOneType( | 1469 host_content_settings_map->GetSettingsForOneType( |
| 1466 CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), &host_settings); | 1470 CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), &host_settings); |
| 1467 EXPECT_EQ(3u, host_settings.size()); | 1471 EXPECT_EQ(3u, host_settings.size()); |
| 1468 EXPECT_EQ(ContentSettingsPattern::FromURLNoWildcard(kOrigin1), | 1472 EXPECT_EQ(ContentSettingsPattern::FromURLNoWildcard(kOrigin1), |
| 1469 host_settings[0].primary_pattern) | 1473 host_settings[0].primary_pattern) |
| 1470 << host_settings[0].primary_pattern.ToString(); | 1474 << host_settings[0].primary_pattern.ToString(); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 1486 CONTENT_SETTING_ALLOW); | 1490 CONTENT_SETTING_ALLOW); |
| 1487 durable_permission.UpdateContentSetting(kOrigin2, GURL(), | 1491 durable_permission.UpdateContentSetting(kOrigin2, GURL(), |
| 1488 CONTENT_SETTING_ALLOW); | 1492 CONTENT_SETTING_ALLOW); |
| 1489 | 1493 |
| 1490 // Clear all except for origin1 and origin3. | 1494 // Clear all except for origin1 and origin3. |
| 1491 std::unique_ptr<BrowsingDataFilterBuilder> filter( | 1495 std::unique_ptr<BrowsingDataFilterBuilder> filter( |
| 1492 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST)); | 1496 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST)); |
| 1493 filter->AddRegisterableDomain(kTestRegisterableDomain1); | 1497 filter->AddRegisterableDomain(kTestRegisterableDomain1); |
| 1494 filter->AddRegisterableDomain(kTestRegisterableDomain3); | 1498 filter->AddRegisterableDomain(kTestRegisterableDomain3); |
| 1495 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(), | 1499 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(), |
| 1496 BrowsingDataRemover::REMOVE_DURABLE_PERMISSION, | 1500 { &kBrowsingDataTypeDurablePermission }, |
| 1497 std::move(filter)); | 1501 std::move(filter)); |
| 1498 | 1502 |
| 1499 EXPECT_EQ(BrowsingDataRemover::REMOVE_DURABLE_PERMISSION, GetRemovalMask()); | 1503 EXPECT_EQ(Mask({ &kBrowsingDataTypeDurablePermission }), GetRemovalMask()); |
| 1500 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); | 1504 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); |
| 1501 | 1505 |
| 1502 // Verify we only have allow for the first origin. | 1506 // Verify we only have allow for the first origin. |
| 1503 ContentSettingsForOneType host_settings; | 1507 ContentSettingsForOneType host_settings; |
| 1504 host_content_settings_map->GetSettingsForOneType( | 1508 host_content_settings_map->GetSettingsForOneType( |
| 1505 CONTENT_SETTINGS_TYPE_DURABLE_STORAGE, std::string(), &host_settings); | 1509 CONTENT_SETTINGS_TYPE_DURABLE_STORAGE, std::string(), &host_settings); |
| 1506 | 1510 |
| 1507 ASSERT_EQ(2u, host_settings.size()); | 1511 ASSERT_EQ(2u, host_settings.size()); |
| 1508 // Only the first should should have a setting. | 1512 // Only the first should should have a setting. |
| 1509 EXPECT_EQ(ContentSettingsPattern::FromURLNoWildcard(kOrigin1), | 1513 EXPECT_EQ(ContentSettingsPattern::FromURLNoWildcard(kOrigin1), |
| (...skipping 21 matching lines...) Expand all Loading... |
| 1531 net::HttpAuthCache* http_auth_cache = http_session->http_auth_cache(); | 1535 net::HttpAuthCache* http_auth_cache = http_session->http_auth_cache(); |
| 1532 http_auth_cache->Add(kOrigin1, kTestRealm, net::HttpAuth::AUTH_SCHEME_BASIC, | 1536 http_auth_cache->Add(kOrigin1, kTestRealm, net::HttpAuth::AUTH_SCHEME_BASIC, |
| 1533 "test challenge", | 1537 "test challenge", |
| 1534 net::AuthCredentials(base::ASCIIToUTF16("foo"), | 1538 net::AuthCredentials(base::ASCIIToUTF16("foo"), |
| 1535 base::ASCIIToUTF16("bar")), | 1539 base::ASCIIToUTF16("bar")), |
| 1536 "/"); | 1540 "/"); |
| 1537 CHECK(http_auth_cache->Lookup(kOrigin1, kTestRealm, | 1541 CHECK(http_auth_cache->Lookup(kOrigin1, kTestRealm, |
| 1538 net::HttpAuth::AUTH_SCHEME_BASIC)); | 1542 net::HttpAuth::AUTH_SCHEME_BASIC)); |
| 1539 | 1543 |
| 1540 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), | 1544 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), |
| 1541 BrowsingDataRemover::REMOVE_PASSWORDS, false); | 1545 { &kBrowsingDataTypePasswords }, false); |
| 1542 | 1546 |
| 1543 EXPECT_EQ(nullptr, http_auth_cache->Lookup(kOrigin1, kTestRealm, | 1547 EXPECT_EQ(nullptr, http_auth_cache->Lookup(kOrigin1, kTestRealm, |
| 1544 net::HttpAuth::AUTH_SCHEME_BASIC)); | 1548 net::HttpAuth::AUTH_SCHEME_BASIC)); |
| 1545 } | 1549 } |
| 1546 | 1550 |
| 1547 TEST_F(ChromeBrowsingDataRemoverDelegateTest, ClearPermissionPromptCounts) { | 1551 TEST_F(ChromeBrowsingDataRemoverDelegateTest, ClearPermissionPromptCounts) { |
| 1548 RemovePermissionPromptCountsTest tester(GetProfile()); | 1552 RemovePermissionPromptCountsTest tester(GetProfile()); |
| 1549 | 1553 |
| 1550 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder_1( | 1554 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder_1( |
| 1551 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); | 1555 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); |
| 1552 filter_builder_1->AddRegisterableDomain(kTestRegisterableDomain1); | 1556 filter_builder_1->AddRegisterableDomain(kTestRegisterableDomain1); |
| 1553 | 1557 |
| 1554 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder_2( | 1558 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder_2( |
| 1555 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST)); | 1559 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST)); |
| 1556 filter_builder_2->AddRegisterableDomain(kTestRegisterableDomain1); | 1560 filter_builder_2->AddRegisterableDomain(kTestRegisterableDomain1); |
| 1557 | 1561 |
| 1558 { | 1562 { |
| 1559 // Test REMOVE_HISTORY. | 1563 // Test kBrowsingDataTypeHistory. |
| 1560 EXPECT_EQ(1, tester.RecordIgnore(kOrigin1, | 1564 EXPECT_EQ(1, tester.RecordIgnore(kOrigin1, |
| 1561 content::PermissionType::GEOLOCATION)); | 1565 content::PermissionType::GEOLOCATION)); |
| 1562 EXPECT_EQ(2, tester.RecordIgnore(kOrigin1, | 1566 EXPECT_EQ(2, tester.RecordIgnore(kOrigin1, |
| 1563 content::PermissionType::GEOLOCATION)); | 1567 content::PermissionType::GEOLOCATION)); |
| 1564 EXPECT_EQ(1, tester.RecordIgnore(kOrigin1, | 1568 EXPECT_EQ(1, tester.RecordIgnore(kOrigin1, |
| 1565 content::PermissionType::NOTIFICATIONS)); | 1569 content::PermissionType::NOTIFICATIONS)); |
| 1566 tester.ShouldChangeDismissalToBlock(kOrigin1, | 1570 tester.ShouldChangeDismissalToBlock(kOrigin1, |
| 1567 content::PermissionType::MIDI_SYSEX); | 1571 content::PermissionType::MIDI_SYSEX); |
| 1568 EXPECT_EQ(1, tester.RecordIgnore(kOrigin2, | 1572 EXPECT_EQ(1, tester.RecordIgnore(kOrigin2, |
| 1569 content::PermissionType::DURABLE_STORAGE)); | 1573 content::PermissionType::DURABLE_STORAGE)); |
| 1570 tester.ShouldChangeDismissalToBlock(kOrigin2, | 1574 tester.ShouldChangeDismissalToBlock(kOrigin2, |
| 1571 content::PermissionType::NOTIFICATIONS); | 1575 content::PermissionType::NOTIFICATIONS); |
| 1572 | 1576 |
| 1573 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(), | 1577 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(), |
| 1574 BrowsingDataRemover::REMOVE_SITE_USAGE_DATA, | 1578 { &kBrowsingDataTypeSiteUsageData }, |
| 1575 std::move(filter_builder_1)); | 1579 std::move(filter_builder_1)); |
| 1576 | 1580 |
| 1577 // kOrigin1 should be gone, but kOrigin2 remains. | 1581 // kOrigin1 should be gone, but kOrigin2 remains. |
| 1578 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, | 1582 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, |
| 1579 content::PermissionType::GEOLOCATION)); | 1583 content::PermissionType::GEOLOCATION)); |
| 1580 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, | 1584 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, |
| 1581 content::PermissionType::NOTIFICATIONS)); | 1585 content::PermissionType::NOTIFICATIONS)); |
| 1582 EXPECT_EQ(0, tester.GetDismissCount(kOrigin1, | 1586 EXPECT_EQ(0, tester.GetDismissCount(kOrigin1, |
| 1583 content::PermissionType::MIDI_SYSEX)); | 1587 content::PermissionType::MIDI_SYSEX)); |
| 1584 EXPECT_EQ(1, tester.GetIgnoreCount( | 1588 EXPECT_EQ(1, tester.GetIgnoreCount( |
| 1585 kOrigin2, content::PermissionType::DURABLE_STORAGE)); | 1589 kOrigin2, content::PermissionType::DURABLE_STORAGE)); |
| 1586 EXPECT_EQ(1, tester.GetDismissCount( | 1590 EXPECT_EQ(1, tester.GetDismissCount( |
| 1587 kOrigin2, content::PermissionType::NOTIFICATIONS)); | 1591 kOrigin2, content::PermissionType::NOTIFICATIONS)); |
| 1588 | 1592 |
| 1589 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), | 1593 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), |
| 1590 BrowsingDataRemover::REMOVE_HISTORY, false); | 1594 { &kBrowsingDataTypeHistory }, false); |
| 1591 | 1595 |
| 1592 // Everything should be gone. | 1596 // Everything should be gone. |
| 1593 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, | 1597 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, |
| 1594 content::PermissionType::GEOLOCATION)); | 1598 content::PermissionType::GEOLOCATION)); |
| 1595 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, | 1599 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, |
| 1596 content::PermissionType::NOTIFICATIONS)); | 1600 content::PermissionType::NOTIFICATIONS)); |
| 1597 EXPECT_EQ(0, tester.GetDismissCount(kOrigin1, | 1601 EXPECT_EQ(0, tester.GetDismissCount(kOrigin1, |
| 1598 content::PermissionType::MIDI_SYSEX)); | 1602 content::PermissionType::MIDI_SYSEX)); |
| 1599 EXPECT_EQ(0, tester.GetIgnoreCount( | 1603 EXPECT_EQ(0, tester.GetIgnoreCount( |
| 1600 kOrigin2, content::PermissionType::DURABLE_STORAGE)); | 1604 kOrigin2, content::PermissionType::DURABLE_STORAGE)); |
| 1601 EXPECT_EQ(0, tester.GetDismissCount( | 1605 EXPECT_EQ(0, tester.GetDismissCount( |
| 1602 kOrigin2, content::PermissionType::NOTIFICATIONS)); | 1606 kOrigin2, content::PermissionType::NOTIFICATIONS)); |
| 1603 } | 1607 } |
| 1604 { | 1608 { |
| 1605 // Test REMOVE_SITE_DATA. | 1609 // Test kBrowsingDataTypeSiteUsageData. |
| 1606 EXPECT_EQ(1, tester.RecordIgnore(kOrigin1, | 1610 EXPECT_EQ(1, tester.RecordIgnore(kOrigin1, |
| 1607 content::PermissionType::GEOLOCATION)); | 1611 content::PermissionType::GEOLOCATION)); |
| 1608 EXPECT_EQ(2, tester.RecordIgnore(kOrigin1, | 1612 EXPECT_EQ(2, tester.RecordIgnore(kOrigin1, |
| 1609 content::PermissionType::GEOLOCATION)); | 1613 content::PermissionType::GEOLOCATION)); |
| 1610 EXPECT_EQ(1, tester.RecordIgnore(kOrigin1, | 1614 EXPECT_EQ(1, tester.RecordIgnore(kOrigin1, |
| 1611 content::PermissionType::NOTIFICATIONS)); | 1615 content::PermissionType::NOTIFICATIONS)); |
| 1612 tester.ShouldChangeDismissalToBlock(kOrigin1, | 1616 tester.ShouldChangeDismissalToBlock(kOrigin1, |
| 1613 content::PermissionType::MIDI_SYSEX); | 1617 content::PermissionType::MIDI_SYSEX); |
| 1614 EXPECT_EQ(1, tester.RecordIgnore(kOrigin2, | 1618 EXPECT_EQ(1, tester.RecordIgnore(kOrigin2, |
| 1615 content::PermissionType::DURABLE_STORAGE)); | 1619 content::PermissionType::DURABLE_STORAGE)); |
| 1616 tester.ShouldChangeDismissalToBlock(kOrigin2, | 1620 tester.ShouldChangeDismissalToBlock(kOrigin2, |
| 1617 content::PermissionType::NOTIFICATIONS); | 1621 content::PermissionType::NOTIFICATIONS); |
| 1618 | 1622 |
| 1619 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(), | 1623 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(), |
| 1620 BrowsingDataRemover::REMOVE_SITE_USAGE_DATA, | 1624 { &kBrowsingDataTypeSiteUsageData }, |
| 1621 std::move(filter_builder_2)); | 1625 std::move(filter_builder_2)); |
| 1622 | 1626 |
| 1623 // kOrigin2 should be gone, but kOrigin1 remains. | 1627 // kOrigin2 should be gone, but kOrigin1 remains. |
| 1624 EXPECT_EQ(2, tester.GetIgnoreCount(kOrigin1, | 1628 EXPECT_EQ(2, tester.GetIgnoreCount(kOrigin1, |
| 1625 content::PermissionType::GEOLOCATION)); | 1629 content::PermissionType::GEOLOCATION)); |
| 1626 EXPECT_EQ(1, tester.GetIgnoreCount(kOrigin1, | 1630 EXPECT_EQ(1, tester.GetIgnoreCount(kOrigin1, |
| 1627 content::PermissionType::NOTIFICATIONS)); | 1631 content::PermissionType::NOTIFICATIONS)); |
| 1628 EXPECT_EQ(1, tester.GetDismissCount(kOrigin1, | 1632 EXPECT_EQ(1, tester.GetDismissCount(kOrigin1, |
| 1629 content::PermissionType::MIDI_SYSEX)); | 1633 content::PermissionType::MIDI_SYSEX)); |
| 1630 EXPECT_EQ(0, tester.GetIgnoreCount( | 1634 EXPECT_EQ(0, tester.GetIgnoreCount( |
| 1631 kOrigin2, content::PermissionType::DURABLE_STORAGE)); | 1635 kOrigin2, content::PermissionType::DURABLE_STORAGE)); |
| 1632 EXPECT_EQ(0, tester.GetDismissCount( | 1636 EXPECT_EQ(0, tester.GetDismissCount( |
| 1633 kOrigin2, content::PermissionType::NOTIFICATIONS)); | 1637 kOrigin2, content::PermissionType::NOTIFICATIONS)); |
| 1634 | 1638 |
| 1635 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), | 1639 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), |
| 1636 BrowsingDataRemover::REMOVE_SITE_USAGE_DATA, | 1640 { &kBrowsingDataTypeSiteUsageData }, |
| 1637 false); | 1641 false); |
| 1638 | 1642 |
| 1639 // Everything should be gone. | 1643 // Everything should be gone. |
| 1640 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, | 1644 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, |
| 1641 content::PermissionType::GEOLOCATION)); | 1645 content::PermissionType::GEOLOCATION)); |
| 1642 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, | 1646 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, |
| 1643 content::PermissionType::NOTIFICATIONS)); | 1647 content::PermissionType::NOTIFICATIONS)); |
| 1644 EXPECT_EQ(0, tester.GetDismissCount(kOrigin1, | 1648 EXPECT_EQ(0, tester.GetDismissCount(kOrigin1, |
| 1645 content::PermissionType::MIDI_SYSEX)); | 1649 content::PermissionType::MIDI_SYSEX)); |
| 1646 EXPECT_EQ(0, tester.GetIgnoreCount( | 1650 EXPECT_EQ(0, tester.GetIgnoreCount( |
| (...skipping 13 matching lines...) Expand all Loading... |
| 1660 | 1664 |
| 1661 std::vector<std::string> expected = { | 1665 std::vector<std::string> expected = { |
| 1662 kOrigin1.host(), kOrigin2.host(), kOrigin3.host() }; | 1666 kOrigin1.host(), kOrigin2.host(), kOrigin3.host() }; |
| 1663 EXPECT_EQ(expected, tester.GetDomains()); | 1667 EXPECT_EQ(expected, tester.GetDomains()); |
| 1664 | 1668 |
| 1665 // Delete data with a filter for the registrable domain of |kOrigin3|. | 1669 // Delete data with a filter for the registrable domain of |kOrigin3|. |
| 1666 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder( | 1670 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder( |
| 1667 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); | 1671 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); |
| 1668 filter_builder->AddRegisterableDomain(kTestRegisterableDomain3); | 1672 filter_builder->AddRegisterableDomain(kTestRegisterableDomain3); |
| 1669 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), | 1673 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), |
| 1670 BrowsingDataRemover::REMOVE_PLUGIN_DATA, | 1674 { &kBrowsingDataTypePluginData }, |
| 1671 std::move(filter_builder)); | 1675 std::move(filter_builder)); |
| 1672 | 1676 |
| 1673 // Plugin data for |kOrigin3.host()| should have been removed. | 1677 // Plugin data for |kOrigin3.host()| should have been removed. |
| 1674 expected.pop_back(); | 1678 expected.pop_back(); |
| 1675 EXPECT_EQ(expected, tester.GetDomains()); | 1679 EXPECT_EQ(expected, tester.GetDomains()); |
| 1676 | 1680 |
| 1677 // TODO(msramek): Mock PluginDataRemover and test the complete deletion | 1681 // TODO(msramek): Mock PluginDataRemover and test the complete deletion |
| 1678 // of plugin data as well. | 1682 // of plugin data as well. |
| 1679 } | 1683 } |
| 1680 #endif | 1684 #endif |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1724 bookmark_model, 2, base::Time::UnixEpoch(), | 1728 bookmark_model, 2, base::Time::UnixEpoch(), |
| 1725 /*consider_visits_from_desktop=*/false), | 1729 /*consider_visits_from_desktop=*/false), |
| 1726 Not(IsEmpty())); | 1730 Not(IsEmpty())); |
| 1727 | 1731 |
| 1728 // Inject the bookmark model into the remover. | 1732 // Inject the bookmark model into the remover. |
| 1729 BrowsingDataRemover* remover = | 1733 BrowsingDataRemover* remover = |
| 1730 BrowsingDataRemoverFactory::GetForBrowserContext(&profile); | 1734 BrowsingDataRemoverFactory::GetForBrowserContext(&profile); |
| 1731 | 1735 |
| 1732 BrowsingDataRemoverCompletionObserver completion_observer(remover); | 1736 BrowsingDataRemoverCompletionObserver completion_observer(remover); |
| 1733 remover->RemoveAndReply(delete_begin, base::Time::Max(), | 1737 remover->RemoveAndReply(delete_begin, base::Time::Max(), |
| 1734 BrowsingDataRemover::REMOVE_HISTORY, | 1738 { &kBrowsingDataTypeHistory }, |
| 1735 BrowsingDataHelper::ALL, &completion_observer); | 1739 BrowsingDataHelper::ALL, &completion_observer); |
| 1736 completion_observer.BlockUntilCompletion(); | 1740 completion_observer.BlockUntilCompletion(); |
| 1737 | 1741 |
| 1738 // There should be only 1 recently visited bookmarks. | 1742 // There should be only 1 recently visited bookmarks. |
| 1739 std::vector<const bookmarks::BookmarkNode*> remaining_nodes = | 1743 std::vector<const bookmarks::BookmarkNode*> remaining_nodes = |
| 1740 ntp_snippets::GetRecentlyVisitedBookmarks( | 1744 ntp_snippets::GetRecentlyVisitedBookmarks( |
| 1741 bookmark_model, 3, base::Time::UnixEpoch(), | 1745 bookmark_model, 3, base::Time::UnixEpoch(), |
| 1742 /*consider_visits_from_desktop=*/true); | 1746 /*consider_visits_from_desktop=*/true); |
| 1743 EXPECT_THAT(remaining_nodes, SizeIs(1)); | 1747 EXPECT_THAT(remaining_nodes, SizeIs(1)); |
| 1744 EXPECT_THAT(remaining_nodes[0]->url().spec(), Eq("http://foo-2.org/")); | 1748 EXPECT_THAT(remaining_nodes[0]->url().spec(), Eq("http://foo-2.org/")); |
| 1745 } | 1749 } |
| 1746 | 1750 |
| 1747 // Test that the remover clears language model data (normally added by the | 1751 // Test that the remover clears language model data (normally added by the |
| 1748 // ChromeTranslateClient). | 1752 // ChromeTranslateClient). |
| 1749 TEST_F(ChromeBrowsingDataRemoverDelegateTest, | 1753 TEST_F(ChromeBrowsingDataRemoverDelegateTest, |
| 1750 LanguageModelClearedOnClearingCompleteHistory) { | 1754 LanguageModelClearedOnClearingCompleteHistory) { |
| 1751 translate::LanguageModel* language_model = | 1755 translate::LanguageModel* language_model = |
| 1752 LanguageModelFactory::GetInstance()->GetForBrowserContext(GetProfile()); | 1756 LanguageModelFactory::GetInstance()->GetForBrowserContext(GetProfile()); |
| 1753 | 1757 |
| 1754 // Simulate browsing. | 1758 // Simulate browsing. |
| 1755 for (int i = 0; i < 100; i++) { | 1759 for (int i = 0; i < 100; i++) { |
| 1756 language_model->OnPageVisited("en"); | 1760 language_model->OnPageVisited("en"); |
| 1757 language_model->OnPageVisited("en"); | 1761 language_model->OnPageVisited("en"); |
| 1758 language_model->OnPageVisited("en"); | 1762 language_model->OnPageVisited("en"); |
| 1759 language_model->OnPageVisited("es"); | 1763 language_model->OnPageVisited("es"); |
| 1760 } | 1764 } |
| 1761 | 1765 |
| 1762 // Clearing a part of the history has no effect. | 1766 // Clearing a part of the history has no effect. |
| 1763 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), | 1767 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), |
| 1764 BrowsingDataRemover::REMOVE_HISTORY, false); | 1768 { &kBrowsingDataTypeHistory }, false); |
| 1765 | 1769 |
| 1766 EXPECT_THAT(language_model->GetTopLanguages(), SizeIs(2)); | 1770 EXPECT_THAT(language_model->GetTopLanguages(), SizeIs(2)); |
| 1767 EXPECT_THAT(language_model->GetLanguageFrequency("en"), FloatEq(0.75)); | 1771 EXPECT_THAT(language_model->GetLanguageFrequency("en"), FloatEq(0.75)); |
| 1768 EXPECT_THAT(language_model->GetLanguageFrequency("es"), FloatEq(0.25)); | 1772 EXPECT_THAT(language_model->GetLanguageFrequency("es"), FloatEq(0.25)); |
| 1769 | 1773 |
| 1770 // Clearing the full history does the trick. | 1774 // Clearing the full history does the trick. |
| 1771 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), | 1775 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), |
| 1772 BrowsingDataRemover::REMOVE_HISTORY, false); | 1776 { &kBrowsingDataTypeHistory }, false); |
| 1773 | 1777 |
| 1774 EXPECT_THAT(language_model->GetTopLanguages(), SizeIs(0)); | 1778 EXPECT_THAT(language_model->GetTopLanguages(), SizeIs(0)); |
| 1775 EXPECT_THAT(language_model->GetLanguageFrequency("en"), FloatEq(0.0)); | 1779 EXPECT_THAT(language_model->GetLanguageFrequency("en"), FloatEq(0.0)); |
| 1776 EXPECT_THAT(language_model->GetLanguageFrequency("es"), FloatEq(0.0)); | 1780 EXPECT_THAT(language_model->GetLanguageFrequency("es"), FloatEq(0.0)); |
| 1777 } | 1781 } |
| OLD | NEW |