| 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 |