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

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

Powered by Google App Engine
This is Rietveld 408576698