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

Side by Side Diff: chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_unittest.cc

Issue 2733393003: Split browsing data masks between content and embedder (Closed)
Patch Set: Rebase (merged automatically) Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 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"
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 #if defined(OS_CHROMEOS) 75 #if defined(OS_CHROMEOS)
76 #include "chrome/browser/chromeos/login/users/mock_user_manager.h" 76 #include "chrome/browser/chromeos/login/users/mock_user_manager.h"
77 #include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" 77 #include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h"
78 #include "chrome/browser/chromeos/settings/cros_settings.h" 78 #include "chrome/browser/chromeos/settings/cros_settings.h"
79 #include "chrome/browser/chromeos/settings/device_settings_service.h" 79 #include "chrome/browser/chromeos/settings/device_settings_service.h"
80 #include "chromeos/dbus/dbus_thread_manager.h" 80 #include "chromeos/dbus/dbus_thread_manager.h"
81 #include "chromeos/dbus/mock_cryptohome_client.h" 81 #include "chromeos/dbus/mock_cryptohome_client.h"
82 #include "components/signin/core/account_id/account_id.h" 82 #include "components/signin/core/account_id/account_id.h"
83 #endif 83 #endif
84 84
85 #if BUILDFLAG(ENABLE_EXTENSIONS)
86 #include "chrome/browser/extensions/mock_extension_special_storage_policy.h"
87 #endif
88
85 #if BUILDFLAG(ENABLE_PLUGINS) 89 #if BUILDFLAG(ENABLE_PLUGINS)
86 #include "chrome/browser/browsing_data/mock_browsing_data_flash_lso_helper.h" 90 #include "chrome/browser/browsing_data/mock_browsing_data_flash_lso_helper.h"
87 #endif 91 #endif
88 92
89 using content::BrowsingDataFilterBuilder; 93 using content::BrowsingDataFilterBuilder;
90 using domain_reliability::CLEAR_BEACONS; 94 using domain_reliability::CLEAR_BEACONS;
91 using domain_reliability::CLEAR_CONTEXTS; 95 using domain_reliability::CLEAR_CONTEXTS;
92 using domain_reliability::DomainReliabilityClearMode; 96 using domain_reliability::DomainReliabilityClearMode;
93 using domain_reliability::DomainReliabilityMonitor; 97 using domain_reliability::DomainReliabilityMonitor;
94 using domain_reliability::DomainReliabilityService; 98 using domain_reliability::DomainReliabilityService;
(...skipping 14 matching lines...) Expand all
109 using testing::WithArgs; 113 using testing::WithArgs;
110 114
111 namespace { 115 namespace {
112 116
113 const char kTestOrigin1[] = "http://host1.com:1/"; 117 const char kTestOrigin1[] = "http://host1.com:1/";
114 const char kTestRegisterableDomain1[] = "host1.com"; 118 const char kTestRegisterableDomain1[] = "host1.com";
115 const char kTestOrigin2[] = "http://host2.com:1/"; 119 const char kTestOrigin2[] = "http://host2.com:1/";
116 const char kTestOrigin3[] = "http://host3.com:1/"; 120 const char kTestOrigin3[] = "http://host3.com:1/";
117 const char kTestRegisterableDomain3[] = "host3.com"; 121 const char kTestRegisterableDomain3[] = "host3.com";
118 const char kTestOrigin4[] = "https://host3.com:1/"; 122 const char kTestOrigin4[] = "https://host3.com:1/";
123 const char kTestOriginExt[] = "chrome-extension://abcdefghijklmnopqrstuvwxyz/";
124 const char kTestOriginDevTools[] = "chrome-devtools://abcdefghijklmnopqrstuvw/";
119 125
120 // For HTTP auth. 126 // For HTTP auth.
121 const char kTestRealm[] = "TestRealm"; 127 const char kTestRealm[] = "TestRealm";
122 128
123 // For Autofill. 129 // For Autofill.
124 const char kWebOrigin[] = "https://www.example.com/"; 130 const char kWebOrigin[] = "https://www.example.com/";
125 131
126 const GURL kOrigin1(kTestOrigin1); 132 const GURL kOrigin1(kTestOrigin1);
127 const GURL kOrigin2(kTestOrigin2); 133 const GURL kOrigin2(kTestOrigin2);
128 const GURL kOrigin3(kTestOrigin3); 134 const GURL kOrigin3(kTestOrigin3);
129 const GURL kOrigin4(kTestOrigin4); 135 const GURL kOrigin4(kTestOrigin4);
130 136
137 const GURL kOriginExt(kTestOriginExt);
138 const GURL kOriginDevTools(kTestOriginDevTools);
139
140 // Shorthands for origin types.
141 #if BUILDFLAG(ENABLE_EXTENSIONS)
142 const int kExtension = ChromeBrowsingDataRemoverDelegate::ORIGIN_TYPE_EXTENSION;
143 #endif
144 const int kProtected = BrowsingDataRemover::ORIGIN_TYPE_PROTECTED_WEB;
145 const int kUnprotected = BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB;
146
131 // Testers -------------------------------------------------------------------- 147 // Testers --------------------------------------------------------------------
132 148
133 #if defined(OS_ANDROID) 149 #if defined(OS_ANDROID)
134 class TestWebappRegistry : public WebappRegistry { 150 class TestWebappRegistry : public WebappRegistry {
135 public: 151 public:
136 TestWebappRegistry() : WebappRegistry() { } 152 TestWebappRegistry() : WebappRegistry() { }
137 153
138 void UnregisterWebappsForUrls( 154 void UnregisterWebappsForUrls(
139 const base::Callback<bool(const GURL&)>& url_filter) override { 155 const base::Callback<bool(const GURL&)>& url_filter) override {
140 // Mocks out a JNI call. 156 // Mocks out a JNI call.
(...skipping 710 matching lines...) Expand 10 before | Expand all | Expand 10 after
851 867
852 TestingBrowserProcess::GetGlobal()->SetLocalState(nullptr); 868 TestingBrowserProcess::GetGlobal()->SetLocalState(nullptr);
853 } 869 }
854 870
855 ~ChromeBrowsingDataRemoverDelegateTest() override {} 871 ~ChromeBrowsingDataRemoverDelegateTest() override {}
856 872
857 void BlockUntilBrowsingDataRemoved(const base::Time& delete_begin, 873 void BlockUntilBrowsingDataRemoved(const base::Time& delete_begin,
858 const base::Time& delete_end, 874 const base::Time& delete_end,
859 int remove_mask, 875 int remove_mask,
860 bool include_protected_origins) { 876 bool include_protected_origins) {
861 int origin_type_mask = BrowsingDataHelper::UNPROTECTED_WEB; 877 int origin_type_mask = BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB;
862 if (include_protected_origins) 878 if (include_protected_origins) {
863 origin_type_mask |= BrowsingDataHelper::PROTECTED_WEB; 879 origin_type_mask |= BrowsingDataRemover::ORIGIN_TYPE_PROTECTED_WEB;
880 }
864 881
865 BrowsingDataRemoverCompletionObserver completion_observer(remover_); 882 BrowsingDataRemoverCompletionObserver completion_observer(remover_);
866 remover_->RemoveAndReply( 883 remover_->RemoveAndReply(
867 delete_begin, delete_end, remove_mask, origin_type_mask, 884 delete_begin, delete_end, remove_mask, origin_type_mask,
868 &completion_observer); 885 &completion_observer);
869 completion_observer.BlockUntilCompletion(); 886 completion_observer.BlockUntilCompletion();
870 } 887 }
871 888
872 void BlockUntilOriginDataRemoved( 889 void BlockUntilOriginDataRemoved(
873 const base::Time& delete_begin, 890 const base::Time& delete_begin,
874 const base::Time& delete_end, 891 const base::Time& delete_end,
875 int remove_mask, 892 int remove_mask,
876 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder) { 893 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder) {
877 BrowsingDataRemoverCompletionObserver completion_observer(remover_); 894 BrowsingDataRemoverCompletionObserver completion_observer(remover_);
878 static_cast<BrowsingDataRemoverImpl*>(remover_) 895 static_cast<BrowsingDataRemoverImpl*>(remover_)->RemoveWithFilterAndReply(
879 ->RemoveWithFilterAndReply(delete_begin, delete_end, remove_mask, 896 delete_begin, delete_end, remove_mask,
880 BrowsingDataHelper::UNPROTECTED_WEB, 897 BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
881 std::move(filter_builder), 898 std::move(filter_builder), &completion_observer);
882 &completion_observer);
883 completion_observer.BlockUntilCompletion(); 899 completion_observer.BlockUntilCompletion();
884 } 900 }
885 901
886 const base::Time& GetBeginTime() { 902 const base::Time& GetBeginTime() {
887 return remover_->GetLastUsedBeginTime(); 903 return remover_->GetLastUsedBeginTime();
888 } 904 }
889 905
890 int GetRemovalMask() { 906 int GetRemovalMask() {
891 return remover_->GetLastUsedRemovalMask(); 907 return remover_->GetLastUsedRemovalMask();
892 } 908 }
893 909
894 int GetOriginTypeMask() { 910 int GetOriginTypeMask() {
895 return remover_->GetLastUsedOriginTypeMask(); 911 return remover_->GetLastUsedOriginTypeMask();
896 } 912 }
897 913
898 TestingProfile* GetProfile() { 914 TestingProfile* GetProfile() {
899 return profile_.get(); 915 return profile_.get();
900 } 916 }
901 917
902 const ClearDomainReliabilityTester& clear_domain_reliability_tester() { 918 const ClearDomainReliabilityTester& clear_domain_reliability_tester() {
903 return clear_domain_reliability_tester_; 919 return clear_domain_reliability_tester_;
904 } 920 }
905 921
922 bool Match(const GURL& origin,
923 int mask,
924 storage::SpecialStoragePolicy* policy) {
925 return remover_->DoesOriginMatchMask(mask, origin, policy);
926 }
927
906 private: 928 private:
907 // Cached pointer to BrowsingDataRemoverImpl for access to testing methods. 929 // Cached pointer to BrowsingDataRemoverImpl for access to testing methods.
908 BrowsingDataRemover* remover_; 930 BrowsingDataRemover* remover_;
909 931
910 content::TestBrowserThreadBundle thread_bundle_; 932 content::TestBrowserThreadBundle thread_bundle_;
911 std::unique_ptr<TestingProfile> profile_; 933 std::unique_ptr<TestingProfile> profile_;
912 934
913 // Needed to mock out DomainReliabilityService, even for unrelated tests. 935 // Needed to mock out DomainReliabilityService, even for unrelated tests.
914 ClearDomainReliabilityTester clear_domain_reliability_tester_; 936 ClearDomainReliabilityTester clear_domain_reliability_tester_;
915 937
916 DISALLOW_COPY_AND_ASSIGN(ChromeBrowsingDataRemoverDelegateTest); 938 DISALLOW_COPY_AND_ASSIGN(ChromeBrowsingDataRemoverDelegateTest);
917 }; 939 };
918 940
919 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveSafeBrowsingCookieForever) { 941 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveSafeBrowsingCookieForever) {
920 RemoveSafeBrowsingCookieTester tester; 942 RemoveSafeBrowsingCookieTester tester;
921 943
922 tester.AddCookie(); 944 tester.AddCookie();
923 ASSERT_TRUE(tester.ContainsCookie()); 945 ASSERT_TRUE(tester.ContainsCookie());
924 946
925 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 947 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
926 BrowsingDataRemover::REMOVE_COOKIES, false); 948 BrowsingDataRemover::DATA_TYPE_COOKIES, false);
927 949
928 EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask()); 950 EXPECT_EQ(BrowsingDataRemover::DATA_TYPE_COOKIES, GetRemovalMask());
929 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); 951 EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
952 GetOriginTypeMask());
930 EXPECT_FALSE(tester.ContainsCookie()); 953 EXPECT_FALSE(tester.ContainsCookie());
931 } 954 }
932 955
933 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 956 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
934 RemoveSafeBrowsingCookieLastHour) { 957 RemoveSafeBrowsingCookieLastHour) {
935 RemoveSafeBrowsingCookieTester tester; 958 RemoveSafeBrowsingCookieTester tester;
936 959
937 tester.AddCookie(); 960 tester.AddCookie();
938 ASSERT_TRUE(tester.ContainsCookie()); 961 ASSERT_TRUE(tester.ContainsCookie());
939 962
940 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), 963 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(),
941 BrowsingDataRemover::REMOVE_COOKIES, false); 964 BrowsingDataRemover::DATA_TYPE_COOKIES, false);
942 965
943 EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask()); 966 EXPECT_EQ(BrowsingDataRemover::DATA_TYPE_COOKIES, GetRemovalMask());
944 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); 967 EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
968 GetOriginTypeMask());
945 // Removing with time period other than all time should not clear safe 969 // Removing with time period other than all time should not clear safe
946 // browsing cookies. 970 // browsing cookies.
947 EXPECT_TRUE(tester.ContainsCookie()); 971 EXPECT_TRUE(tester.ContainsCookie());
948 } 972 }
949 973
950 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 974 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
951 RemoveSafeBrowsingCookieForeverWithPredicate) { 975 RemoveSafeBrowsingCookieForeverWithPredicate) {
952 RemoveSafeBrowsingCookieTester tester; 976 RemoveSafeBrowsingCookieTester tester;
953 977
954 tester.AddCookie(); 978 tester.AddCookie();
955 ASSERT_TRUE(tester.ContainsCookie()); 979 ASSERT_TRUE(tester.ContainsCookie());
956 std::unique_ptr<BrowsingDataFilterBuilder> filter( 980 std::unique_ptr<BrowsingDataFilterBuilder> filter(
957 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST)); 981 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST));
958 filter->AddRegisterableDomain(kTestRegisterableDomain1); 982 filter->AddRegisterableDomain(kTestRegisterableDomain1);
959 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), 983 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(),
960 BrowsingDataRemover::REMOVE_COOKIES, 984 BrowsingDataRemover::DATA_TYPE_COOKIES,
961 std::move(filter)); 985 std::move(filter));
962 986
963 EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask()); 987 EXPECT_EQ(BrowsingDataRemover::DATA_TYPE_COOKIES, GetRemovalMask());
964 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); 988 EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
989 GetOriginTypeMask());
965 EXPECT_TRUE(tester.ContainsCookie()); 990 EXPECT_TRUE(tester.ContainsCookie());
966 991
967 std::unique_ptr<BrowsingDataFilterBuilder> filter2( 992 std::unique_ptr<BrowsingDataFilterBuilder> filter2(
968 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); 993 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST));
969 filter2->AddRegisterableDomain(kTestRegisterableDomain1); 994 filter2->AddRegisterableDomain(kTestRegisterableDomain1);
970 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), 995 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(),
971 BrowsingDataRemover::REMOVE_COOKIES, 996 BrowsingDataRemover::DATA_TYPE_COOKIES,
972 std::move(filter2)); 997 std::move(filter2));
973 EXPECT_FALSE(tester.ContainsCookie()); 998 EXPECT_FALSE(tester.ContainsCookie());
974 } 999 }
975 1000
976 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveHistoryForever) { 1001 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveHistoryForever) {
977 RemoveHistoryTester tester; 1002 RemoveHistoryTester tester;
978 ASSERT_TRUE(tester.Init(GetProfile())); 1003 ASSERT_TRUE(tester.Init(GetProfile()));
979 1004
980 tester.AddHistory(kOrigin1, base::Time::Now()); 1005 tester.AddHistory(kOrigin1, base::Time::Now());
981 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1)); 1006 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1));
982 1007
983 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1008 BlockUntilBrowsingDataRemoved(
984 BrowsingDataRemover::REMOVE_HISTORY, false); 1009 base::Time(), base::Time::Max(),
1010 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, false);
985 1011
986 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); 1012 EXPECT_EQ(ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY,
987 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); 1013 GetRemovalMask());
1014 EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
1015 GetOriginTypeMask());
988 EXPECT_FALSE(tester.HistoryContainsURL(kOrigin1)); 1016 EXPECT_FALSE(tester.HistoryContainsURL(kOrigin1));
989 } 1017 }
990 1018
991 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveHistoryForLastHour) { 1019 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveHistoryForLastHour) {
992 RemoveHistoryTester tester; 1020 RemoveHistoryTester tester;
993 ASSERT_TRUE(tester.Init(GetProfile())); 1021 ASSERT_TRUE(tester.Init(GetProfile()));
994 1022
995 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);
996 1024
997 tester.AddHistory(kOrigin1, base::Time::Now()); 1025 tester.AddHistory(kOrigin1, base::Time::Now());
998 tester.AddHistory(kOrigin2, two_hours_ago); 1026 tester.AddHistory(kOrigin2, two_hours_ago);
999 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1)); 1027 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1));
1000 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin2)); 1028 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin2));
1001 1029
1002 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), 1030 BlockUntilBrowsingDataRemoved(
1003 BrowsingDataRemover::REMOVE_HISTORY, false); 1031 AnHourAgo(), base::Time::Max(),
1032 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, false);
1004 1033
1005 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); 1034 EXPECT_EQ(ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY,
1006 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); 1035 GetRemovalMask());
1036 EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
1037 GetOriginTypeMask());
1007 EXPECT_FALSE(tester.HistoryContainsURL(kOrigin1)); 1038 EXPECT_FALSE(tester.HistoryContainsURL(kOrigin1));
1008 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin2)); 1039 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin2));
1009 } 1040 }
1010 1041
1011 // This should crash (DCHECK) in Debug, but death tests don't work properly 1042 // This should crash (DCHECK) in Debug, but death tests don't work properly
1012 // here. 1043 // here.
1013 // TODO(msramek): To make this testable, the refusal to delete history should 1044 // TODO(msramek): To make this testable, the refusal to delete history should
1014 // be made a part of interface (e.g. a success value) as opposed to a DCHECK. 1045 // be made a part of interface (e.g. a success value) as opposed to a DCHECK.
1015 #if defined(NDEBUG) && !defined(DCHECK_ALWAYS_ON) 1046 #if defined(NDEBUG) && !defined(DCHECK_ALWAYS_ON)
1016 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveHistoryProhibited) { 1047 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveHistoryProhibited) {
1017 RemoveHistoryTester tester; 1048 RemoveHistoryTester tester;
1018 ASSERT_TRUE(tester.Init(GetProfile())); 1049 ASSERT_TRUE(tester.Init(GetProfile()));
1019 PrefService* prefs = GetProfile()->GetPrefs(); 1050 PrefService* prefs = GetProfile()->GetPrefs();
1020 prefs->SetBoolean(prefs::kAllowDeletingBrowserHistory, false); 1051 prefs->SetBoolean(prefs::kAllowDeletingBrowserHistory, false);
1021 1052
1022 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2); 1053 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2);
1023 1054
1024 tester.AddHistory(kOrigin1, base::Time::Now()); 1055 tester.AddHistory(kOrigin1, base::Time::Now());
1025 tester.AddHistory(kOrigin2, two_hours_ago); 1056 tester.AddHistory(kOrigin2, two_hours_ago);
1026 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1)); 1057 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1));
1027 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin2)); 1058 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin2));
1028 1059
1029 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), 1060 BlockUntilBrowsingDataRemoved(
1030 BrowsingDataRemover::REMOVE_HISTORY, false); 1061 AnHourAgo(), base::Time::Max(),
1031 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); 1062 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, false);
1032 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); 1063 EXPECT_EQ(ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY,
1064 GetRemovalMask());
1065 EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
1066 GetOriginTypeMask());
1033 1067
1034 // Nothing should have been deleted. 1068 // Nothing should have been deleted.
1035 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin1)); 1069 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin1));
1036 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin2)); 1070 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin2));
1037 } 1071 }
1038 1072
1039 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 1073 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
1040 RemoveMultipleTypesHistoryProhibited) { 1074 RemoveMultipleTypesHistoryProhibited) {
1041 PrefService* prefs = GetProfile()->GetPrefs(); 1075 PrefService* prefs = GetProfile()->GetPrefs();
1042 prefs->SetBoolean(prefs::kAllowDeletingBrowserHistory, false); 1076 prefs->SetBoolean(prefs::kAllowDeletingBrowserHistory, false);
1043 1077
1044 // Add some history. 1078 // Add some history.
1045 RemoveHistoryTester history_tester; 1079 RemoveHistoryTester history_tester;
1046 ASSERT_TRUE(history_tester.Init(GetProfile())); 1080 ASSERT_TRUE(history_tester.Init(GetProfile()));
1047 history_tester.AddHistory(kOrigin1, base::Time::Now()); 1081 history_tester.AddHistory(kOrigin1, base::Time::Now());
1048 ASSERT_TRUE(history_tester.HistoryContainsURL(kOrigin1)); 1082 ASSERT_TRUE(history_tester.HistoryContainsURL(kOrigin1));
1049 1083
1050 // Expect that passwords will be deleted, as they do not depend 1084 // Expect that passwords will be deleted, as they do not depend
1051 // on |prefs::kAllowDeletingBrowserHistory|. 1085 // on |prefs::kAllowDeletingBrowserHistory|.
1052 RemovePasswordsTester tester(GetProfile()); 1086 RemovePasswordsTester tester(GetProfile());
1053 EXPECT_CALL(*tester.store(), RemoveLoginsByURLAndTimeImpl(_, _, _)); 1087 EXPECT_CALL(*tester.store(), RemoveLoginsByURLAndTimeImpl(_, _, _));
1054 1088
1055 int removal_mask = BrowsingDataRemover::REMOVE_HISTORY | 1089 int removal_mask = ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY |
1056 BrowsingDataRemover::REMOVE_PASSWORDS; 1090 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS;
1057 1091
1058 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), 1092 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(),
1059 removal_mask, false); 1093 removal_mask, false);
1060 EXPECT_EQ(removal_mask, GetRemovalMask()); 1094 EXPECT_EQ(removal_mask, GetRemovalMask());
1061 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); 1095 EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
1096 GetOriginTypeMask());
1062 1097
1063 // Verify that history was not deleted. 1098 // Verify that history was not deleted.
1064 EXPECT_TRUE(history_tester.HistoryContainsURL(kOrigin1)); 1099 EXPECT_TRUE(history_tester.HistoryContainsURL(kOrigin1));
1065 } 1100 }
1066 #endif 1101 #endif
1067 1102
1068 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveExternalProtocolData) { 1103 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveExternalProtocolData) {
1069 TestingProfile* profile = GetProfile(); 1104 TestingProfile* profile = GetProfile();
1070 // Add external protocol data on profile. 1105 // Add external protocol data on profile.
1071 base::DictionaryValue prefs; 1106 base::DictionaryValue prefs;
1072 prefs.SetBoolean("tel", true); 1107 prefs.SetBoolean("tel", true);
1073 profile->GetPrefs()->Set(prefs::kExcludedSchemes, prefs); 1108 profile->GetPrefs()->Set(prefs::kExcludedSchemes, prefs);
1074 1109
1075 EXPECT_FALSE( 1110 EXPECT_FALSE(
1076 profile->GetPrefs()->GetDictionary(prefs::kExcludedSchemes)->empty()); 1111 profile->GetPrefs()->GetDictionary(prefs::kExcludedSchemes)->empty());
1077 1112
1078 BlockUntilBrowsingDataRemoved( 1113 BlockUntilBrowsingDataRemoved(
1079 AnHourAgo(), base::Time::Max(), 1114 AnHourAgo(), base::Time::Max(),
1080 BrowsingDataRemover::REMOVE_EXTERNAL_PROTOCOL_DATA, false); 1115 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_EXTERNAL_PROTOCOL_DATA,
1116 false);
1081 EXPECT_TRUE( 1117 EXPECT_TRUE(
1082 profile->GetPrefs()->GetDictionary(prefs::kExcludedSchemes)->empty()); 1118 profile->GetPrefs()->GetDictionary(prefs::kExcludedSchemes)->empty());
1083 } 1119 }
1084 1120
1085 // Test that clearing history deletes favicons not associated with bookmarks. 1121 // Test that clearing history deletes favicons not associated with bookmarks.
1086 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveFaviconsForever) { 1122 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveFaviconsForever) {
1087 GURL page_url("http://a"); 1123 GURL page_url("http://a");
1088 1124
1089 RemoveFaviconTester favicon_tester; 1125 RemoveFaviconTester favicon_tester;
1090 ASSERT_TRUE(favicon_tester.Init(GetProfile())); 1126 ASSERT_TRUE(favicon_tester.Init(GetProfile()));
1091 favicon_tester.VisitAndAddFavicon(page_url); 1127 favicon_tester.VisitAndAddFavicon(page_url);
1092 ASSERT_TRUE(favicon_tester.HasFaviconForPageURL(page_url)); 1128 ASSERT_TRUE(favicon_tester.HasFaviconForPageURL(page_url));
1093 1129
1094 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1130 BlockUntilBrowsingDataRemoved(
1095 BrowsingDataRemover::REMOVE_HISTORY, false); 1131 base::Time(), base::Time::Max(),
1096 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); 1132 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, false);
1133 EXPECT_EQ(ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY,
1134 GetRemovalMask());
1097 EXPECT_FALSE(favicon_tester.HasFaviconForPageURL(page_url)); 1135 EXPECT_FALSE(favicon_tester.HasFaviconForPageURL(page_url));
1098 } 1136 }
1099 1137
1100 // Test that a bookmark's favicon is expired and not deleted when clearing 1138 // Test that a bookmark's favicon is expired and not deleted when clearing
1101 // history. Expiring the favicon causes the bookmark's favicon to be updated 1139 // history. Expiring the favicon causes the bookmark's favicon to be updated
1102 // when the user next visits the bookmarked page. Expiring the bookmark's 1140 // when the user next visits the bookmarked page. Expiring the bookmark's
1103 // favicon is useful when the bookmark's favicon becomes incorrect (See 1141 // favicon is useful when the bookmark's favicon becomes incorrect (See
1104 // crbug.com/474421 for a sample bug which causes this). 1142 // crbug.com/474421 for a sample bug which causes this).
1105 TEST_F(ChromeBrowsingDataRemoverDelegateTest, ExpireBookmarkFavicons) { 1143 TEST_F(ChromeBrowsingDataRemoverDelegateTest, ExpireBookmarkFavicons) {
1106 GURL bookmarked_page("http://a"); 1144 GURL bookmarked_page("http://a");
1107 1145
1108 TestingProfile* profile = GetProfile(); 1146 TestingProfile* profile = GetProfile();
1109 profile->CreateBookmarkModel(true); 1147 profile->CreateBookmarkModel(true);
1110 bookmarks::BookmarkModel* bookmark_model = 1148 bookmarks::BookmarkModel* bookmark_model =
1111 BookmarkModelFactory::GetForBrowserContext(profile); 1149 BookmarkModelFactory::GetForBrowserContext(profile);
1112 bookmarks::test::WaitForBookmarkModelToLoad(bookmark_model); 1150 bookmarks::test::WaitForBookmarkModelToLoad(bookmark_model);
1113 bookmark_model->AddURL(bookmark_model->bookmark_bar_node(), 0, 1151 bookmark_model->AddURL(bookmark_model->bookmark_bar_node(), 0,
1114 base::ASCIIToUTF16("a"), bookmarked_page); 1152 base::ASCIIToUTF16("a"), bookmarked_page);
1115 1153
1116 RemoveFaviconTester favicon_tester; 1154 RemoveFaviconTester favicon_tester;
1117 ASSERT_TRUE(favicon_tester.Init(GetProfile())); 1155 ASSERT_TRUE(favicon_tester.Init(GetProfile()));
1118 favicon_tester.VisitAndAddFavicon(bookmarked_page); 1156 favicon_tester.VisitAndAddFavicon(bookmarked_page);
1119 ASSERT_TRUE(favicon_tester.HasFaviconForPageURL(bookmarked_page)); 1157 ASSERT_TRUE(favicon_tester.HasFaviconForPageURL(bookmarked_page));
1120 1158
1121 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1159 BlockUntilBrowsingDataRemoved(
1122 BrowsingDataRemover::REMOVE_HISTORY, false); 1160 base::Time(), base::Time::Max(),
1123 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); 1161 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, false);
1162 EXPECT_EQ(ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY,
1163 GetRemovalMask());
1124 EXPECT_TRUE(favicon_tester.HasExpiredFaviconForPageURL(bookmarked_page)); 1164 EXPECT_TRUE(favicon_tester.HasExpiredFaviconForPageURL(bookmarked_page));
1125 } 1165 }
1126 1166
1127 // TODO(crbug.com/589586): Disabled, since history is not yet marked as 1167 // TODO(crbug.com/589586): Disabled, since history is not yet marked as
1128 // a filterable datatype. 1168 // a filterable datatype.
1129 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 1169 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
1130 DISABLED_TimeBasedHistoryRemoval) { 1170 DISABLED_TimeBasedHistoryRemoval) {
1131 RemoveHistoryTester tester; 1171 RemoveHistoryTester tester;
1132 ASSERT_TRUE(tester.Init(GetProfile())); 1172 ASSERT_TRUE(tester.Init(GetProfile()));
1133 1173
1134 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2); 1174 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2);
1135 1175
1136 tester.AddHistory(kOrigin1, base::Time::Now()); 1176 tester.AddHistory(kOrigin1, base::Time::Now());
1137 tester.AddHistory(kOrigin2, two_hours_ago); 1177 tester.AddHistory(kOrigin2, two_hours_ago);
1138 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1)); 1178 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1));
1139 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin2)); 1179 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin2));
1140 1180
1141 std::unique_ptr<BrowsingDataFilterBuilder> builder( 1181 std::unique_ptr<BrowsingDataFilterBuilder> builder(
1142 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST)); 1182 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST));
1143 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(), 1183 BlockUntilOriginDataRemoved(
1144 BrowsingDataRemover::REMOVE_HISTORY, 1184 AnHourAgo(), base::Time::Max(),
1145 std::move(builder)); 1185 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, std::move(builder));
1146 1186
1147 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); 1187 EXPECT_EQ(ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY,
1148 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); 1188 GetRemovalMask());
1189 EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
1190 GetOriginTypeMask());
1149 EXPECT_FALSE(tester.HistoryContainsURL(kOrigin1)); 1191 EXPECT_FALSE(tester.HistoryContainsURL(kOrigin1));
1150 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin2)); 1192 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin2));
1151 } 1193 }
1152 1194
1153 // Verify that clearing autofill form data works. 1195 // Verify that clearing autofill form data works.
1154 TEST_F(ChromeBrowsingDataRemoverDelegateTest, AutofillRemovalLastHour) { 1196 TEST_F(ChromeBrowsingDataRemoverDelegateTest, AutofillRemovalLastHour) {
1155 GetProfile()->CreateWebDataService(); 1197 GetProfile()->CreateWebDataService();
1156 RemoveAutofillTester tester(GetProfile()); 1198 RemoveAutofillTester tester(GetProfile());
1157 1199
1158 ASSERT_FALSE(tester.HasProfile()); 1200 ASSERT_FALSE(tester.HasProfile());
1159 tester.AddProfilesAndCards(); 1201 tester.AddProfilesAndCards();
1160 ASSERT_TRUE(tester.HasProfile()); 1202 ASSERT_TRUE(tester.HasProfile());
1161 1203
1162 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), 1204 BlockUntilBrowsingDataRemoved(
1163 BrowsingDataRemover::REMOVE_FORM_DATA, false); 1205 AnHourAgo(), base::Time::Max(),
1206 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA, false);
1164 1207
1165 EXPECT_EQ(BrowsingDataRemover::REMOVE_FORM_DATA, GetRemovalMask()); 1208 EXPECT_EQ(ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA,
1166 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); 1209 GetRemovalMask());
1210 EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
1211 GetOriginTypeMask());
1167 ASSERT_FALSE(tester.HasProfile()); 1212 ASSERT_FALSE(tester.HasProfile());
1168 } 1213 }
1169 1214
1170 TEST_F(ChromeBrowsingDataRemoverDelegateTest, AutofillRemovalEverything) { 1215 TEST_F(ChromeBrowsingDataRemoverDelegateTest, AutofillRemovalEverything) {
1171 GetProfile()->CreateWebDataService(); 1216 GetProfile()->CreateWebDataService();
1172 RemoveAutofillTester tester(GetProfile()); 1217 RemoveAutofillTester tester(GetProfile());
1173 1218
1174 ASSERT_FALSE(tester.HasProfile()); 1219 ASSERT_FALSE(tester.HasProfile());
1175 tester.AddProfilesAndCards(); 1220 tester.AddProfilesAndCards();
1176 ASSERT_TRUE(tester.HasProfile()); 1221 ASSERT_TRUE(tester.HasProfile());
1177 1222
1178 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1223 BlockUntilBrowsingDataRemoved(
1179 BrowsingDataRemover::REMOVE_FORM_DATA, false); 1224 base::Time(), base::Time::Max(),
1225 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA, false);
1180 1226
1181 EXPECT_EQ(BrowsingDataRemover::REMOVE_FORM_DATA, GetRemovalMask()); 1227 EXPECT_EQ(ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA,
1182 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); 1228 GetRemovalMask());
1229 EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
1230 GetOriginTypeMask());
1183 ASSERT_FALSE(tester.HasProfile()); 1231 ASSERT_FALSE(tester.HasProfile());
1184 } 1232 }
1185 1233
1186 // Verify that clearing autofill form data works. 1234 // Verify that clearing autofill form data works.
1187 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 1235 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
1188 AutofillOriginsRemovedWithHistory) { 1236 AutofillOriginsRemovedWithHistory) {
1189 GetProfile()->CreateWebDataService(); 1237 GetProfile()->CreateWebDataService();
1190 RemoveAutofillTester tester(GetProfile()); 1238 RemoveAutofillTester tester(GetProfile());
1191 1239
1192 tester.AddProfilesAndCards(); 1240 tester.AddProfilesAndCards();
1193 EXPECT_FALSE(tester.HasOrigin(std::string())); 1241 EXPECT_FALSE(tester.HasOrigin(std::string()));
1194 EXPECT_TRUE(tester.HasOrigin(kWebOrigin)); 1242 EXPECT_TRUE(tester.HasOrigin(kWebOrigin));
1195 EXPECT_TRUE(tester.HasOrigin(autofill::kSettingsOrigin)); 1243 EXPECT_TRUE(tester.HasOrigin(autofill::kSettingsOrigin));
1196 1244
1197 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), 1245 BlockUntilBrowsingDataRemoved(
1198 BrowsingDataRemover::REMOVE_HISTORY, false); 1246 AnHourAgo(), base::Time::Max(),
1247 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, false);
1199 1248
1200 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); 1249 EXPECT_EQ(ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY,
1201 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); 1250 GetRemovalMask());
1251 EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
1252 GetOriginTypeMask());
1202 EXPECT_TRUE(tester.HasOrigin(std::string())); 1253 EXPECT_TRUE(tester.HasOrigin(std::string()));
1203 EXPECT_FALSE(tester.HasOrigin(kWebOrigin)); 1254 EXPECT_FALSE(tester.HasOrigin(kWebOrigin));
1204 EXPECT_TRUE(tester.HasOrigin(autofill::kSettingsOrigin)); 1255 EXPECT_TRUE(tester.HasOrigin(autofill::kSettingsOrigin));
1205 } 1256 }
1206 1257
1207 TEST_F(ChromeBrowsingDataRemoverDelegateTest, ZeroSuggestCacheClear) { 1258 TEST_F(ChromeBrowsingDataRemoverDelegateTest, ZeroSuggestCacheClear) {
1208 PrefService* prefs = GetProfile()->GetPrefs(); 1259 PrefService* prefs = GetProfile()->GetPrefs();
1209 prefs->SetString(omnibox::kZeroSuggestCachedResults, 1260 prefs->SetString(omnibox::kZeroSuggestCachedResults,
1210 "[\"\", [\"foo\", \"bar\"]]"); 1261 "[\"\", [\"foo\", \"bar\"]]");
1211 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1262 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
1212 BrowsingDataRemover::REMOVE_COOKIES, false); 1263 BrowsingDataRemover::DATA_TYPE_COOKIES, false);
1213 1264
1214 // Expect the prefs to be cleared when cookies are removed. 1265 // Expect the prefs to be cleared when cookies are removed.
1215 EXPECT_TRUE(prefs->GetString(omnibox::kZeroSuggestCachedResults).empty()); 1266 EXPECT_TRUE(prefs->GetString(omnibox::kZeroSuggestCachedResults).empty());
1216 EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask()); 1267 EXPECT_EQ(BrowsingDataRemover::DATA_TYPE_COOKIES, GetRemovalMask());
1217 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); 1268 EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
1269 GetOriginTypeMask());
1218 } 1270 }
1219 1271
1220 #if defined(OS_CHROMEOS) 1272 #if defined(OS_CHROMEOS)
1221 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 1273 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
1222 ContentProtectionPlatformKeysRemoval) { 1274 ContentProtectionPlatformKeysRemoval) {
1223 chromeos::ScopedTestDeviceSettingsService test_device_settings_service; 1275 chromeos::ScopedTestDeviceSettingsService test_device_settings_service;
1224 chromeos::ScopedTestCrosSettings test_cros_settings; 1276 chromeos::ScopedTestCrosSettings test_cros_settings;
1225 chromeos::MockUserManager* mock_user_manager = 1277 chromeos::MockUserManager* mock_user_manager =
1226 new testing::NiceMock<chromeos::MockUserManager>(); 1278 new testing::NiceMock<chromeos::MockUserManager>();
1227 mock_user_manager->SetActiveUser( 1279 mock_user_manager->SetActiveUser(
1228 AccountId::FromUserEmail("test@example.com")); 1280 AccountId::FromUserEmail("test@example.com"));
1229 chromeos::ScopedUserManagerEnabler user_manager_enabler(mock_user_manager); 1281 chromeos::ScopedUserManagerEnabler user_manager_enabler(mock_user_manager);
1230 1282
1231 std::unique_ptr<chromeos::DBusThreadManagerSetter> dbus_setter = 1283 std::unique_ptr<chromeos::DBusThreadManagerSetter> dbus_setter =
1232 chromeos::DBusThreadManager::GetSetterForTesting(); 1284 chromeos::DBusThreadManager::GetSetterForTesting();
1233 chromeos::MockCryptohomeClient* cryptohome_client = 1285 chromeos::MockCryptohomeClient* cryptohome_client =
1234 new chromeos::MockCryptohomeClient; 1286 new chromeos::MockCryptohomeClient;
1235 dbus_setter->SetCryptohomeClient( 1287 dbus_setter->SetCryptohomeClient(
1236 std::unique_ptr<chromeos::CryptohomeClient>(cryptohome_client)); 1288 std::unique_ptr<chromeos::CryptohomeClient>(cryptohome_client));
1237 1289
1238 // Expect exactly one call. No calls means no attempt to delete keys and more 1290 // Expect exactly one call. No calls means no attempt to delete keys and more
1239 // than one call means a significant performance problem. 1291 // than one call means a significant performance problem.
1240 EXPECT_CALL(*cryptohome_client, TpmAttestationDeleteKeys(_, _, _, _)) 1292 EXPECT_CALL(*cryptohome_client, TpmAttestationDeleteKeys(_, _, _, _))
1241 .WillOnce(WithArgs<3>(Invoke(FakeDBusCall))); 1293 .WillOnce(WithArgs<3>(Invoke(FakeDBusCall)));
1242 1294
1243 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1295 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
1244 BrowsingDataRemover::REMOVE_MEDIA_LICENSES, 1296 BrowsingDataRemover::DATA_TYPE_MEDIA_LICENSES,
1245 false); 1297 false);
1246 1298
1247 chromeos::DBusThreadManager::Shutdown(); 1299 chromeos::DBusThreadManager::Shutdown();
1248 } 1300 }
1249 #endif 1301 #endif
1250 1302
1251 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DomainReliability_Null) { 1303 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DomainReliability_Null) {
1252 const ClearDomainReliabilityTester& tester = 1304 const ClearDomainReliabilityTester& tester =
1253 clear_domain_reliability_tester(); 1305 clear_domain_reliability_tester();
1254 1306
1255 EXPECT_EQ(0u, tester.clear_count()); 1307 EXPECT_EQ(0u, tester.clear_count());
1256 } 1308 }
1257 1309
1258 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DomainReliability_Beacons) { 1310 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DomainReliability_Beacons) {
1259 const ClearDomainReliabilityTester& tester = 1311 const ClearDomainReliabilityTester& tester =
1260 clear_domain_reliability_tester(); 1312 clear_domain_reliability_tester();
1261 1313
1262 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1314 BlockUntilBrowsingDataRemoved(
1263 BrowsingDataRemover::REMOVE_HISTORY, false); 1315 base::Time(), base::Time::Max(),
1316 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, false);
1264 EXPECT_EQ(1u, tester.clear_count()); 1317 EXPECT_EQ(1u, tester.clear_count());
1265 EXPECT_EQ(CLEAR_BEACONS, tester.last_clear_mode()); 1318 EXPECT_EQ(CLEAR_BEACONS, tester.last_clear_mode());
1266 EXPECT_TRUE(ProbablySameFilters( 1319 EXPECT_TRUE(ProbablySameFilters(
1267 BrowsingDataFilterBuilder::BuildNoopFilter(), tester.last_filter())); 1320 BrowsingDataFilterBuilder::BuildNoopFilter(), tester.last_filter()));
1268 } 1321 }
1269 1322
1270 // TODO(crbug.com/589586): Disabled, since history is not yet marked as 1323 // TODO(crbug.com/589586): Disabled, since history is not yet marked as
1271 // a filterable datatype. 1324 // a filterable datatype.
1272 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 1325 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
1273 DISABLED_DomainReliability_Beacons_WithFilter) { 1326 DISABLED_DomainReliability_Beacons_WithFilter) {
1274 const ClearDomainReliabilityTester& tester = 1327 const ClearDomainReliabilityTester& tester =
1275 clear_domain_reliability_tester(); 1328 clear_domain_reliability_tester();
1276 1329
1277 std::unique_ptr<BrowsingDataFilterBuilder> builder( 1330 std::unique_ptr<BrowsingDataFilterBuilder> builder(
1278 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); 1331 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST));
1279 builder->AddRegisterableDomain(kTestRegisterableDomain1); 1332 builder->AddRegisterableDomain(kTestRegisterableDomain1);
1280 1333
1281 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), 1334 BlockUntilOriginDataRemoved(
1282 BrowsingDataRemover::REMOVE_HISTORY, 1335 base::Time(), base::Time::Max(),
1283 builder->Copy()); 1336 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, builder->Copy());
1284 EXPECT_EQ(1u, tester.clear_count()); 1337 EXPECT_EQ(1u, tester.clear_count());
1285 EXPECT_EQ(CLEAR_BEACONS, tester.last_clear_mode()); 1338 EXPECT_EQ(CLEAR_BEACONS, tester.last_clear_mode());
1286 EXPECT_TRUE(ProbablySameFilters( 1339 EXPECT_TRUE(ProbablySameFilters(
1287 builder->BuildGeneralFilter(), tester.last_filter())); 1340 builder->BuildGeneralFilter(), tester.last_filter()));
1288 } 1341 }
1289 1342
1290 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DomainReliability_Contexts) { 1343 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DomainReliability_Contexts) {
1291 const ClearDomainReliabilityTester& tester = 1344 const ClearDomainReliabilityTester& tester =
1292 clear_domain_reliability_tester(); 1345 clear_domain_reliability_tester();
1293 1346
1294 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1347 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
1295 BrowsingDataRemover::REMOVE_COOKIES, false); 1348 BrowsingDataRemover::DATA_TYPE_COOKIES, false);
1296 EXPECT_EQ(1u, tester.clear_count()); 1349 EXPECT_EQ(1u, tester.clear_count());
1297 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode()); 1350 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode());
1298 EXPECT_TRUE(ProbablySameFilters( 1351 EXPECT_TRUE(ProbablySameFilters(
1299 BrowsingDataFilterBuilder::BuildNoopFilter(), tester.last_filter())); 1352 BrowsingDataFilterBuilder::BuildNoopFilter(), tester.last_filter()));
1300 } 1353 }
1301 1354
1302 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 1355 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
1303 DomainReliability_Contexts_WithFilter) { 1356 DomainReliability_Contexts_WithFilter) {
1304 const ClearDomainReliabilityTester& tester = 1357 const ClearDomainReliabilityTester& tester =
1305 clear_domain_reliability_tester(); 1358 clear_domain_reliability_tester();
1306 1359
1307 std::unique_ptr<BrowsingDataFilterBuilder> builder( 1360 std::unique_ptr<BrowsingDataFilterBuilder> builder(
1308 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); 1361 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST));
1309 builder->AddRegisterableDomain(kTestRegisterableDomain1); 1362 builder->AddRegisterableDomain(kTestRegisterableDomain1);
1310 1363
1311 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), 1364 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(),
1312 BrowsingDataRemover::REMOVE_COOKIES, 1365 BrowsingDataRemover::DATA_TYPE_COOKIES,
1313 builder->Copy()); 1366 builder->Copy());
1314 EXPECT_EQ(1u, tester.clear_count()); 1367 EXPECT_EQ(1u, tester.clear_count());
1315 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode()); 1368 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode());
1316 EXPECT_TRUE(ProbablySameFilters( 1369 EXPECT_TRUE(ProbablySameFilters(
1317 builder->BuildGeneralFilter(), tester.last_filter())); 1370 builder->BuildGeneralFilter(), tester.last_filter()));
1318 } 1371 }
1319 1372
1320 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DomainReliability_ContextsWin) { 1373 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DomainReliability_ContextsWin) {
1321 const ClearDomainReliabilityTester& tester = 1374 const ClearDomainReliabilityTester& tester =
1322 clear_domain_reliability_tester(); 1375 clear_domain_reliability_tester();
1323 1376
1324 BlockUntilBrowsingDataRemoved( 1377 BlockUntilBrowsingDataRemoved(
1325 base::Time(), base::Time::Max(), 1378 base::Time(), base::Time::Max(),
1326 BrowsingDataRemover::REMOVE_HISTORY | BrowsingDataRemover::REMOVE_COOKIES, 1379 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY |
1380 BrowsingDataRemover::DATA_TYPE_COOKIES,
1327 false); 1381 false);
1328 EXPECT_EQ(1u, tester.clear_count()); 1382 EXPECT_EQ(1u, tester.clear_count());
1329 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode()); 1383 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode());
1330 } 1384 }
1331 1385
1332 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 1386 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
1333 DomainReliability_ProtectedOrigins) { 1387 DomainReliability_ProtectedOrigins) {
1334 const ClearDomainReliabilityTester& tester = 1388 const ClearDomainReliabilityTester& tester =
1335 clear_domain_reliability_tester(); 1389 clear_domain_reliability_tester();
1336 1390
1337 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1391 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
1338 BrowsingDataRemover::REMOVE_COOKIES, true); 1392 BrowsingDataRemover::DATA_TYPE_COOKIES, true);
1339 EXPECT_EQ(1u, tester.clear_count()); 1393 EXPECT_EQ(1u, tester.clear_count());
1340 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode()); 1394 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode());
1341 } 1395 }
1342 1396
1343 // TODO(juliatuttle): This isn't actually testing the no-monitor case, since 1397 // TODO(juliatuttle): This isn't actually testing the no-monitor case, since
1344 // BrowsingDataRemoverTest now creates one unconditionally, since it's needed 1398 // BrowsingDataRemoverTest now creates one unconditionally, since it's needed
1345 // for some unrelated test cases. This should be fixed so it tests the no- 1399 // for some unrelated test cases. This should be fixed so it tests the no-
1346 // monitor case again. 1400 // monitor case again.
1347 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 1401 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
1348 DISABLED_DomainReliability_NoMonitor) { 1402 DISABLED_DomainReliability_NoMonitor) {
1349 BlockUntilBrowsingDataRemoved( 1403 BlockUntilBrowsingDataRemoved(
1350 base::Time(), base::Time::Max(), 1404 base::Time(), base::Time::Max(),
1351 BrowsingDataRemover::REMOVE_HISTORY | BrowsingDataRemover::REMOVE_COOKIES, 1405 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY |
1406 BrowsingDataRemover::DATA_TYPE_COOKIES,
1352 false); 1407 false);
1353 } 1408 }
1354 1409
1355 // Tests that the deletion of downloads completes successfully and that 1410 // Tests that the deletion of downloads completes successfully and that
1356 // ChromeDownloadManagerDelegate is correctly created and shut down. 1411 // ChromeDownloadManagerDelegate is correctly created and shut down.
1357 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveDownloads) { 1412 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveDownloads) {
1358 RemoveDownloadsTester tester(GetProfile()); 1413 RemoveDownloadsTester tester(GetProfile());
1359 1414
1360 EXPECT_CALL( 1415 EXPECT_CALL(
1361 *tester.download_manager(), RemoveDownloadsByURLAndTime(_, _, _)); 1416 *tester.download_manager(), RemoveDownloadsByURLAndTime(_, _, _));
1362 1417
1363 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1418 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
1364 BrowsingDataRemover::REMOVE_DOWNLOADS, false); 1419 BrowsingDataRemover::DATA_TYPE_DOWNLOADS,
1420 false);
1365 } 1421 }
1366 1422
1367 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemovePasswordStatistics) { 1423 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemovePasswordStatistics) {
1368 RemovePasswordsTester tester(GetProfile()); 1424 RemovePasswordsTester tester(GetProfile());
1369 base::Callback<bool(const GURL&)> empty_filter; 1425 base::Callback<bool(const GURL&)> empty_filter;
1370 1426
1371 EXPECT_CALL(*tester.store(), RemoveStatisticsByOriginAndTimeImpl( 1427 EXPECT_CALL(*tester.store(), RemoveStatisticsByOriginAndTimeImpl(
1372 ProbablySameFilter(empty_filter), 1428 ProbablySameFilter(empty_filter),
1373 base::Time(), base::Time::Max())); 1429 base::Time(), base::Time::Max()));
1374 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1430 BlockUntilBrowsingDataRemoved(
1375 BrowsingDataRemover::REMOVE_HISTORY, false); 1431 base::Time(), base::Time::Max(),
1432 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, false);
1376 } 1433 }
1377 1434
1378 // TODO(crbug.com/589586): Disabled, since history is not yet marked as 1435 // TODO(crbug.com/589586): Disabled, since history is not yet marked as
1379 // a filterable datatype. 1436 // a filterable datatype.
1380 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 1437 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
1381 DISABLED_RemovePasswordStatisticsByOrigin) { 1438 DISABLED_RemovePasswordStatisticsByOrigin) {
1382 RemovePasswordsTester tester(GetProfile()); 1439 RemovePasswordsTester tester(GetProfile());
1383 1440
1384 std::unique_ptr<BrowsingDataFilterBuilder> builder( 1441 std::unique_ptr<BrowsingDataFilterBuilder> builder(
1385 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); 1442 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST));
1386 builder->AddRegisterableDomain(kTestRegisterableDomain1); 1443 builder->AddRegisterableDomain(kTestRegisterableDomain1);
1387 base::Callback<bool(const GURL&)> filter = builder->BuildGeneralFilter(); 1444 base::Callback<bool(const GURL&)> filter = builder->BuildGeneralFilter();
1388 1445
1389 EXPECT_CALL(*tester.store(), 1446 EXPECT_CALL(*tester.store(),
1390 RemoveStatisticsByOriginAndTimeImpl( 1447 RemoveStatisticsByOriginAndTimeImpl(
1391 ProbablySameFilter(filter), base::Time(), base::Time::Max())); 1448 ProbablySameFilter(filter), base::Time(), base::Time::Max()));
1392 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), 1449 BlockUntilOriginDataRemoved(
1393 BrowsingDataRemover::REMOVE_HISTORY, 1450 base::Time(), base::Time::Max(),
1394 std::move(builder)); 1451 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, std::move(builder));
1395 } 1452 }
1396 1453
1397 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemovePasswordsByTimeOnly) { 1454 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemovePasswordsByTimeOnly) {
1398 RemovePasswordsTester tester(GetProfile()); 1455 RemovePasswordsTester tester(GetProfile());
1399 base::Callback<bool(const GURL&)> filter = 1456 base::Callback<bool(const GURL&)> filter =
1400 BrowsingDataFilterBuilder::BuildNoopFilter(); 1457 BrowsingDataFilterBuilder::BuildNoopFilter();
1401 1458
1402 EXPECT_CALL(*tester.store(), 1459 EXPECT_CALL(*tester.store(),
1403 RemoveLoginsByURLAndTimeImpl(ProbablySameFilter(filter), _, _)) 1460 RemoveLoginsByURLAndTimeImpl(ProbablySameFilter(filter), _, _))
1404 .WillOnce(Return(password_manager::PasswordStoreChangeList())); 1461 .WillOnce(Return(password_manager::PasswordStoreChangeList()));
1405 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1462 BlockUntilBrowsingDataRemoved(
1406 BrowsingDataRemover::REMOVE_PASSWORDS, false); 1463 base::Time(), base::Time::Max(),
1464 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS, false);
1407 } 1465 }
1408 1466
1409 // Disabled, since passwords are not yet marked as a filterable datatype. 1467 // Disabled, since passwords are not yet marked as a filterable datatype.
1410 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 1468 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
1411 DISABLED_RemovePasswordsByOrigin) { 1469 DISABLED_RemovePasswordsByOrigin) {
1412 RemovePasswordsTester tester(GetProfile()); 1470 RemovePasswordsTester tester(GetProfile());
1413 std::unique_ptr<BrowsingDataFilterBuilder> builder( 1471 std::unique_ptr<BrowsingDataFilterBuilder> builder(
1414 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); 1472 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST));
1415 builder->AddRegisterableDomain(kTestRegisterableDomain1); 1473 builder->AddRegisterableDomain(kTestRegisterableDomain1);
1416 base::Callback<bool(const GURL&)> filter = builder->BuildGeneralFilter(); 1474 base::Callback<bool(const GURL&)> filter = builder->BuildGeneralFilter();
1417 1475
1418 EXPECT_CALL(*tester.store(), 1476 EXPECT_CALL(*tester.store(),
1419 RemoveLoginsByURLAndTimeImpl(ProbablySameFilter(filter), _, _)) 1477 RemoveLoginsByURLAndTimeImpl(ProbablySameFilter(filter), _, _))
1420 .WillOnce(Return(password_manager::PasswordStoreChangeList())); 1478 .WillOnce(Return(password_manager::PasswordStoreChangeList()));
1421 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), 1479 BlockUntilOriginDataRemoved(
1422 BrowsingDataRemover::REMOVE_PASSWORDS, 1480 base::Time(), base::Time::Max(),
1423 std::move(builder)); 1481 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS,
1482 std::move(builder));
1424 } 1483 }
1425 1484
1426 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DisableAutoSignIn) { 1485 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DisableAutoSignIn) {
1427 RemovePasswordsTester tester(GetProfile()); 1486 RemovePasswordsTester tester(GetProfile());
1428 base::Callback<bool(const GURL&)> empty_filter = 1487 base::Callback<bool(const GURL&)> empty_filter =
1429 BrowsingDataFilterBuilder::BuildNoopFilter(); 1488 BrowsingDataFilterBuilder::BuildNoopFilter();
1430 1489
1431 EXPECT_CALL( 1490 EXPECT_CALL(
1432 *tester.store(), 1491 *tester.store(),
1433 DisableAutoSignInForOriginsImpl(ProbablySameFilter(empty_filter))) 1492 DisableAutoSignInForOriginsImpl(ProbablySameFilter(empty_filter)))
1434 .WillOnce(Return(password_manager::PasswordStoreChangeList())); 1493 .WillOnce(Return(password_manager::PasswordStoreChangeList()));
1435 1494
1436 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1495 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
1437 BrowsingDataRemover::REMOVE_COOKIES, false); 1496 BrowsingDataRemover::DATA_TYPE_COOKIES, false);
1438 } 1497 }
1439 1498
1440 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 1499 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
1441 DisableAutoSignInAfterRemovingPasswords) { 1500 DisableAutoSignInAfterRemovingPasswords) {
1442 RemovePasswordsTester tester(GetProfile()); 1501 RemovePasswordsTester tester(GetProfile());
1443 base::Callback<bool(const GURL&)> empty_filter = 1502 base::Callback<bool(const GURL&)> empty_filter =
1444 BrowsingDataFilterBuilder::BuildNoopFilter(); 1503 BrowsingDataFilterBuilder::BuildNoopFilter();
1445 1504
1446 EXPECT_CALL(*tester.store(), RemoveLoginsByURLAndTimeImpl(_, _, _)) 1505 EXPECT_CALL(*tester.store(), RemoveLoginsByURLAndTimeImpl(_, _, _))
1447 .WillOnce(Return(password_manager::PasswordStoreChangeList())); 1506 .WillOnce(Return(password_manager::PasswordStoreChangeList()));
1448 EXPECT_CALL( 1507 EXPECT_CALL(
1449 *tester.store(), 1508 *tester.store(),
1450 DisableAutoSignInForOriginsImpl(ProbablySameFilter(empty_filter))) 1509 DisableAutoSignInForOriginsImpl(ProbablySameFilter(empty_filter)))
1451 .WillOnce(Return(password_manager::PasswordStoreChangeList())); 1510 .WillOnce(Return(password_manager::PasswordStoreChangeList()));
1452 1511
1453 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1512 BlockUntilBrowsingDataRemoved(
1454 BrowsingDataRemover::REMOVE_COOKIES | 1513 base::Time(), base::Time::Max(),
1455 BrowsingDataRemover::REMOVE_PASSWORDS, 1514 BrowsingDataRemover::DATA_TYPE_COOKIES |
1456 false); 1515 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS,
1516 false);
1457 } 1517 }
1458 1518
1459 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 1519 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
1460 RemoveContentSettingsWithBlacklist) { 1520 RemoveContentSettingsWithBlacklist) {
1461 // Add our settings. 1521 // Add our settings.
1462 HostContentSettingsMap* host_content_settings_map = 1522 HostContentSettingsMap* host_content_settings_map =
1463 HostContentSettingsMapFactory::GetForProfile(GetProfile()); 1523 HostContentSettingsMapFactory::GetForProfile(GetProfile());
1464 host_content_settings_map->SetWebsiteSettingDefaultScope( 1524 host_content_settings_map->SetWebsiteSettingDefaultScope(
1465 kOrigin1, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), 1525 kOrigin1, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(),
1466 base::MakeUnique<base::DictionaryValue>()); 1526 base::MakeUnique<base::DictionaryValue>());
1467 host_content_settings_map->SetWebsiteSettingDefaultScope( 1527 host_content_settings_map->SetWebsiteSettingDefaultScope(
1468 kOrigin2, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), 1528 kOrigin2, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(),
1469 base::MakeUnique<base::DictionaryValue>()); 1529 base::MakeUnique<base::DictionaryValue>());
1470 host_content_settings_map->SetWebsiteSettingDefaultScope( 1530 host_content_settings_map->SetWebsiteSettingDefaultScope(
1471 kOrigin3, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), 1531 kOrigin3, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(),
1472 base::MakeUnique<base::DictionaryValue>()); 1532 base::MakeUnique<base::DictionaryValue>());
1473 host_content_settings_map->SetWebsiteSettingDefaultScope( 1533 host_content_settings_map->SetWebsiteSettingDefaultScope(
1474 kOrigin4, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), 1534 kOrigin4, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(),
1475 base::MakeUnique<base::DictionaryValue>()); 1535 base::MakeUnique<base::DictionaryValue>());
1476 1536
1477 // Clear all except for origin1 and origin3. 1537 // Clear all except for origin1 and origin3.
1478 std::unique_ptr<BrowsingDataFilterBuilder> filter( 1538 std::unique_ptr<BrowsingDataFilterBuilder> filter(
1479 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST)); 1539 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST));
1480 filter->AddRegisterableDomain(kTestRegisterableDomain1); 1540 filter->AddRegisterableDomain(kTestRegisterableDomain1);
1481 filter->AddRegisterableDomain(kTestRegisterableDomain3); 1541 filter->AddRegisterableDomain(kTestRegisterableDomain3);
1482 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(), 1542 BlockUntilOriginDataRemoved(
1483 BrowsingDataRemover::REMOVE_SITE_USAGE_DATA, 1543 AnHourAgo(), base::Time::Max(),
1484 std::move(filter)); 1544 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_USAGE_DATA,
1545 std::move(filter));
1485 1546
1486 EXPECT_EQ(BrowsingDataRemover::REMOVE_SITE_USAGE_DATA, GetRemovalMask()); 1547 EXPECT_EQ(ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_USAGE_DATA,
1487 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); 1548 GetRemovalMask());
1549 EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
1550 GetOriginTypeMask());
1488 1551
1489 // Verify we only have true, and they're origin1, origin3, and origin4. 1552 // Verify we only have true, and they're origin1, origin3, and origin4.
1490 ContentSettingsForOneType host_settings; 1553 ContentSettingsForOneType host_settings;
1491 host_content_settings_map->GetSettingsForOneType( 1554 host_content_settings_map->GetSettingsForOneType(
1492 CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), &host_settings); 1555 CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), &host_settings);
1493 EXPECT_EQ(3u, host_settings.size()); 1556 EXPECT_EQ(3u, host_settings.size());
1494 EXPECT_EQ(ContentSettingsPattern::FromURLNoWildcard(kOrigin1), 1557 EXPECT_EQ(ContentSettingsPattern::FromURLNoWildcard(kOrigin1),
1495 host_settings[0].primary_pattern) 1558 host_settings[0].primary_pattern)
1496 << host_settings[0].primary_pattern.ToString(); 1559 << host_settings[0].primary_pattern.ToString();
1497 EXPECT_EQ(ContentSettingsPattern::FromURLNoWildcard(kOrigin4), 1560 EXPECT_EQ(ContentSettingsPattern::FromURLNoWildcard(kOrigin4),
(...skipping 13 matching lines...) Expand all
1511 durable_permission.UpdateContentSetting(kOrigin1, GURL(), 1574 durable_permission.UpdateContentSetting(kOrigin1, GURL(),
1512 CONTENT_SETTING_ALLOW); 1575 CONTENT_SETTING_ALLOW);
1513 durable_permission.UpdateContentSetting(kOrigin2, GURL(), 1576 durable_permission.UpdateContentSetting(kOrigin2, GURL(),
1514 CONTENT_SETTING_ALLOW); 1577 CONTENT_SETTING_ALLOW);
1515 1578
1516 // Clear all except for origin1 and origin3. 1579 // Clear all except for origin1 and origin3.
1517 std::unique_ptr<BrowsingDataFilterBuilder> filter( 1580 std::unique_ptr<BrowsingDataFilterBuilder> filter(
1518 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST)); 1581 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST));
1519 filter->AddRegisterableDomain(kTestRegisterableDomain1); 1582 filter->AddRegisterableDomain(kTestRegisterableDomain1);
1520 filter->AddRegisterableDomain(kTestRegisterableDomain3); 1583 filter->AddRegisterableDomain(kTestRegisterableDomain3);
1521 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(), 1584 BlockUntilOriginDataRemoved(
1522 BrowsingDataRemover::REMOVE_DURABLE_PERMISSION, 1585 AnHourAgo(), base::Time::Max(),
1523 std::move(filter)); 1586 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_DURABLE_PERMISSION,
1587 std::move(filter));
1524 1588
1525 EXPECT_EQ(BrowsingDataRemover::REMOVE_DURABLE_PERMISSION, GetRemovalMask()); 1589 EXPECT_EQ(ChromeBrowsingDataRemoverDelegate::DATA_TYPE_DURABLE_PERMISSION,
1526 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); 1590 GetRemovalMask());
1591 EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
1592 GetOriginTypeMask());
1527 1593
1528 // Verify we only have allow for the first origin. 1594 // Verify we only have allow for the first origin.
1529 ContentSettingsForOneType host_settings; 1595 ContentSettingsForOneType host_settings;
1530 host_content_settings_map->GetSettingsForOneType( 1596 host_content_settings_map->GetSettingsForOneType(
1531 CONTENT_SETTINGS_TYPE_DURABLE_STORAGE, std::string(), &host_settings); 1597 CONTENT_SETTINGS_TYPE_DURABLE_STORAGE, std::string(), &host_settings);
1532 1598
1533 ASSERT_EQ(2u, host_settings.size()); 1599 ASSERT_EQ(2u, host_settings.size());
1534 // Only the first should should have a setting. 1600 // Only the first should should have a setting.
1535 EXPECT_EQ(ContentSettingsPattern::FromURLNoWildcard(kOrigin1), 1601 EXPECT_EQ(ContentSettingsPattern::FromURLNoWildcard(kOrigin1),
1536 host_settings[0].primary_pattern) 1602 host_settings[0].primary_pattern)
(...skipping 19 matching lines...) Expand all
1556 1622
1557 net::HttpAuthCache* http_auth_cache = http_session->http_auth_cache(); 1623 net::HttpAuthCache* http_auth_cache = http_session->http_auth_cache();
1558 http_auth_cache->Add(kOrigin1, kTestRealm, net::HttpAuth::AUTH_SCHEME_BASIC, 1624 http_auth_cache->Add(kOrigin1, kTestRealm, net::HttpAuth::AUTH_SCHEME_BASIC,
1559 "test challenge", 1625 "test challenge",
1560 net::AuthCredentials(base::ASCIIToUTF16("foo"), 1626 net::AuthCredentials(base::ASCIIToUTF16("foo"),
1561 base::ASCIIToUTF16("bar")), 1627 base::ASCIIToUTF16("bar")),
1562 "/"); 1628 "/");
1563 CHECK(http_auth_cache->Lookup(kOrigin1, kTestRealm, 1629 CHECK(http_auth_cache->Lookup(kOrigin1, kTestRealm,
1564 net::HttpAuth::AUTH_SCHEME_BASIC)); 1630 net::HttpAuth::AUTH_SCHEME_BASIC));
1565 1631
1566 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1632 BlockUntilBrowsingDataRemoved(
1567 BrowsingDataRemover::REMOVE_PASSWORDS, false); 1633 base::Time(), base::Time::Max(),
1634 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS, false);
1568 1635
1569 EXPECT_EQ(nullptr, http_auth_cache->Lookup(kOrigin1, kTestRealm, 1636 EXPECT_EQ(nullptr, http_auth_cache->Lookup(kOrigin1, kTestRealm,
1570 net::HttpAuth::AUTH_SCHEME_BASIC)); 1637 net::HttpAuth::AUTH_SCHEME_BASIC));
1571 } 1638 }
1572 1639
1573 TEST_F(ChromeBrowsingDataRemoverDelegateTest, ClearPermissionPromptCounts) { 1640 TEST_F(ChromeBrowsingDataRemoverDelegateTest, ClearPermissionPromptCounts) {
1574 RemovePermissionPromptCountsTest tester(GetProfile()); 1641 RemovePermissionPromptCountsTest tester(GetProfile());
1575 1642
1576 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder_1( 1643 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder_1(
1577 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); 1644 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST));
(...skipping 21 matching lines...) Expand all
1599 CONTENT_SETTING_ASK); 1666 CONTENT_SETTING_ASK);
1600 EXPECT_FALSE(tester.RecordDismissAndEmbargo( 1667 EXPECT_FALSE(tester.RecordDismissAndEmbargo(
1601 kOrigin2, CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); 1668 kOrigin2, CONTENT_SETTINGS_TYPE_NOTIFICATIONS));
1602 EXPECT_FALSE(tester.RecordDismissAndEmbargo( 1669 EXPECT_FALSE(tester.RecordDismissAndEmbargo(
1603 kOrigin2, CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); 1670 kOrigin2, CONTENT_SETTINGS_TYPE_NOTIFICATIONS));
1604 EXPECT_TRUE(tester.RecordDismissAndEmbargo( 1671 EXPECT_TRUE(tester.RecordDismissAndEmbargo(
1605 kOrigin2, CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); 1672 kOrigin2, CONTENT_SETTINGS_TYPE_NOTIFICATIONS));
1606 tester.CheckEmbargo(kOrigin2, CONTENT_SETTINGS_TYPE_NOTIFICATIONS, 1673 tester.CheckEmbargo(kOrigin2, CONTENT_SETTINGS_TYPE_NOTIFICATIONS,
1607 CONTENT_SETTING_BLOCK); 1674 CONTENT_SETTING_BLOCK);
1608 1675
1609 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(), 1676 BlockUntilOriginDataRemoved(
1610 BrowsingDataRemover::REMOVE_SITE_USAGE_DATA, 1677 AnHourAgo(), base::Time::Max(),
1611 std::move(filter_builder_1)); 1678 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_USAGE_DATA,
1679 std::move(filter_builder_1));
1612 1680
1613 // kOrigin1 should be gone, but kOrigin2 remains. 1681 // kOrigin1 should be gone, but kOrigin2 remains.
1614 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, 1682 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1,
1615 CONTENT_SETTINGS_TYPE_GEOLOCATION)); 1683 CONTENT_SETTINGS_TYPE_GEOLOCATION));
1616 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, 1684 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1,
1617 CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); 1685 CONTENT_SETTINGS_TYPE_NOTIFICATIONS));
1618 EXPECT_EQ(0, tester.GetDismissCount(kOrigin1, 1686 EXPECT_EQ(0, tester.GetDismissCount(kOrigin1,
1619 CONTENT_SETTINGS_TYPE_MIDI_SYSEX)); 1687 CONTENT_SETTINGS_TYPE_MIDI_SYSEX));
1620 EXPECT_EQ(1, tester.GetIgnoreCount( 1688 EXPECT_EQ(1, tester.GetIgnoreCount(
1621 kOrigin2, CONTENT_SETTINGS_TYPE_DURABLE_STORAGE)); 1689 kOrigin2, CONTENT_SETTINGS_TYPE_DURABLE_STORAGE));
1622 EXPECT_EQ(3, tester.GetDismissCount(kOrigin2, 1690 EXPECT_EQ(3, tester.GetDismissCount(kOrigin2,
1623 CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); 1691 CONTENT_SETTINGS_TYPE_NOTIFICATIONS));
1624 tester.CheckEmbargo(kOrigin2, CONTENT_SETTINGS_TYPE_NOTIFICATIONS, 1692 tester.CheckEmbargo(kOrigin2, CONTENT_SETTINGS_TYPE_NOTIFICATIONS,
1625 CONTENT_SETTING_BLOCK); 1693 CONTENT_SETTING_BLOCK);
1626 1694
1627 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), 1695 BlockUntilBrowsingDataRemoved(
1628 BrowsingDataRemover::REMOVE_HISTORY, false); 1696 AnHourAgo(), base::Time::Max(),
1697 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, false);
1629 1698
1630 // Everything should be gone. 1699 // Everything should be gone.
1631 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, 1700 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1,
1632 CONTENT_SETTINGS_TYPE_GEOLOCATION)); 1701 CONTENT_SETTINGS_TYPE_GEOLOCATION));
1633 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, 1702 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1,
1634 CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); 1703 CONTENT_SETTINGS_TYPE_NOTIFICATIONS));
1635 EXPECT_EQ(0, tester.GetDismissCount(kOrigin1, 1704 EXPECT_EQ(0, tester.GetDismissCount(kOrigin1,
1636 CONTENT_SETTINGS_TYPE_MIDI_SYSEX)); 1705 CONTENT_SETTINGS_TYPE_MIDI_SYSEX));
1637 EXPECT_EQ(0, tester.GetIgnoreCount( 1706 EXPECT_EQ(0, tester.GetIgnoreCount(
1638 kOrigin2, CONTENT_SETTINGS_TYPE_DURABLE_STORAGE)); 1707 kOrigin2, CONTENT_SETTINGS_TYPE_DURABLE_STORAGE));
(...skipping 12 matching lines...) Expand all
1651 CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); 1720 CONTENT_SETTINGS_TYPE_NOTIFICATIONS));
1652 EXPECT_FALSE(tester.RecordDismissAndEmbargo( 1721 EXPECT_FALSE(tester.RecordDismissAndEmbargo(
1653 kOrigin1, CONTENT_SETTINGS_TYPE_MIDI_SYSEX)); 1722 kOrigin1, CONTENT_SETTINGS_TYPE_MIDI_SYSEX));
1654 tester.CheckEmbargo(kOrigin1, CONTENT_SETTINGS_TYPE_MIDI_SYSEX, 1723 tester.CheckEmbargo(kOrigin1, CONTENT_SETTINGS_TYPE_MIDI_SYSEX,
1655 CONTENT_SETTING_ASK); 1724 CONTENT_SETTING_ASK);
1656 EXPECT_EQ(1, tester.RecordIgnore(kOrigin2, 1725 EXPECT_EQ(1, tester.RecordIgnore(kOrigin2,
1657 CONTENT_SETTINGS_TYPE_DURABLE_STORAGE)); 1726 CONTENT_SETTINGS_TYPE_DURABLE_STORAGE));
1658 EXPECT_FALSE(tester.RecordDismissAndEmbargo( 1727 EXPECT_FALSE(tester.RecordDismissAndEmbargo(
1659 kOrigin2, CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); 1728 kOrigin2, CONTENT_SETTINGS_TYPE_NOTIFICATIONS));
1660 1729
1661 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(), 1730 BlockUntilOriginDataRemoved(
1662 BrowsingDataRemover::REMOVE_SITE_USAGE_DATA, 1731 AnHourAgo(), base::Time::Max(),
1663 std::move(filter_builder_2)); 1732 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_USAGE_DATA,
1733 std::move(filter_builder_2));
1664 1734
1665 // kOrigin2 should be gone, but kOrigin1 remains. 1735 // kOrigin2 should be gone, but kOrigin1 remains.
1666 EXPECT_EQ(2, tester.GetIgnoreCount(kOrigin1, 1736 EXPECT_EQ(2, tester.GetIgnoreCount(kOrigin1,
1667 CONTENT_SETTINGS_TYPE_GEOLOCATION)); 1737 CONTENT_SETTINGS_TYPE_GEOLOCATION));
1668 EXPECT_EQ(1, tester.GetIgnoreCount(kOrigin1, 1738 EXPECT_EQ(1, tester.GetIgnoreCount(kOrigin1,
1669 CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); 1739 CONTENT_SETTINGS_TYPE_NOTIFICATIONS));
1670 EXPECT_EQ(1, tester.GetDismissCount(kOrigin1, 1740 EXPECT_EQ(1, tester.GetDismissCount(kOrigin1,
1671 CONTENT_SETTINGS_TYPE_MIDI_SYSEX)); 1741 CONTENT_SETTINGS_TYPE_MIDI_SYSEX));
1672 EXPECT_EQ(0, tester.GetIgnoreCount( 1742 EXPECT_EQ(0, tester.GetIgnoreCount(
1673 kOrigin2, CONTENT_SETTINGS_TYPE_DURABLE_STORAGE)); 1743 kOrigin2, CONTENT_SETTINGS_TYPE_DURABLE_STORAGE));
1674 EXPECT_EQ(0, tester.GetDismissCount( 1744 EXPECT_EQ(0, tester.GetDismissCount(
1675 kOrigin2, CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); 1745 kOrigin2, CONTENT_SETTINGS_TYPE_NOTIFICATIONS));
1676 1746
1677 EXPECT_FALSE(tester.RecordDismissAndEmbargo( 1747 EXPECT_FALSE(tester.RecordDismissAndEmbargo(
1678 kOrigin1, CONTENT_SETTINGS_TYPE_MIDI_SYSEX)); 1748 kOrigin1, CONTENT_SETTINGS_TYPE_MIDI_SYSEX));
1679 EXPECT_TRUE(tester.RecordDismissAndEmbargo( 1749 EXPECT_TRUE(tester.RecordDismissAndEmbargo(
1680 kOrigin1, CONTENT_SETTINGS_TYPE_MIDI_SYSEX)); 1750 kOrigin1, CONTENT_SETTINGS_TYPE_MIDI_SYSEX));
1681 EXPECT_EQ( 1751 EXPECT_EQ(
1682 3, tester.GetDismissCount(kOrigin1, CONTENT_SETTINGS_TYPE_MIDI_SYSEX)); 1752 3, tester.GetDismissCount(kOrigin1, CONTENT_SETTINGS_TYPE_MIDI_SYSEX));
1683 tester.CheckEmbargo(kOrigin1, CONTENT_SETTINGS_TYPE_MIDI_SYSEX, 1753 tester.CheckEmbargo(kOrigin1, CONTENT_SETTINGS_TYPE_MIDI_SYSEX,
1684 CONTENT_SETTING_BLOCK); 1754 CONTENT_SETTING_BLOCK);
1685 1755
1686 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), 1756 BlockUntilBrowsingDataRemoved(
1687 BrowsingDataRemover::REMOVE_SITE_USAGE_DATA, 1757 AnHourAgo(), base::Time::Max(),
1688 false); 1758 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_USAGE_DATA, false);
1689 1759
1690 // Everything should be gone. 1760 // Everything should be gone.
1691 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, 1761 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1,
1692 CONTENT_SETTINGS_TYPE_GEOLOCATION)); 1762 CONTENT_SETTINGS_TYPE_GEOLOCATION));
1693 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, 1763 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1,
1694 CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); 1764 CONTENT_SETTINGS_TYPE_NOTIFICATIONS));
1695 EXPECT_EQ(0, tester.GetDismissCount(kOrigin1, 1765 EXPECT_EQ(0, tester.GetDismissCount(kOrigin1,
1696 CONTENT_SETTINGS_TYPE_MIDI_SYSEX)); 1766 CONTENT_SETTINGS_TYPE_MIDI_SYSEX));
1697 EXPECT_EQ(0, tester.GetIgnoreCount( 1767 EXPECT_EQ(0, tester.GetIgnoreCount(
1698 kOrigin2, CONTENT_SETTINGS_TYPE_DURABLE_STORAGE)); 1768 kOrigin2, CONTENT_SETTINGS_TYPE_DURABLE_STORAGE));
(...skipping 13 matching lines...) Expand all
1712 tester.AddDomain(kOrigin3.host()); 1782 tester.AddDomain(kOrigin3.host());
1713 1783
1714 std::vector<std::string> expected = { 1784 std::vector<std::string> expected = {
1715 kOrigin1.host(), kOrigin2.host(), kOrigin3.host() }; 1785 kOrigin1.host(), kOrigin2.host(), kOrigin3.host() };
1716 EXPECT_EQ(expected, tester.GetDomains()); 1786 EXPECT_EQ(expected, tester.GetDomains());
1717 1787
1718 // Delete data with a filter for the registrable domain of |kOrigin3|. 1788 // Delete data with a filter for the registrable domain of |kOrigin3|.
1719 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder( 1789 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder(
1720 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST)); 1790 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST));
1721 filter_builder->AddRegisterableDomain(kTestRegisterableDomain3); 1791 filter_builder->AddRegisterableDomain(kTestRegisterableDomain3);
1722 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), 1792 BlockUntilOriginDataRemoved(
1723 BrowsingDataRemover::REMOVE_PLUGIN_DATA, 1793 base::Time(), base::Time::Max(),
1724 std::move(filter_builder)); 1794 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA,
1795 std::move(filter_builder));
1725 1796
1726 // Plugin data for |kOrigin3.host()| should have been removed. 1797 // Plugin data for |kOrigin3.host()| should have been removed.
1727 expected.pop_back(); 1798 expected.pop_back();
1728 EXPECT_EQ(expected, tester.GetDomains()); 1799 EXPECT_EQ(expected, tester.GetDomains());
1729 1800
1730 // TODO(msramek): Mock PluginDataRemover and test the complete deletion 1801 // TODO(msramek): Mock PluginDataRemover and test the complete deletion
1731 // of plugin data as well. 1802 // of plugin data as well.
1732 } 1803 }
1733 #endif 1804 #endif
1734 1805
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
1777 bookmark_model, 2, base::Time::UnixEpoch(), 1848 bookmark_model, 2, base::Time::UnixEpoch(),
1778 /*consider_visits_from_desktop=*/false), 1849 /*consider_visits_from_desktop=*/false),
1779 Not(IsEmpty())); 1850 Not(IsEmpty()));
1780 1851
1781 // Inject the bookmark model into the remover. 1852 // Inject the bookmark model into the remover.
1782 BrowsingDataRemover* remover = 1853 BrowsingDataRemover* remover =
1783 BrowsingDataRemoverFactory::GetForBrowserContext(&profile); 1854 BrowsingDataRemoverFactory::GetForBrowserContext(&profile);
1784 1855
1785 BrowsingDataRemoverCompletionObserver completion_observer(remover); 1856 BrowsingDataRemoverCompletionObserver completion_observer(remover);
1786 remover->RemoveAndReply(delete_begin, base::Time::Max(), 1857 remover->RemoveAndReply(delete_begin, base::Time::Max(),
1787 BrowsingDataRemover::REMOVE_HISTORY, 1858 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY,
1788 BrowsingDataHelper::ALL, &completion_observer); 1859 ChromeBrowsingDataRemoverDelegate::ALL_ORIGIN_TYPES,
1860 &completion_observer);
1789 completion_observer.BlockUntilCompletion(); 1861 completion_observer.BlockUntilCompletion();
1790 1862
1791 // There should be only 1 recently visited bookmarks. 1863 // There should be only 1 recently visited bookmarks.
1792 std::vector<const bookmarks::BookmarkNode*> remaining_nodes = 1864 std::vector<const bookmarks::BookmarkNode*> remaining_nodes =
1793 ntp_snippets::GetRecentlyVisitedBookmarks( 1865 ntp_snippets::GetRecentlyVisitedBookmarks(
1794 bookmark_model, 3, base::Time::UnixEpoch(), 1866 bookmark_model, 3, base::Time::UnixEpoch(),
1795 /*consider_visits_from_desktop=*/true); 1867 /*consider_visits_from_desktop=*/true);
1796 EXPECT_THAT(remaining_nodes, SizeIs(1)); 1868 EXPECT_THAT(remaining_nodes, SizeIs(1));
1797 EXPECT_THAT(remaining_nodes[0]->url().spec(), Eq("http://foo-2.org/")); 1869 EXPECT_THAT(remaining_nodes[0]->url().spec(), Eq("http://foo-2.org/"));
1798 } 1870 }
1799 1871
1800 // Test that the remover clears language model data (normally added by the 1872 // Test that the remover clears language model data (normally added by the
1801 // ChromeTranslateClient). 1873 // ChromeTranslateClient).
1802 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 1874 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
1803 LanguageModelClearedOnClearingCompleteHistory) { 1875 LanguageModelClearedOnClearingCompleteHistory) {
1804 translate::LanguageModel* language_model = 1876 translate::LanguageModel* language_model =
1805 LanguageModelFactory::GetInstance()->GetForBrowserContext(GetProfile()); 1877 LanguageModelFactory::GetInstance()->GetForBrowserContext(GetProfile());
1806 1878
1807 // Simulate browsing. 1879 // Simulate browsing.
1808 for (int i = 0; i < 100; i++) { 1880 for (int i = 0; i < 100; i++) {
1809 language_model->OnPageVisited("en"); 1881 language_model->OnPageVisited("en");
1810 language_model->OnPageVisited("en"); 1882 language_model->OnPageVisited("en");
1811 language_model->OnPageVisited("en"); 1883 language_model->OnPageVisited("en");
1812 language_model->OnPageVisited("es"); 1884 language_model->OnPageVisited("es");
1813 } 1885 }
1814 1886
1815 // Clearing a part of the history has no effect. 1887 // Clearing a part of the history has no effect.
1816 BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), 1888 BlockUntilBrowsingDataRemoved(
1817 BrowsingDataRemover::REMOVE_HISTORY, false); 1889 AnHourAgo(), base::Time::Max(),
1890 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, false);
1818 1891
1819 EXPECT_THAT(language_model->GetTopLanguages(), SizeIs(2)); 1892 EXPECT_THAT(language_model->GetTopLanguages(), SizeIs(2));
1820 EXPECT_THAT(language_model->GetLanguageFrequency("en"), FloatEq(0.75)); 1893 EXPECT_THAT(language_model->GetLanguageFrequency("en"), FloatEq(0.75));
1821 EXPECT_THAT(language_model->GetLanguageFrequency("es"), FloatEq(0.25)); 1894 EXPECT_THAT(language_model->GetLanguageFrequency("es"), FloatEq(0.25));
1822 1895
1823 // Clearing the full history does the trick. 1896 // Clearing the full history does the trick.
1824 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1897 BlockUntilBrowsingDataRemoved(
1825 BrowsingDataRemover::REMOVE_HISTORY, false); 1898 base::Time(), base::Time::Max(),
1899 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, false);
1826 1900
1827 EXPECT_THAT(language_model->GetTopLanguages(), SizeIs(0)); 1901 EXPECT_THAT(language_model->GetTopLanguages(), SizeIs(0));
1828 EXPECT_THAT(language_model->GetLanguageFrequency("en"), FloatEq(0.0)); 1902 EXPECT_THAT(language_model->GetLanguageFrequency("en"), FloatEq(0.0));
1829 EXPECT_THAT(language_model->GetLanguageFrequency("es"), FloatEq(0.0)); 1903 EXPECT_THAT(language_model->GetLanguageFrequency("es"), FloatEq(0.0));
1830 } 1904 }
1905
1906 #if BUILDFLAG(ENABLE_EXTENSIONS)
1907 TEST_F(ChromeBrowsingDataRemoverDelegateTest, OriginTypeMasks) {
1908 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy =
1909 new MockExtensionSpecialStoragePolicy;
1910 // Protect kOrigin1.
1911 mock_policy->AddProtected(kOrigin1.GetOrigin());
1912
1913 EXPECT_FALSE(Match(kOrigin1, kUnprotected, mock_policy.get()));
1914 EXPECT_TRUE(Match(kOrigin2, kUnprotected, mock_policy.get()));
1915 EXPECT_FALSE(Match(kOriginExt, kUnprotected, mock_policy.get()));
1916 EXPECT_FALSE(Match(kOriginDevTools, kUnprotected, mock_policy.get()));
1917
1918 EXPECT_TRUE(Match(kOrigin1, kProtected, mock_policy.get()));
1919 EXPECT_FALSE(Match(kOrigin2, kProtected, mock_policy.get()));
1920 EXPECT_FALSE(Match(kOriginExt, kProtected, mock_policy.get()));
1921 EXPECT_FALSE(Match(kOriginDevTools, kProtected, mock_policy.get()));
1922
1923 EXPECT_FALSE(Match(kOrigin1, kExtension, mock_policy.get()));
1924 EXPECT_FALSE(Match(kOrigin2, kExtension, mock_policy.get()));
1925 EXPECT_TRUE(Match(kOriginExt, kExtension, mock_policy.get()));
1926 EXPECT_FALSE(Match(kOriginDevTools, kExtension, mock_policy.get()));
1927
1928 EXPECT_TRUE(Match(kOrigin1, kUnprotected | kProtected, mock_policy.get()));
1929 EXPECT_TRUE(Match(kOrigin2, kUnprotected | kProtected, mock_policy.get()));
1930 EXPECT_FALSE(Match(kOriginExt, kUnprotected | kProtected, mock_policy.get()));
1931 EXPECT_FALSE(
1932 Match(kOriginDevTools, kUnprotected | kProtected, mock_policy.get()));
1933
1934 EXPECT_FALSE(Match(kOrigin1, kUnprotected | kExtension, mock_policy.get()));
1935 EXPECT_TRUE(Match(kOrigin2, kUnprotected | kExtension, mock_policy.get()));
1936 EXPECT_TRUE(Match(kOriginExt, kUnprotected | kExtension, mock_policy.get()));
1937 EXPECT_FALSE(
1938 Match(kOriginDevTools, kUnprotected | kExtension, mock_policy.get()));
1939
1940 EXPECT_TRUE(Match(kOrigin1, kProtected | kExtension, mock_policy.get()));
1941 EXPECT_FALSE(Match(kOrigin2, kProtected | kExtension, mock_policy.get()));
1942 EXPECT_TRUE(Match(kOriginExt, kProtected | kExtension, mock_policy.get()));
1943 EXPECT_FALSE(
1944 Match(kOriginDevTools, kProtected | kExtension, mock_policy.get()));
1945
1946 EXPECT_TRUE(Match(kOrigin1, kUnprotected | kProtected | kExtension,
1947 mock_policy.get()));
1948 EXPECT_TRUE(Match(kOrigin2, kUnprotected | kProtected | kExtension,
1949 mock_policy.get()));
1950 EXPECT_TRUE(Match(kOriginExt, kUnprotected | kProtected | kExtension,
1951 mock_policy.get()));
1952 EXPECT_FALSE(Match(kOriginDevTools, kUnprotected | kProtected | kExtension,
1953 mock_policy.get()));
1954 }
1955 #endif
1956
1957 // If extensions are disabled, there is no policy.
1958 TEST_F(ChromeBrowsingDataRemoverDelegateTest, OriginTypeMasksNoPolicy) {
1959 EXPECT_TRUE(Match(kOrigin1, kUnprotected, nullptr));
1960 EXPECT_FALSE(Match(kOriginExt, kUnprotected, nullptr));
1961 EXPECT_FALSE(Match(kOriginDevTools, kUnprotected, nullptr));
1962
1963 EXPECT_FALSE(Match(kOrigin1, kProtected, nullptr));
1964 EXPECT_FALSE(Match(kOriginExt, kProtected, nullptr));
1965 EXPECT_FALSE(Match(kOriginDevTools, kProtected, nullptr));
1966
1967 #if BUILDFLAG(ENABLE_EXTENSIONS)
1968 EXPECT_FALSE(Match(kOrigin1, kExtension, nullptr));
1969 EXPECT_TRUE(Match(kOriginExt, kExtension, nullptr));
1970 EXPECT_FALSE(Match(kOriginDevTools, kExtension, nullptr));
1971 #endif
1972 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698