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 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
231 } | 231 } |
232 }; | 232 }; |
233 | 233 |
234 #if defined(FULL_SAFE_BROWSING) || defined(MOBILE_SAFE_BROWSING) | 234 #if defined(FULL_SAFE_BROWSING) || defined(MOBILE_SAFE_BROWSING) |
235 class RemoveSafeBrowsingCookieTester : public RemoveCookieTester { | 235 class RemoveSafeBrowsingCookieTester : public RemoveCookieTester { |
236 public: | 236 public: |
237 RemoveSafeBrowsingCookieTester() | 237 RemoveSafeBrowsingCookieTester() |
238 : browser_process_(TestingBrowserProcess::GetGlobal()) { | 238 : browser_process_(TestingBrowserProcess::GetGlobal()) { |
239 scoped_refptr<SafeBrowsingService> sb_service = | 239 scoped_refptr<SafeBrowsingService> sb_service = |
240 SafeBrowsingService::CreateSafeBrowsingService(); | 240 SafeBrowsingService::CreateSafeBrowsingService(); |
241 browser_process_->SetSafeBrowsingService(sb_service); | 241 browser_process_->SetSafeBrowsingService(sb_service.get()); |
242 sb_service->Initialize(); | 242 sb_service->Initialize(); |
243 base::MessageLoop::current()->RunUntilIdle(); | 243 base::MessageLoop::current()->RunUntilIdle(); |
244 | 244 |
245 // Create a cookiemonster that does not have persistant storage, and replace | 245 // Create a cookiemonster that does not have persistant storage, and replace |
246 // the SafeBrowsingService created one with it. | 246 // the SafeBrowsingService created one with it. |
247 net::CookieStore* monster = new net::CookieMonster(NULL, NULL); | 247 net::CookieStore* monster = new net::CookieMonster(NULL, NULL); |
248 sb_service->url_request_context()->GetURLRequestContext()-> | 248 sb_service->url_request_context()->GetURLRequestContext()-> |
249 set_cookie_store(monster); | 249 set_cookie_store(monster); |
250 SetMonster(monster); | 250 SetMonster(monster); |
251 } | 251 } |
(...skipping 364 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
616 | 616 |
617 int GetRemovalMask() { | 617 int GetRemovalMask() { |
618 return called_with_details_->removal_mask; | 618 return called_with_details_->removal_mask; |
619 } | 619 } |
620 | 620 |
621 int GetOriginSetMask() { | 621 int GetOriginSetMask() { |
622 return called_with_details_->origin_set_mask; | 622 return called_with_details_->origin_set_mask; |
623 } | 623 } |
624 | 624 |
625 quota::MockQuotaManager* GetMockManager() { | 625 quota::MockQuotaManager* GetMockManager() { |
626 if (!quota_manager_) { | 626 if (!quota_manager_.get()) { |
627 quota_manager_ = new quota::MockQuotaManager( | 627 quota_manager_ = new quota::MockQuotaManager( |
628 profile_->IsOffTheRecord(), | 628 profile_->IsOffTheRecord(), |
629 profile_->GetPath(), | 629 profile_->GetPath(), |
630 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO), | 630 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO), |
631 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::DB), | 631 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::DB), |
632 profile_->GetExtensionSpecialStoragePolicy()); | 632 profile_->GetExtensionSpecialStoragePolicy()); |
633 } | 633 } |
634 return quota_manager_; | 634 return quota_manager_.get(); |
635 } | 635 } |
636 | 636 |
637 // content::NotificationObserver implementation. | 637 // content::NotificationObserver implementation. |
638 virtual void Observe(int type, | 638 virtual void Observe(int type, |
639 const content::NotificationSource& source, | 639 const content::NotificationSource& source, |
640 const content::NotificationDetails& details) OVERRIDE { | 640 const content::NotificationDetails& details) OVERRIDE { |
641 DCHECK_EQ(type, chrome::NOTIFICATION_BROWSING_DATA_REMOVED); | 641 DCHECK_EQ(type, chrome::NOTIFICATION_BROWSING_DATA_REMOVED); |
642 | 642 |
643 // We're not taking ownership of the details object, but storing a copy of | 643 // We're not taking ownership of the details object, but storing a copy of |
644 // it locally. | 644 // it locally. |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
768 tester.GetCertList(&certs); | 768 tester.GetCertList(&certs); |
769 ASSERT_EQ(1U, certs.size()); | 769 ASSERT_EQ(1U, certs.size()); |
770 EXPECT_EQ(kTestOrigin2, certs.front().server_identifier()); | 770 EXPECT_EQ(kTestOrigin2, certs.front().server_identifier()); |
771 } | 771 } |
772 | 772 |
773 TEST_F(BrowsingDataRemoverTest, RemoveUnprotectedLocalStorageForever) { | 773 TEST_F(BrowsingDataRemoverTest, RemoveUnprotectedLocalStorageForever) { |
774 // Protect kOrigin1. | 774 // Protect kOrigin1. |
775 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = | 775 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = |
776 new MockExtensionSpecialStoragePolicy; | 776 new MockExtensionSpecialStoragePolicy; |
777 mock_policy->AddProtected(kOrigin1.GetOrigin()); | 777 mock_policy->AddProtected(kOrigin1.GetOrigin()); |
778 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy); | 778 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); |
779 | 779 |
780 RemoveLocalStorageTester tester(GetProfile()); | 780 RemoveLocalStorageTester tester(GetProfile()); |
781 | 781 |
782 tester.AddDOMStorageTestData(); | 782 tester.AddDOMStorageTestData(); |
783 EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOrigin1)); | 783 EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOrigin1)); |
784 EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOrigin2)); | 784 EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOrigin2)); |
785 EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOrigin3)); | 785 EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOrigin3)); |
786 EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOriginExt)); | 786 EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOriginExt)); |
787 | 787 |
788 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, | 788 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, |
789 BrowsingDataRemover::REMOVE_LOCAL_STORAGE, false); | 789 BrowsingDataRemover::REMOVE_LOCAL_STORAGE, false); |
790 | 790 |
791 EXPECT_EQ(BrowsingDataRemover::REMOVE_LOCAL_STORAGE, GetRemovalMask()); | 791 EXPECT_EQ(BrowsingDataRemover::REMOVE_LOCAL_STORAGE, GetRemovalMask()); |
792 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 792 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
793 EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOrigin1)); | 793 EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOrigin1)); |
794 EXPECT_FALSE(tester.DOMStorageExistsForOrigin(kOrigin2)); | 794 EXPECT_FALSE(tester.DOMStorageExistsForOrigin(kOrigin2)); |
795 EXPECT_FALSE(tester.DOMStorageExistsForOrigin(kOrigin3)); | 795 EXPECT_FALSE(tester.DOMStorageExistsForOrigin(kOrigin3)); |
796 EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOriginExt)); | 796 EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOriginExt)); |
797 } | 797 } |
798 | 798 |
799 TEST_F(BrowsingDataRemoverTest, RemoveProtectedLocalStorageForever) { | 799 TEST_F(BrowsingDataRemoverTest, RemoveProtectedLocalStorageForever) { |
800 // Protect kOrigin1. | 800 // Protect kOrigin1. |
801 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = | 801 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = |
802 new MockExtensionSpecialStoragePolicy; | 802 new MockExtensionSpecialStoragePolicy; |
803 mock_policy->AddProtected(kOrigin1.GetOrigin()); | 803 mock_policy->AddProtected(kOrigin1.GetOrigin()); |
804 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy); | 804 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); |
805 | 805 |
806 RemoveLocalStorageTester tester(GetProfile()); | 806 RemoveLocalStorageTester tester(GetProfile()); |
807 | 807 |
808 tester.AddDOMStorageTestData(); | 808 tester.AddDOMStorageTestData(); |
809 EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOrigin1)); | 809 EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOrigin1)); |
810 EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOrigin2)); | 810 EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOrigin2)); |
811 EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOrigin3)); | 811 EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOrigin3)); |
812 EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOriginExt)); | 812 EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOriginExt)); |
813 | 813 |
814 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, | 814 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, |
(...skipping 356 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1171 kClientFile)); | 1171 kClientFile)); |
1172 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, | 1172 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, |
1173 kClientFile)); | 1173 kClientFile)); |
1174 } | 1174 } |
1175 | 1175 |
1176 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedUnprotectedOrigins) { | 1176 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedUnprotectedOrigins) { |
1177 // Protect kOrigin1. | 1177 // Protect kOrigin1. |
1178 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = | 1178 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = |
1179 new MockExtensionSpecialStoragePolicy; | 1179 new MockExtensionSpecialStoragePolicy; |
1180 mock_policy->AddProtected(kOrigin1.GetOrigin()); | 1180 mock_policy->AddProtected(kOrigin1.GetOrigin()); |
1181 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy); | 1181 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); |
1182 | 1182 |
1183 PopulateTestQuotaManagedData(GetMockManager()); | 1183 PopulateTestQuotaManagedData(GetMockManager()); |
1184 | 1184 |
1185 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, | 1185 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, |
1186 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1186 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
1187 BrowsingDataRemover::REMOVE_WEBSQL | | 1187 BrowsingDataRemover::REMOVE_WEBSQL | |
1188 BrowsingDataRemover::REMOVE_APPCACHE | | 1188 BrowsingDataRemover::REMOVE_APPCACHE | |
1189 BrowsingDataRemover::REMOVE_INDEXEDDB, false); | 1189 BrowsingDataRemover::REMOVE_INDEXEDDB, false); |
1190 | 1190 |
1191 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1191 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
(...skipping 13 matching lines...) Expand all Loading... |
1205 kClientFile)); | 1205 kClientFile)); |
1206 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, | 1206 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, |
1207 kClientFile)); | 1207 kClientFile)); |
1208 } | 1208 } |
1209 | 1209 |
1210 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedProtectedSpecificOrigin) { | 1210 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedProtectedSpecificOrigin) { |
1211 // Protect kOrigin1. | 1211 // Protect kOrigin1. |
1212 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = | 1212 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = |
1213 new MockExtensionSpecialStoragePolicy; | 1213 new MockExtensionSpecialStoragePolicy; |
1214 mock_policy->AddProtected(kOrigin1.GetOrigin()); | 1214 mock_policy->AddProtected(kOrigin1.GetOrigin()); |
1215 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy); | 1215 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); |
1216 | 1216 |
1217 PopulateTestQuotaManagedData(GetMockManager()); | 1217 PopulateTestQuotaManagedData(GetMockManager()); |
1218 | 1218 |
1219 // Try to remove kOrigin1. Expect failure. | 1219 // Try to remove kOrigin1. Expect failure. |
1220 BlockUntilOriginDataRemoved(BrowsingDataRemover::EVERYTHING, | 1220 BlockUntilOriginDataRemoved(BrowsingDataRemover::EVERYTHING, |
1221 BrowsingDataRemover::REMOVE_APPCACHE | | 1221 BrowsingDataRemover::REMOVE_APPCACHE | |
1222 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1222 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
1223 BrowsingDataRemover::REMOVE_INDEXEDDB | | 1223 BrowsingDataRemover::REMOVE_INDEXEDDB | |
1224 BrowsingDataRemover::REMOVE_WEBSQL, kOrigin1); | 1224 BrowsingDataRemover::REMOVE_WEBSQL, kOrigin1); |
1225 | 1225 |
(...skipping 14 matching lines...) Expand all Loading... |
1240 kClientFile)); | 1240 kClientFile)); |
1241 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, | 1241 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, |
1242 kClientFile)); | 1242 kClientFile)); |
1243 } | 1243 } |
1244 | 1244 |
1245 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedProtectedOrigins) { | 1245 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedProtectedOrigins) { |
1246 // Protect kOrigin1. | 1246 // Protect kOrigin1. |
1247 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = | 1247 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = |
1248 new MockExtensionSpecialStoragePolicy; | 1248 new MockExtensionSpecialStoragePolicy; |
1249 mock_policy->AddProtected(kOrigin1.GetOrigin()); | 1249 mock_policy->AddProtected(kOrigin1.GetOrigin()); |
1250 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy); | 1250 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); |
1251 | 1251 |
1252 PopulateTestQuotaManagedData(GetMockManager()); | 1252 PopulateTestQuotaManagedData(GetMockManager()); |
1253 | 1253 |
1254 // Try to remove kOrigin1. Expect success. | 1254 // Try to remove kOrigin1. Expect success. |
1255 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, | 1255 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, |
1256 BrowsingDataRemover::REMOVE_APPCACHE | | 1256 BrowsingDataRemover::REMOVE_APPCACHE | |
1257 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1257 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
1258 BrowsingDataRemover::REMOVE_INDEXEDDB | | 1258 BrowsingDataRemover::REMOVE_INDEXEDDB | |
1259 BrowsingDataRemover::REMOVE_WEBSQL, true); | 1259 BrowsingDataRemover::REMOVE_WEBSQL, true); |
1260 | 1260 |
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1392 BlockUntilBrowsingDataRemoved( | 1392 BlockUntilBrowsingDataRemoved( |
1393 BrowsingDataRemover::LAST_HOUR, | 1393 BrowsingDataRemover::LAST_HOUR, |
1394 BrowsingDataRemover::REMOVE_HISTORY, false); | 1394 BrowsingDataRemover::REMOVE_HISTORY, false); |
1395 | 1395 |
1396 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); | 1396 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); |
1397 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 1397 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
1398 EXPECT_TRUE(tester.HasOrigin(std::string())); | 1398 EXPECT_TRUE(tester.HasOrigin(std::string())); |
1399 EXPECT_FALSE(tester.HasOrigin(kWebOrigin)); | 1399 EXPECT_FALSE(tester.HasOrigin(kWebOrigin)); |
1400 EXPECT_TRUE(tester.HasOrigin(kChromeOrigin)); | 1400 EXPECT_TRUE(tester.HasOrigin(kChromeOrigin)); |
1401 } | 1401 } |
OLD | NEW |