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

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

Issue 2647683002: Consolidate Origin- and RegistrableDomain- FilterBuilder into one class (Closed)
Patch Set: Fix memory leak. Created 3 years, 11 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"
11 #include "chrome/browser/autofill/personal_data_manager_factory.h" 11 #include "chrome/browser/autofill/personal_data_manager_factory.h"
12 #include "chrome/browser/bookmarks/bookmark_model_factory.h" 12 #include "chrome/browser/bookmarks/bookmark_model_factory.h"
13 #include "chrome/browser/browsing_data/browsing_data_filter_builder.h"
13 #include "chrome/browser/browsing_data/browsing_data_helper.h" 14 #include "chrome/browser/browsing_data/browsing_data_helper.h"
14 #include "chrome/browser/browsing_data/browsing_data_remover.h" 15 #include "chrome/browser/browsing_data/browsing_data_remover.h"
15 #include "chrome/browser/browsing_data/browsing_data_remover_factory.h" 16 #include "chrome/browser/browsing_data/browsing_data_remover_factory.h"
16 #include "chrome/browser/browsing_data/browsing_data_remover_impl.h" 17 #include "chrome/browser/browsing_data/browsing_data_remover_impl.h"
17 #include "chrome/browser/browsing_data/browsing_data_remover_test_util.h" 18 #include "chrome/browser/browsing_data/browsing_data_remover_test_util.h"
18 #include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h" 19 #include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h"
19 #include "chrome/browser/browsing_data/registrable_domain_filter_builder.h"
20 #include "chrome/browser/content_settings/host_content_settings_map_factory.h" 20 #include "chrome/browser/content_settings/host_content_settings_map_factory.h"
21 #include "chrome/browser/domain_reliability/service_factory.h" 21 #include "chrome/browser/domain_reliability/service_factory.h"
22 #include "chrome/browser/download/chrome_download_manager_delegate.h" 22 #include "chrome/browser/download/chrome_download_manager_delegate.h"
23 #include "chrome/browser/favicon/favicon_service_factory.h" 23 #include "chrome/browser/favicon/favicon_service_factory.h"
24 #include "chrome/browser/history/history_service_factory.h" 24 #include "chrome/browser/history/history_service_factory.h"
25 #include "chrome/browser/password_manager/password_store_factory.h" 25 #include "chrome/browser/password_manager/password_store_factory.h"
26 #include "chrome/browser/permissions/permission_decision_auto_blocker.h" 26 #include "chrome/browser/permissions/permission_decision_auto_blocker.h"
27 #include "chrome/browser/safe_browsing/safe_browsing_service.h" 27 #include "chrome/browser/safe_browsing/safe_browsing_service.h"
28 #include "chrome/browser/storage/durable_storage_permission_context.h" 28 #include "chrome/browser/storage/durable_storage_permission_context.h"
29 #include "chrome/common/pref_names.h" 29 #include "chrome/common/pref_names.h"
(...skipping 826 matching lines...) Expand 10 before | Expand all | Expand 10 after
856 remover_->RemoveAndReply( 856 remover_->RemoveAndReply(
857 delete_begin, delete_end, remove_mask, origin_type_mask, 857 delete_begin, delete_end, remove_mask, origin_type_mask,
858 &completion_observer); 858 &completion_observer);
859 completion_observer.BlockUntilCompletion(); 859 completion_observer.BlockUntilCompletion();
860 } 860 }
861 861
862 void BlockUntilOriginDataRemoved( 862 void BlockUntilOriginDataRemoved(
863 const base::Time& delete_begin, 863 const base::Time& delete_begin,
864 const base::Time& delete_end, 864 const base::Time& delete_end,
865 int remove_mask, 865 int remove_mask,
866 const BrowsingDataFilterBuilder& filter_builder) { 866 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder) {
867 BrowsingDataRemoverCompletionInhibitor completion_inhibitor; 867 BrowsingDataRemoverCompletionObserver completion_observer(remover_);
868
869 // TODO(crbug.com/668114): ChromeBrowsingDataRemoverTest should not know
870 // about BrowsingDataRemoverImpl. We will be able to remove this cast once
871 // BrowsingDataFilterBuilder is copyable and comparable.
872 static_cast<BrowsingDataRemoverImpl*>(remover_) 868 static_cast<BrowsingDataRemoverImpl*>(remover_)
873 ->RemoveImpl(delete_begin, delete_end, remove_mask, filter_builder, 869 ->RemoveWithFilterAndReply(delete_begin, delete_end, remove_mask,
874 BrowsingDataHelper::UNPROTECTED_WEB); 870 BrowsingDataHelper::UNPROTECTED_WEB,
875 completion_inhibitor.BlockUntilNearCompletion(); 871 std::move(filter_builder),
876 completion_inhibitor.ContinueToCompletion(); 872 &completion_observer);
873 completion_observer.BlockUntilCompletion();
877 } 874 }
878 875
879 const base::Time& GetBeginTime() { 876 const base::Time& GetBeginTime() {
880 return remover_->GetLastUsedBeginTime(); 877 return remover_->GetLastUsedBeginTime();
881 } 878 }
882 879
883 int GetRemovalMask() { 880 int GetRemovalMask() {
884 return remover_->GetLastUsedRemovalMask(); 881 return remover_->GetLastUsedRemovalMask();
885 } 882 }
886 883
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
939 // browsing cookies. 936 // browsing cookies.
940 EXPECT_TRUE(tester.ContainsCookie()); 937 EXPECT_TRUE(tester.ContainsCookie());
941 } 938 }
942 939
943 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 940 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
944 RemoveSafeBrowsingCookieForeverWithPredicate) { 941 RemoveSafeBrowsingCookieForeverWithPredicate) {
945 RemoveSafeBrowsingCookieTester tester; 942 RemoveSafeBrowsingCookieTester tester;
946 943
947 tester.AddCookie(); 944 tester.AddCookie();
948 ASSERT_TRUE(tester.ContainsCookie()); 945 ASSERT_TRUE(tester.ContainsCookie());
949 RegistrableDomainFilterBuilder filter( 946 std::unique_ptr<BrowsingDataFilterBuilder> filter(
950 RegistrableDomainFilterBuilder::BLACKLIST); 947 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST));
951 filter.AddRegisterableDomain(kTestRegisterableDomain1); 948 filter->AddRegisterableDomain(kTestRegisterableDomain1);
952 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), 949 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(),
953 BrowsingDataRemover::REMOVE_COOKIES, filter); 950 BrowsingDataRemover::REMOVE_COOKIES,
951 std::move(filter));
954 952
955 EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask()); 953 EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask());
956 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); 954 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
957 EXPECT_TRUE(tester.ContainsCookie()); 955 EXPECT_TRUE(tester.ContainsCookie());
958 956
959 RegistrableDomainFilterBuilder filter2( 957 std::unique_ptr<BrowsingDataFilterBuilder> filter2(
960 RegistrableDomainFilterBuilder::WHITELIST); 958 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST));
961 filter2.AddRegisterableDomain(kTestRegisterableDomain1); 959 filter2->AddRegisterableDomain(kTestRegisterableDomain1);
962 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), 960 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(),
963 BrowsingDataRemover::REMOVE_COOKIES, filter2); 961 BrowsingDataRemover::REMOVE_COOKIES,
962 std::move(filter2));
964 EXPECT_FALSE(tester.ContainsCookie()); 963 EXPECT_FALSE(tester.ContainsCookie());
965 } 964 }
966 965
967 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveHistoryForever) { 966 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemoveHistoryForever) {
968 RemoveHistoryTester tester; 967 RemoveHistoryTester tester;
969 ASSERT_TRUE(tester.Init(GetProfile())); 968 ASSERT_TRUE(tester.Init(GetProfile()));
970 969
971 tester.AddHistory(kOrigin1, base::Time::Now()); 970 tester.AddHistory(kOrigin1, base::Time::Now());
972 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1)); 971 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1));
973 972
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
1093 ASSERT_TRUE(favicon_tester.Init(GetProfile())); 1092 ASSERT_TRUE(favicon_tester.Init(GetProfile()));
1094 favicon_tester.VisitAndAddFavicon(bookmarked_page); 1093 favicon_tester.VisitAndAddFavicon(bookmarked_page);
1095 ASSERT_TRUE(favicon_tester.HasFaviconForPageURL(bookmarked_page)); 1094 ASSERT_TRUE(favicon_tester.HasFaviconForPageURL(bookmarked_page));
1096 1095
1097 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1096 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
1098 BrowsingDataRemover::REMOVE_HISTORY, false); 1097 BrowsingDataRemover::REMOVE_HISTORY, false);
1099 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); 1098 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask());
1100 EXPECT_TRUE(favicon_tester.HasExpiredFaviconForPageURL(bookmarked_page)); 1099 EXPECT_TRUE(favicon_tester.HasExpiredFaviconForPageURL(bookmarked_page));
1101 } 1100 }
1102 1101
1103 TEST_F(ChromeBrowsingDataRemoverDelegateTest, TimeBasedHistoryRemoval) { 1102 // Disabled, since history is not yet marked as a filterable datatype.
1103 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
1104 DISABLED_TimeBasedHistoryRemoval) {
1104 RemoveHistoryTester tester; 1105 RemoveHistoryTester tester;
1105 ASSERT_TRUE(tester.Init(GetProfile())); 1106 ASSERT_TRUE(tester.Init(GetProfile()));
1106 1107
1107 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2); 1108 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2);
1108 1109
1109 tester.AddHistory(kOrigin1, base::Time::Now()); 1110 tester.AddHistory(kOrigin1, base::Time::Now());
1110 tester.AddHistory(kOrigin2, two_hours_ago); 1111 tester.AddHistory(kOrigin2, two_hours_ago);
1111 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1)); 1112 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1));
1112 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin2)); 1113 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin2));
1113 1114
1114 RegistrableDomainFilterBuilder builder( 1115 std::unique_ptr<BrowsingDataFilterBuilder> builder(
1115 RegistrableDomainFilterBuilder::BLACKLIST); 1116 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST));
1116 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(), 1117 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(),
1117 BrowsingDataRemover::REMOVE_HISTORY, builder); 1118 BrowsingDataRemover::REMOVE_HISTORY,
1119 std::move(builder));
1118 1120
1119 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); 1121 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask());
1120 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); 1122 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
1121 EXPECT_FALSE(tester.HistoryContainsURL(kOrigin1)); 1123 EXPECT_FALSE(tester.HistoryContainsURL(kOrigin1));
1122 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin2)); 1124 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin2));
1123 } 1125 }
1124 1126
1125 // Verify that clearing autofill form data works. 1127 // Verify that clearing autofill form data works.
1126 TEST_F(ChromeBrowsingDataRemoverDelegateTest, AutofillRemovalLastHour) { 1128 TEST_F(ChromeBrowsingDataRemoverDelegateTest, AutofillRemovalLastHour) {
1127 GetProfile()->CreateWebDataService(); 1129 GetProfile()->CreateWebDataService();
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
1232 clear_domain_reliability_tester(); 1234 clear_domain_reliability_tester();
1233 1235
1234 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1236 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
1235 BrowsingDataRemover::REMOVE_HISTORY, false); 1237 BrowsingDataRemover::REMOVE_HISTORY, false);
1236 EXPECT_EQ(1u, tester.clear_count()); 1238 EXPECT_EQ(1u, tester.clear_count());
1237 EXPECT_EQ(CLEAR_BEACONS, tester.last_clear_mode()); 1239 EXPECT_EQ(CLEAR_BEACONS, tester.last_clear_mode());
1238 EXPECT_TRUE(ProbablySameFilters( 1240 EXPECT_TRUE(ProbablySameFilters(
1239 BrowsingDataFilterBuilder::BuildNoopFilter(), tester.last_filter())); 1241 BrowsingDataFilterBuilder::BuildNoopFilter(), tester.last_filter()));
1240 } 1242 }
1241 1243
1244 // Disabled, since history is not yet marked as a filterable datatype.
1242 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 1245 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
1243 DomainReliability_Beacons_WithFilter) { 1246 DISABLED_DomainReliability_Beacons_WithFilter) {
1244 const ClearDomainReliabilityTester& tester = 1247 const ClearDomainReliabilityTester& tester =
1245 clear_domain_reliability_tester(); 1248 clear_domain_reliability_tester();
1246 1249
1247 RegistrableDomainFilterBuilder builder( 1250 std::unique_ptr<BrowsingDataFilterBuilder> builder(
1248 RegistrableDomainFilterBuilder::WHITELIST); 1251 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST));
1249 builder.AddRegisterableDomain(kTestRegisterableDomain1); 1252 builder->AddRegisterableDomain(kTestRegisterableDomain1);
1250 1253
1251 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), 1254 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(),
1252 BrowsingDataRemover::REMOVE_HISTORY, builder); 1255 BrowsingDataRemover::REMOVE_HISTORY,
1256 builder->Copy());
1253 EXPECT_EQ(1u, tester.clear_count()); 1257 EXPECT_EQ(1u, tester.clear_count());
1254 EXPECT_EQ(CLEAR_BEACONS, tester.last_clear_mode()); 1258 EXPECT_EQ(CLEAR_BEACONS, tester.last_clear_mode());
1255 EXPECT_TRUE(ProbablySameFilters( 1259 EXPECT_TRUE(ProbablySameFilters(
1256 builder.BuildGeneralFilter(), tester.last_filter())); 1260 builder->BuildGeneralFilter(), tester.last_filter()));
1257 } 1261 }
1258 1262
1259 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DomainReliability_Contexts) { 1263 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DomainReliability_Contexts) {
1260 const ClearDomainReliabilityTester& tester = 1264 const ClearDomainReliabilityTester& tester =
1261 clear_domain_reliability_tester(); 1265 clear_domain_reliability_tester();
1262 1266
1263 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1267 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
1264 BrowsingDataRemover::REMOVE_COOKIES, false); 1268 BrowsingDataRemover::REMOVE_COOKIES, false);
1265 EXPECT_EQ(1u, tester.clear_count()); 1269 EXPECT_EQ(1u, tester.clear_count());
1266 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode()); 1270 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode());
1267 EXPECT_TRUE(ProbablySameFilters( 1271 EXPECT_TRUE(ProbablySameFilters(
1268 BrowsingDataFilterBuilder::BuildNoopFilter(), tester.last_filter())); 1272 BrowsingDataFilterBuilder::BuildNoopFilter(), tester.last_filter()));
1269 } 1273 }
1270 1274
1271 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 1275 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
1272 DomainReliability_Contexts_WithFilter) { 1276 DomainReliability_Contexts_WithFilter) {
1273 const ClearDomainReliabilityTester& tester = 1277 const ClearDomainReliabilityTester& tester =
1274 clear_domain_reliability_tester(); 1278 clear_domain_reliability_tester();
1275 1279
1276 RegistrableDomainFilterBuilder builder( 1280 std::unique_ptr<BrowsingDataFilterBuilder> builder(
1277 RegistrableDomainFilterBuilder::WHITELIST); 1281 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST));
1278 builder.AddRegisterableDomain(kTestRegisterableDomain1); 1282 builder->AddRegisterableDomain(kTestRegisterableDomain1);
1279 1283
1280 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), 1284 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(),
1281 BrowsingDataRemover::REMOVE_COOKIES, builder); 1285 BrowsingDataRemover::REMOVE_COOKIES,
1286 builder->Copy());
1282 EXPECT_EQ(1u, tester.clear_count()); 1287 EXPECT_EQ(1u, tester.clear_count());
1283 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode()); 1288 EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode());
1284 EXPECT_TRUE(ProbablySameFilters( 1289 EXPECT_TRUE(ProbablySameFilters(
1285 builder.BuildGeneralFilter(), tester.last_filter())); 1290 builder->BuildGeneralFilter(), tester.last_filter()));
1286 } 1291 }
1287 1292
1288 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DomainReliability_ContextsWin) { 1293 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DomainReliability_ContextsWin) {
1289 const ClearDomainReliabilityTester& tester = 1294 const ClearDomainReliabilityTester& tester =
1290 clear_domain_reliability_tester(); 1295 clear_domain_reliability_tester();
1291 1296
1292 BlockUntilBrowsingDataRemoved( 1297 BlockUntilBrowsingDataRemoved(
1293 base::Time(), base::Time::Max(), 1298 base::Time(), base::Time::Max(),
1294 BrowsingDataRemover::REMOVE_HISTORY | BrowsingDataRemover::REMOVE_COOKIES, 1299 BrowsingDataRemover::REMOVE_HISTORY | BrowsingDataRemover::REMOVE_COOKIES,
1295 false); 1300 false);
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
1336 RemovePasswordsTester tester(GetProfile()); 1341 RemovePasswordsTester tester(GetProfile());
1337 base::Callback<bool(const GURL&)> empty_filter; 1342 base::Callback<bool(const GURL&)> empty_filter;
1338 1343
1339 EXPECT_CALL(*tester.store(), RemoveStatisticsByOriginAndTimeImpl( 1344 EXPECT_CALL(*tester.store(), RemoveStatisticsByOriginAndTimeImpl(
1340 ProbablySameFilter(empty_filter), 1345 ProbablySameFilter(empty_filter),
1341 base::Time(), base::Time::Max())); 1346 base::Time(), base::Time::Max()));
1342 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1347 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
1343 BrowsingDataRemover::REMOVE_HISTORY, false); 1348 BrowsingDataRemover::REMOVE_HISTORY, false);
1344 } 1349 }
1345 1350
1351 // Disabled, since history is not yet marked as a filterable datatype.
Mike West 2017/01/24 08:37:27 Please add a TODO pointing to the bug.
msramek 2017/01/24 11:52:31 Done.
1346 TEST_F(ChromeBrowsingDataRemoverDelegateTest, 1352 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
1347 RemovePasswordStatisticsByOrigin) { 1353 DISABLED_RemovePasswordStatisticsByOrigin) {
1348 RemovePasswordsTester tester(GetProfile()); 1354 RemovePasswordsTester tester(GetProfile());
1349 1355
1350 RegistrableDomainFilterBuilder builder( 1356 std::unique_ptr<BrowsingDataFilterBuilder> builder(
1351 RegistrableDomainFilterBuilder::WHITELIST); 1357 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST));
1352 builder.AddRegisterableDomain(kTestRegisterableDomain1); 1358 builder->AddRegisterableDomain(kTestRegisterableDomain1);
1353 base::Callback<bool(const GURL&)> filter = builder.BuildGeneralFilter(); 1359 base::Callback<bool(const GURL&)> filter = builder->BuildGeneralFilter();
1354 1360
1355 EXPECT_CALL(*tester.store(), 1361 EXPECT_CALL(*tester.store(),
1356 RemoveStatisticsByOriginAndTimeImpl( 1362 RemoveStatisticsByOriginAndTimeImpl(
1357 ProbablySameFilter(filter), base::Time(), base::Time::Max())); 1363 ProbablySameFilter(filter), base::Time(), base::Time::Max()));
1358 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), 1364 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(),
1359 BrowsingDataRemover::REMOVE_HISTORY, builder); 1365 BrowsingDataRemover::REMOVE_HISTORY,
1366 std::move(builder));
1360 } 1367 }
1361 1368
1362 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemovePasswordsByTimeOnly) { 1369 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemovePasswordsByTimeOnly) {
1363 RemovePasswordsTester tester(GetProfile()); 1370 RemovePasswordsTester tester(GetProfile());
1364 base::Callback<bool(const GURL&)> filter = 1371 base::Callback<bool(const GURL&)> filter =
1365 BrowsingDataFilterBuilder::BuildNoopFilter(); 1372 BrowsingDataFilterBuilder::BuildNoopFilter();
1366 1373
1367 EXPECT_CALL(*tester.store(), 1374 EXPECT_CALL(*tester.store(),
1368 RemoveLoginsByURLAndTimeImpl(ProbablySameFilter(filter), _, _)) 1375 RemoveLoginsByURLAndTimeImpl(ProbablySameFilter(filter), _, _))
1369 .WillOnce(Return(password_manager::PasswordStoreChangeList())); 1376 .WillOnce(Return(password_manager::PasswordStoreChangeList()));
1370 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1377 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
1371 BrowsingDataRemover::REMOVE_PASSWORDS, false); 1378 BrowsingDataRemover::REMOVE_PASSWORDS, false);
1372 } 1379 }
1373 1380
1374 TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemovePasswordsByOrigin) { 1381 // Disabled, since passwords are not yet marked as a filterable datatype.
Mike West 2017/01/24 08:37:27 Ditto.
msramek 2017/01/24 11:52:31 Done.
1382 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
1383 DISABLED_RemovePasswordsByOrigin) {
1375 RemovePasswordsTester tester(GetProfile()); 1384 RemovePasswordsTester tester(GetProfile());
1376 RegistrableDomainFilterBuilder builder( 1385 std::unique_ptr<BrowsingDataFilterBuilder> builder(
1377 RegistrableDomainFilterBuilder::WHITELIST); 1386 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST));
1378 builder.AddRegisterableDomain(kTestRegisterableDomain1); 1387 builder->AddRegisterableDomain(kTestRegisterableDomain1);
1379 base::Callback<bool(const GURL&)> filter = builder.BuildGeneralFilter(); 1388 base::Callback<bool(const GURL&)> filter = builder->BuildGeneralFilter();
1380 1389
1381 EXPECT_CALL(*tester.store(), 1390 EXPECT_CALL(*tester.store(),
1382 RemoveLoginsByURLAndTimeImpl(ProbablySameFilter(filter), _, _)) 1391 RemoveLoginsByURLAndTimeImpl(ProbablySameFilter(filter), _, _))
1383 .WillOnce(Return(password_manager::PasswordStoreChangeList())); 1392 .WillOnce(Return(password_manager::PasswordStoreChangeList()));
1384 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), 1393 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(),
1385 BrowsingDataRemover::REMOVE_PASSWORDS, builder); 1394 BrowsingDataRemover::REMOVE_PASSWORDS,
1395 std::move(builder));
1386 } 1396 }
1387 1397
1388 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DisableAutoSignIn) { 1398 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DisableAutoSignIn) {
1389 RemovePasswordsTester tester(GetProfile()); 1399 RemovePasswordsTester tester(GetProfile());
1390 base::Callback<bool(const GURL&)> empty_filter = 1400 base::Callback<bool(const GURL&)> empty_filter =
1391 BrowsingDataFilterBuilder::BuildNoopFilter(); 1401 BrowsingDataFilterBuilder::BuildNoopFilter();
1392 1402
1393 EXPECT_CALL( 1403 EXPECT_CALL(
1394 *tester.store(), 1404 *tester.store(),
1395 DisableAutoSignInForOriginsImpl(ProbablySameFilter(empty_filter))) 1405 DisableAutoSignInForOriginsImpl(ProbablySameFilter(empty_filter)))
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
1430 kOrigin2, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), 1440 kOrigin2, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(),
1431 base::MakeUnique<base::DictionaryValue>()); 1441 base::MakeUnique<base::DictionaryValue>());
1432 host_content_settings_map->SetWebsiteSettingDefaultScope( 1442 host_content_settings_map->SetWebsiteSettingDefaultScope(
1433 kOrigin3, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), 1443 kOrigin3, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(),
1434 base::MakeUnique<base::DictionaryValue>()); 1444 base::MakeUnique<base::DictionaryValue>());
1435 host_content_settings_map->SetWebsiteSettingDefaultScope( 1445 host_content_settings_map->SetWebsiteSettingDefaultScope(
1436 kOrigin4, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), 1446 kOrigin4, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(),
1437 base::MakeUnique<base::DictionaryValue>()); 1447 base::MakeUnique<base::DictionaryValue>());
1438 1448
1439 // Clear all except for origin1 and origin3. 1449 // Clear all except for origin1 and origin3.
1440 RegistrableDomainFilterBuilder filter( 1450 std::unique_ptr<BrowsingDataFilterBuilder> filter(
1441 RegistrableDomainFilterBuilder::BLACKLIST); 1451 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST));
1442 filter.AddRegisterableDomain(kTestRegisterableDomain1); 1452 filter->AddRegisterableDomain(kTestRegisterableDomain1);
1443 filter.AddRegisterableDomain(kTestRegisterableDomain3); 1453 filter->AddRegisterableDomain(kTestRegisterableDomain3);
1444 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(), 1454 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(),
1445 BrowsingDataRemover::REMOVE_SITE_USAGE_DATA, 1455 BrowsingDataRemover::REMOVE_SITE_USAGE_DATA,
1446 filter); 1456 std::move(filter));
1447 1457
1448 EXPECT_EQ(BrowsingDataRemover::REMOVE_SITE_USAGE_DATA, GetRemovalMask()); 1458 EXPECT_EQ(BrowsingDataRemover::REMOVE_SITE_USAGE_DATA, GetRemovalMask());
1449 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); 1459 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
1450 1460
1451 // Verify we only have true, and they're origin1, origin3, and origin4. 1461 // Verify we only have true, and they're origin1, origin3, and origin4.
1452 ContentSettingsForOneType host_settings; 1462 ContentSettingsForOneType host_settings;
1453 host_content_settings_map->GetSettingsForOneType( 1463 host_content_settings_map->GetSettingsForOneType(
1454 CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), &host_settings); 1464 CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), &host_settings);
1455 EXPECT_EQ(3u, host_settings.size()); 1465 EXPECT_EQ(3u, host_settings.size());
1456 EXPECT_EQ(ContentSettingsPattern::FromURLNoWildcard(kOrigin1), 1466 EXPECT_EQ(ContentSettingsPattern::FromURLNoWildcard(kOrigin1),
(...skipping 12 matching lines...) Expand all
1469 HostContentSettingsMap* host_content_settings_map = 1479 HostContentSettingsMap* host_content_settings_map =
1470 HostContentSettingsMapFactory::GetForProfile(GetProfile()); 1480 HostContentSettingsMapFactory::GetForProfile(GetProfile());
1471 1481
1472 DurableStoragePermissionContext durable_permission(GetProfile()); 1482 DurableStoragePermissionContext durable_permission(GetProfile());
1473 durable_permission.UpdateContentSetting(kOrigin1, GURL(), 1483 durable_permission.UpdateContentSetting(kOrigin1, GURL(),
1474 CONTENT_SETTING_ALLOW); 1484 CONTENT_SETTING_ALLOW);
1475 durable_permission.UpdateContentSetting(kOrigin2, GURL(), 1485 durable_permission.UpdateContentSetting(kOrigin2, GURL(),
1476 CONTENT_SETTING_ALLOW); 1486 CONTENT_SETTING_ALLOW);
1477 1487
1478 // Clear all except for origin1 and origin3. 1488 // Clear all except for origin1 and origin3.
1479 RegistrableDomainFilterBuilder filter( 1489 std::unique_ptr<BrowsingDataFilterBuilder> filter(
1480 RegistrableDomainFilterBuilder::BLACKLIST); 1490 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST));
1481 filter.AddRegisterableDomain(kTestRegisterableDomain1); 1491 filter->AddRegisterableDomain(kTestRegisterableDomain1);
1482 filter.AddRegisterableDomain(kTestRegisterableDomain3); 1492 filter->AddRegisterableDomain(kTestRegisterableDomain3);
1483 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(), 1493 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(),
1484 BrowsingDataRemover::REMOVE_DURABLE_PERMISSION, 1494 BrowsingDataRemover::REMOVE_DURABLE_PERMISSION,
1485 filter); 1495 std::move(filter));
1486 1496
1487 EXPECT_EQ(BrowsingDataRemover::REMOVE_DURABLE_PERMISSION, GetRemovalMask()); 1497 EXPECT_EQ(BrowsingDataRemover::REMOVE_DURABLE_PERMISSION, GetRemovalMask());
1488 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask()); 1498 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
1489 1499
1490 // Verify we only have allow for the first origin. 1500 // Verify we only have allow for the first origin.
1491 ContentSettingsForOneType host_settings; 1501 ContentSettingsForOneType host_settings;
1492 host_content_settings_map->GetSettingsForOneType( 1502 host_content_settings_map->GetSettingsForOneType(
1493 CONTENT_SETTINGS_TYPE_DURABLE_STORAGE, std::string(), &host_settings); 1503 CONTENT_SETTINGS_TYPE_DURABLE_STORAGE, std::string(), &host_settings);
1494 1504
1495 ASSERT_EQ(2u, host_settings.size()); 1505 ASSERT_EQ(2u, host_settings.size());
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1528 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), 1538 BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
1529 BrowsingDataRemover::REMOVE_PASSWORDS, false); 1539 BrowsingDataRemover::REMOVE_PASSWORDS, false);
1530 1540
1531 EXPECT_EQ(nullptr, http_auth_cache->Lookup(kOrigin1, kTestRealm, 1541 EXPECT_EQ(nullptr, http_auth_cache->Lookup(kOrigin1, kTestRealm,
1532 net::HttpAuth::AUTH_SCHEME_BASIC)); 1542 net::HttpAuth::AUTH_SCHEME_BASIC));
1533 } 1543 }
1534 1544
1535 TEST_F(ChromeBrowsingDataRemoverDelegateTest, ClearPermissionPromptCounts) { 1545 TEST_F(ChromeBrowsingDataRemoverDelegateTest, ClearPermissionPromptCounts) {
1536 RemovePermissionPromptCountsTest tester(GetProfile()); 1546 RemovePermissionPromptCountsTest tester(GetProfile());
1537 1547
1538 RegistrableDomainFilterBuilder filter_builder_1( 1548 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder_1(
1539 RegistrableDomainFilterBuilder::WHITELIST); 1549 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST));
1540 filter_builder_1.AddRegisterableDomain(kTestRegisterableDomain1); 1550 filter_builder_1->AddRegisterableDomain(kTestRegisterableDomain1);
1541 1551
1542 RegistrableDomainFilterBuilder filter_builder_2( 1552 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder_2(
1543 RegistrableDomainFilterBuilder::BLACKLIST); 1553 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST));
1544 filter_builder_2.AddRegisterableDomain(kTestRegisterableDomain1); 1554 filter_builder_2->AddRegisterableDomain(kTestRegisterableDomain1);
1545 1555
1546 { 1556 {
1547 // Test REMOVE_HISTORY. 1557 // Test REMOVE_HISTORY.
1548 EXPECT_EQ(1, tester.RecordIgnore(kOrigin1, 1558 EXPECT_EQ(1, tester.RecordIgnore(kOrigin1,
1549 content::PermissionType::GEOLOCATION)); 1559 content::PermissionType::GEOLOCATION));
1550 EXPECT_EQ(2, tester.RecordIgnore(kOrigin1, 1560 EXPECT_EQ(2, tester.RecordIgnore(kOrigin1,
1551 content::PermissionType::GEOLOCATION)); 1561 content::PermissionType::GEOLOCATION));
1552 EXPECT_EQ(1, tester.RecordIgnore(kOrigin1, 1562 EXPECT_EQ(1, tester.RecordIgnore(kOrigin1,
1553 content::PermissionType::NOTIFICATIONS)); 1563 content::PermissionType::NOTIFICATIONS));
1554 tester.ShouldChangeDismissalToBlock(kOrigin1, 1564 tester.ShouldChangeDismissalToBlock(kOrigin1,
1555 content::PermissionType::MIDI_SYSEX); 1565 content::PermissionType::MIDI_SYSEX);
1556 EXPECT_EQ(1, tester.RecordIgnore(kOrigin2, 1566 EXPECT_EQ(1, tester.RecordIgnore(kOrigin2,
1557 content::PermissionType::DURABLE_STORAGE)); 1567 content::PermissionType::DURABLE_STORAGE));
1558 tester.ShouldChangeDismissalToBlock(kOrigin2, 1568 tester.ShouldChangeDismissalToBlock(kOrigin2,
1559 content::PermissionType::NOTIFICATIONS); 1569 content::PermissionType::NOTIFICATIONS);
1560 1570
1561 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(), 1571 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(),
1562 BrowsingDataRemover::REMOVE_SITE_USAGE_DATA, 1572 BrowsingDataRemover::REMOVE_SITE_USAGE_DATA,
1563 filter_builder_1); 1573 std::move(filter_builder_1));
1564 1574
1565 // kOrigin1 should be gone, but kOrigin2 remains. 1575 // kOrigin1 should be gone, but kOrigin2 remains.
1566 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, 1576 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1,
1567 content::PermissionType::GEOLOCATION)); 1577 content::PermissionType::GEOLOCATION));
1568 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, 1578 EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1,
1569 content::PermissionType::NOTIFICATIONS)); 1579 content::PermissionType::NOTIFICATIONS));
1570 EXPECT_EQ(0, tester.GetDismissCount(kOrigin1, 1580 EXPECT_EQ(0, tester.GetDismissCount(kOrigin1,
1571 content::PermissionType::MIDI_SYSEX)); 1581 content::PermissionType::MIDI_SYSEX));
1572 EXPECT_EQ(1, tester.GetIgnoreCount( 1582 EXPECT_EQ(1, tester.GetIgnoreCount(
1573 kOrigin2, content::PermissionType::DURABLE_STORAGE)); 1583 kOrigin2, content::PermissionType::DURABLE_STORAGE));
(...skipping 25 matching lines...) Expand all
1599 content::PermissionType::NOTIFICATIONS)); 1609 content::PermissionType::NOTIFICATIONS));
1600 tester.ShouldChangeDismissalToBlock(kOrigin1, 1610 tester.ShouldChangeDismissalToBlock(kOrigin1,
1601 content::PermissionType::MIDI_SYSEX); 1611 content::PermissionType::MIDI_SYSEX);
1602 EXPECT_EQ(1, tester.RecordIgnore(kOrigin2, 1612 EXPECT_EQ(1, tester.RecordIgnore(kOrigin2,
1603 content::PermissionType::DURABLE_STORAGE)); 1613 content::PermissionType::DURABLE_STORAGE));
1604 tester.ShouldChangeDismissalToBlock(kOrigin2, 1614 tester.ShouldChangeDismissalToBlock(kOrigin2,
1605 content::PermissionType::NOTIFICATIONS); 1615 content::PermissionType::NOTIFICATIONS);
1606 1616
1607 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(), 1617 BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(),
1608 BrowsingDataRemover::REMOVE_SITE_USAGE_DATA, 1618 BrowsingDataRemover::REMOVE_SITE_USAGE_DATA,
1609 filter_builder_2); 1619 std::move(filter_builder_2));
1610 1620
1611 // kOrigin2 should be gone, but kOrigin1 remains. 1621 // kOrigin2 should be gone, but kOrigin1 remains.
1612 EXPECT_EQ(2, tester.GetIgnoreCount(kOrigin1, 1622 EXPECT_EQ(2, tester.GetIgnoreCount(kOrigin1,
1613 content::PermissionType::GEOLOCATION)); 1623 content::PermissionType::GEOLOCATION));
1614 EXPECT_EQ(1, tester.GetIgnoreCount(kOrigin1, 1624 EXPECT_EQ(1, tester.GetIgnoreCount(kOrigin1,
1615 content::PermissionType::NOTIFICATIONS)); 1625 content::PermissionType::NOTIFICATIONS));
1616 EXPECT_EQ(1, tester.GetDismissCount(kOrigin1, 1626 EXPECT_EQ(1, tester.GetDismissCount(kOrigin1,
1617 content::PermissionType::MIDI_SYSEX)); 1627 content::PermissionType::MIDI_SYSEX));
1618 EXPECT_EQ(0, tester.GetIgnoreCount( 1628 EXPECT_EQ(0, tester.GetIgnoreCount(
1619 kOrigin2, content::PermissionType::DURABLE_STORAGE)); 1629 kOrigin2, content::PermissionType::DURABLE_STORAGE));
(...skipping 24 matching lines...) Expand all
1644 1654
1645 tester.AddDomain(kOrigin1.host()); 1655 tester.AddDomain(kOrigin1.host());
1646 tester.AddDomain(kOrigin2.host()); 1656 tester.AddDomain(kOrigin2.host());
1647 tester.AddDomain(kOrigin3.host()); 1657 tester.AddDomain(kOrigin3.host());
1648 1658
1649 std::vector<std::string> expected = { 1659 std::vector<std::string> expected = {
1650 kOrigin1.host(), kOrigin2.host(), kOrigin3.host() }; 1660 kOrigin1.host(), kOrigin2.host(), kOrigin3.host() };
1651 EXPECT_EQ(expected, tester.GetDomains()); 1661 EXPECT_EQ(expected, tester.GetDomains());
1652 1662
1653 // Delete data with a filter for the registrable domain of |kOrigin3|. 1663 // Delete data with a filter for the registrable domain of |kOrigin3|.
1654 RegistrableDomainFilterBuilder filter_builder( 1664 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder(
1655 RegistrableDomainFilterBuilder::WHITELIST); 1665 BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST));
1656 filter_builder.AddRegisterableDomain(kTestRegisterableDomain3); 1666 filter_builder->AddRegisterableDomain(kTestRegisterableDomain3);
1657 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(), 1667 BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(),
1658 BrowsingDataRemover::REMOVE_PLUGIN_DATA, 1668 BrowsingDataRemover::REMOVE_PLUGIN_DATA,
1659 filter_builder); 1669 std::move(filter_builder));
1660 1670
1661 // Plugin data for |kOrigin3.host()| should have been removed. 1671 // Plugin data for |kOrigin3.host()| should have been removed.
1662 expected.pop_back(); 1672 expected.pop_back();
1663 EXPECT_EQ(expected, tester.GetDomains()); 1673 EXPECT_EQ(expected, tester.GetDomains());
1664 1674
1665 // TODO(msramek): Mock PluginDataRemover and test the complete deletion 1675 // TODO(msramek): Mock PluginDataRemover and test the complete deletion
1666 // of plugin data as well. 1676 // of plugin data as well.
1667 } 1677 }
1668 #endif 1678 #endif
1669 1679
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
1724 completion_observer.BlockUntilCompletion(); 1734 completion_observer.BlockUntilCompletion();
1725 1735
1726 // There should be only 1 recently visited bookmarks. 1736 // There should be only 1 recently visited bookmarks.
1727 std::vector<const bookmarks::BookmarkNode*> remaining_nodes = 1737 std::vector<const bookmarks::BookmarkNode*> remaining_nodes =
1728 ntp_snippets::GetRecentlyVisitedBookmarks( 1738 ntp_snippets::GetRecentlyVisitedBookmarks(
1729 bookmark_model, 3, base::Time::UnixEpoch(), 1739 bookmark_model, 3, base::Time::UnixEpoch(),
1730 /*consider_visits_from_desktop=*/true); 1740 /*consider_visits_from_desktop=*/true);
1731 EXPECT_THAT(remaining_nodes, SizeIs(1)); 1741 EXPECT_THAT(remaining_nodes, SizeIs(1));
1732 EXPECT_THAT(remaining_nodes[0]->url().spec(), Eq("http://foo-2.org/")); 1742 EXPECT_THAT(remaining_nodes[0]->url().spec(), Eq("http://foo-2.org/"));
1733 } 1743 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698