OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/browsing_data/browsing_data_remover.h" | 5 #include "chrome/browser/browsing_data/browsing_data_remover.h" |
6 | 6 |
7 #include <set> | 7 #include <set> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
324 | 324 |
325 net::ServerBoundCertService* server_bound_cert_service_; | 325 net::ServerBoundCertService* server_bound_cert_service_; |
326 scoped_refptr<net::SSLConfigService> ssl_config_service_; | 326 scoped_refptr<net::SSLConfigService> ssl_config_service_; |
327 int ssl_config_changed_count_; | 327 int ssl_config_changed_count_; |
328 | 328 |
329 DISALLOW_COPY_AND_ASSIGN(RemoveServerBoundCertTester); | 329 DISALLOW_COPY_AND_ASSIGN(RemoveServerBoundCertTester); |
330 }; | 330 }; |
331 | 331 |
332 class RemoveHistoryTester { | 332 class RemoveHistoryTester { |
333 public: | 333 public: |
334 explicit RemoveHistoryTester(TestingProfile* profile) | 334 RemoveHistoryTester() : query_url_success_(false), history_service_(NULL) {} |
335 : query_url_success_(false) { | 335 |
336 profile->CreateHistoryService(true, false); | 336 bool Init(TestingProfile* profile) WARN_UNUSED_RESULT { |
| 337 if (!profile->CreateHistoryService(true, false)) |
| 338 return false; |
337 history_service_ = HistoryServiceFactory::GetForProfile( | 339 history_service_ = HistoryServiceFactory::GetForProfile( |
338 profile, Profile::EXPLICIT_ACCESS); | 340 profile, Profile::EXPLICIT_ACCESS); |
| 341 return true; |
339 } | 342 } |
340 | 343 |
341 // Returns true, if the given URL exists in the history service. | 344 // Returns true, if the given URL exists in the history service. |
342 bool HistoryContainsURL(const GURL& url) { | 345 bool HistoryContainsURL(const GURL& url) { |
343 history_service_->QueryURL( | 346 history_service_->QueryURL( |
344 url, | 347 url, |
345 true, | 348 true, |
346 &consumer_, | 349 &consumer_, |
347 base::Bind(&RemoveHistoryTester::SaveResultAndQuit, | 350 base::Bind(&RemoveHistoryTester::SaveResultAndQuit, |
348 base::Unretained(this))); | 351 base::Unretained(this))); |
(...skipping 468 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
817 | 820 |
818 EXPECT_EQ(BrowsingDataRemover::REMOVE_LOCAL_STORAGE, GetRemovalMask()); | 821 EXPECT_EQ(BrowsingDataRemover::REMOVE_LOCAL_STORAGE, GetRemovalMask()); |
819 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 822 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
820 EXPECT_FALSE(tester.DOMStorageExistsForOrigin(kOrigin1)); | 823 EXPECT_FALSE(tester.DOMStorageExistsForOrigin(kOrigin1)); |
821 EXPECT_FALSE(tester.DOMStorageExistsForOrigin(kOrigin2)); | 824 EXPECT_FALSE(tester.DOMStorageExistsForOrigin(kOrigin2)); |
822 EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOrigin3)); | 825 EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOrigin3)); |
823 EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOriginExt)); | 826 EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOriginExt)); |
824 } | 827 } |
825 | 828 |
826 TEST_F(BrowsingDataRemoverTest, RemoveHistoryForever) { | 829 TEST_F(BrowsingDataRemoverTest, RemoveHistoryForever) { |
827 RemoveHistoryTester tester(GetProfile()); | 830 RemoveHistoryTester tester; |
| 831 ASSERT_TRUE(tester.Init(GetProfile())); |
828 | 832 |
829 tester.AddHistory(kOrigin1, base::Time::Now()); | 833 tester.AddHistory(kOrigin1, base::Time::Now()); |
830 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1)); | 834 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1)); |
831 | 835 |
832 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, | 836 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, |
833 BrowsingDataRemover::REMOVE_HISTORY, false); | 837 BrowsingDataRemover::REMOVE_HISTORY, false); |
834 | 838 |
835 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); | 839 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); |
836 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 840 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
837 EXPECT_FALSE(tester.HistoryContainsURL(kOrigin1)); | 841 EXPECT_FALSE(tester.HistoryContainsURL(kOrigin1)); |
838 } | 842 } |
839 | 843 |
840 TEST_F(BrowsingDataRemoverTest, RemoveHistoryForLastHour) { | 844 TEST_F(BrowsingDataRemoverTest, RemoveHistoryForLastHour) { |
841 RemoveHistoryTester tester(GetProfile()); | 845 RemoveHistoryTester tester; |
| 846 ASSERT_TRUE(tester.Init(GetProfile())); |
842 | 847 |
843 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2); | 848 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2); |
844 | 849 |
845 tester.AddHistory(kOrigin1, base::Time::Now()); | 850 tester.AddHistory(kOrigin1, base::Time::Now()); |
846 tester.AddHistory(kOrigin2, two_hours_ago); | 851 tester.AddHistory(kOrigin2, two_hours_ago); |
847 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1)); | 852 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1)); |
848 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin2)); | 853 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin2)); |
849 | 854 |
850 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_HOUR, | 855 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_HOUR, |
851 BrowsingDataRemover::REMOVE_HISTORY, false); | 856 BrowsingDataRemover::REMOVE_HISTORY, false); |
852 | 857 |
853 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); | 858 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); |
854 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 859 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
855 EXPECT_FALSE(tester.HistoryContainsURL(kOrigin1)); | 860 EXPECT_FALSE(tester.HistoryContainsURL(kOrigin1)); |
856 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin2)); | 861 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin2)); |
857 } | 862 } |
858 | 863 |
859 // This should crash (DCHECK) in Debug, but death tests don't work properly | 864 // This should crash (DCHECK) in Debug, but death tests don't work properly |
860 // here. | 865 // here. |
861 #if defined(NDEBUG) && !defined(DCHECK_ALWAYS_ON) | 866 #if defined(NDEBUG) && !defined(DCHECK_ALWAYS_ON) |
862 TEST_F(BrowsingDataRemoverTest, RemoveHistoryProhibited) { | 867 TEST_F(BrowsingDataRemoverTest, RemoveHistoryProhibited) { |
863 RemoveHistoryTester tester(GetProfile()); | 868 RemoveHistoryTester tester; |
| 869 ASSERT_TRUE(tester.Init(GetProfile())); |
864 PrefService* prefs = GetProfile()->GetPrefs(); | 870 PrefService* prefs = GetProfile()->GetPrefs(); |
865 prefs->SetBoolean(prefs::kAllowDeletingBrowserHistory, false); | 871 prefs->SetBoolean(prefs::kAllowDeletingBrowserHistory, false); |
866 | 872 |
867 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2); | 873 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2); |
868 | 874 |
869 tester.AddHistory(kOrigin1, base::Time::Now()); | 875 tester.AddHistory(kOrigin1, base::Time::Now()); |
870 tester.AddHistory(kOrigin2, two_hours_ago); | 876 tester.AddHistory(kOrigin2, two_hours_ago); |
871 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1)); | 877 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1)); |
872 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin2)); | 878 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin2)); |
873 | 879 |
874 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_HOUR, | 880 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_HOUR, |
875 BrowsingDataRemover::REMOVE_HISTORY, false); | 881 BrowsingDataRemover::REMOVE_HISTORY, false); |
876 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); | 882 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); |
877 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 883 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
878 | 884 |
879 // Nothing should have been deleted. | 885 // Nothing should have been deleted. |
880 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin1)); | 886 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin1)); |
881 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin2)); | 887 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin2)); |
882 } | 888 } |
883 #endif | 889 #endif |
884 | 890 |
885 TEST_F(BrowsingDataRemoverTest, RemoveMultipleTypes) { | 891 TEST_F(BrowsingDataRemoverTest, RemoveMultipleTypes) { |
886 // Add some history. | 892 // Add some history. |
887 RemoveHistoryTester history_tester(GetProfile()); | 893 RemoveHistoryTester history_tester; |
| 894 ASSERT_TRUE(history_tester.Init(GetProfile())); |
888 history_tester.AddHistory(kOrigin1, base::Time::Now()); | 895 history_tester.AddHistory(kOrigin1, base::Time::Now()); |
889 ASSERT_TRUE(history_tester.HistoryContainsURL(kOrigin1)); | 896 ASSERT_TRUE(history_tester.HistoryContainsURL(kOrigin1)); |
890 | 897 |
891 // Add some cookies. | 898 // Add some cookies. |
892 RemoveProfileCookieTester cookie_tester(GetProfile()); | 899 RemoveProfileCookieTester cookie_tester(GetProfile()); |
893 cookie_tester.AddCookie(); | 900 cookie_tester.AddCookie(); |
894 ASSERT_TRUE(cookie_tester.ContainsCookie()); | 901 ASSERT_TRUE(cookie_tester.ContainsCookie()); |
895 | 902 |
896 int removal_mask = BrowsingDataRemover::REMOVE_HISTORY | | 903 int removal_mask = BrowsingDataRemover::REMOVE_HISTORY | |
897 BrowsingDataRemover::REMOVE_COOKIES; | 904 BrowsingDataRemover::REMOVE_COOKIES; |
898 | 905 |
899 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, | 906 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, |
900 removal_mask, false); | 907 removal_mask, false); |
901 | 908 |
902 EXPECT_EQ(removal_mask, GetRemovalMask()); | 909 EXPECT_EQ(removal_mask, GetRemovalMask()); |
903 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 910 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
904 EXPECT_FALSE(history_tester.HistoryContainsURL(kOrigin1)); | 911 EXPECT_FALSE(history_tester.HistoryContainsURL(kOrigin1)); |
905 EXPECT_FALSE(cookie_tester.ContainsCookie()); | 912 EXPECT_FALSE(cookie_tester.ContainsCookie()); |
906 } | 913 } |
907 | 914 |
908 // This should crash (DCHECK) in Debug, but death tests don't work properly | 915 // This should crash (DCHECK) in Debug, but death tests don't work properly |
909 // here. | 916 // here. |
910 #if defined(NDEBUG) && !defined(DCHECK_ALWAYS_ON) | 917 #if defined(NDEBUG) && !defined(DCHECK_ALWAYS_ON) |
911 TEST_F(BrowsingDataRemoverTest, RemoveMultipleTypesHistoryProhibited) { | 918 TEST_F(BrowsingDataRemoverTest, RemoveMultipleTypesHistoryProhibited) { |
912 PrefService* prefs = GetProfile()->GetPrefs(); | 919 PrefService* prefs = GetProfile()->GetPrefs(); |
913 prefs->SetBoolean(prefs::kAllowDeletingBrowserHistory, false); | 920 prefs->SetBoolean(prefs::kAllowDeletingBrowserHistory, false); |
914 | 921 |
915 // Add some history. | 922 // Add some history. |
916 RemoveHistoryTester history_tester(GetProfile()); | 923 RemoveHistoryTester history_tester; |
| 924 ASSERT_TRUE(history_tester.Init(GetProfile())); |
917 history_tester.AddHistory(kOrigin1, base::Time::Now()); | 925 history_tester.AddHistory(kOrigin1, base::Time::Now()); |
918 ASSERT_TRUE(history_tester.HistoryContainsURL(kOrigin1)); | 926 ASSERT_TRUE(history_tester.HistoryContainsURL(kOrigin1)); |
919 | 927 |
920 // Add some cookies. | 928 // Add some cookies. |
921 RemoveProfileCookieTester cookie_tester(GetProfile()); | 929 RemoveProfileCookieTester cookie_tester(GetProfile()); |
922 cookie_tester.AddCookie(); | 930 cookie_tester.AddCookie(); |
923 ASSERT_TRUE(cookie_tester.ContainsCookie()); | 931 ASSERT_TRUE(cookie_tester.ContainsCookie()); |
924 | 932 |
925 int removal_mask = BrowsingDataRemover::REMOVE_HISTORY | | 933 int removal_mask = BrowsingDataRemover::REMOVE_HISTORY | |
926 BrowsingDataRemover::REMOVE_COOKIES; | 934 BrowsingDataRemover::REMOVE_COOKIES; |
(...skipping 352 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1279 kClientFile)); | 1287 kClientFile)); |
1280 EXPECT_TRUE(GetMockManager()->OriginHasData(kOriginExt, kPersistent, | 1288 EXPECT_TRUE(GetMockManager()->OriginHasData(kOriginExt, kPersistent, |
1281 kClientFile)); | 1289 kClientFile)); |
1282 EXPECT_TRUE(GetMockManager()->OriginHasData(kOriginDevTools, kTemporary, | 1290 EXPECT_TRUE(GetMockManager()->OriginHasData(kOriginDevTools, kTemporary, |
1283 kClientFile)); | 1291 kClientFile)); |
1284 EXPECT_TRUE(GetMockManager()->OriginHasData(kOriginDevTools, kPersistent, | 1292 EXPECT_TRUE(GetMockManager()->OriginHasData(kOriginDevTools, kPersistent, |
1285 kClientFile)); | 1293 kClientFile)); |
1286 } | 1294 } |
1287 | 1295 |
1288 TEST_F(BrowsingDataRemoverTest, OriginBasedHistoryRemoval) { | 1296 TEST_F(BrowsingDataRemoverTest, OriginBasedHistoryRemoval) { |
1289 RemoveHistoryTester tester(GetProfile()); | 1297 RemoveHistoryTester tester; |
| 1298 ASSERT_TRUE(tester.Init(GetProfile())); |
1290 | 1299 |
1291 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2); | 1300 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2); |
1292 | 1301 |
1293 tester.AddHistory(kOrigin1, base::Time::Now()); | 1302 tester.AddHistory(kOrigin1, base::Time::Now()); |
1294 tester.AddHistory(kOrigin2, two_hours_ago); | 1303 tester.AddHistory(kOrigin2, two_hours_ago); |
1295 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1)); | 1304 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1)); |
1296 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin2)); | 1305 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin2)); |
1297 | 1306 |
1298 BlockUntilOriginDataRemoved(BrowsingDataRemover::EVERYTHING, | 1307 BlockUntilOriginDataRemoved(BrowsingDataRemover::EVERYTHING, |
1299 BrowsingDataRemover::REMOVE_HISTORY, kOrigin2); | 1308 BrowsingDataRemover::REMOVE_HISTORY, kOrigin2); |
1300 | 1309 |
1301 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); | 1310 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); |
1302 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 1311 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
1303 | 1312 |
1304 // Nothing should have been deleted. | 1313 // Nothing should have been deleted. |
1305 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin1)); | 1314 EXPECT_TRUE(tester.HistoryContainsURL(kOrigin1)); |
1306 EXPECT_FALSE(tester.HistoryContainsURL(kOrigin2)); | 1315 EXPECT_FALSE(tester.HistoryContainsURL(kOrigin2)); |
1307 } | 1316 } |
1308 | 1317 |
1309 TEST_F(BrowsingDataRemoverTest, OriginAndTimeBasedHistoryRemoval) { | 1318 TEST_F(BrowsingDataRemoverTest, OriginAndTimeBasedHistoryRemoval) { |
1310 RemoveHistoryTester tester(GetProfile()); | 1319 RemoveHistoryTester tester; |
| 1320 ASSERT_TRUE(tester.Init(GetProfile())); |
1311 | 1321 |
1312 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2); | 1322 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2); |
1313 | 1323 |
1314 tester.AddHistory(kOrigin1, base::Time::Now()); | 1324 tester.AddHistory(kOrigin1, base::Time::Now()); |
1315 tester.AddHistory(kOrigin2, two_hours_ago); | 1325 tester.AddHistory(kOrigin2, two_hours_ago); |
1316 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1)); | 1326 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1)); |
1317 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin2)); | 1327 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin2)); |
1318 | 1328 |
1319 BlockUntilOriginDataRemoved(BrowsingDataRemover::LAST_HOUR, | 1329 BlockUntilOriginDataRemoved(BrowsingDataRemover::LAST_HOUR, |
1320 BrowsingDataRemover::REMOVE_HISTORY, kOrigin2); | 1330 BrowsingDataRemover::REMOVE_HISTORY, kOrigin2); |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1373 BlockUntilBrowsingDataRemoved( | 1383 BlockUntilBrowsingDataRemoved( |
1374 BrowsingDataRemover::LAST_HOUR, | 1384 BrowsingDataRemover::LAST_HOUR, |
1375 BrowsingDataRemover::REMOVE_HISTORY, false); | 1385 BrowsingDataRemover::REMOVE_HISTORY, false); |
1376 | 1386 |
1377 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); | 1387 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); |
1378 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 1388 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
1379 EXPECT_TRUE(tester.HasOrigin(std::string())); | 1389 EXPECT_TRUE(tester.HasOrigin(std::string())); |
1380 EXPECT_FALSE(tester.HasOrigin(kWebOrigin)); | 1390 EXPECT_FALSE(tester.HasOrigin(kWebOrigin)); |
1381 EXPECT_TRUE(tester.HasOrigin(kChromeOrigin)); | 1391 EXPECT_TRUE(tester.HasOrigin(kChromeOrigin)); |
1382 } | 1392 } |
OLD | NEW |