Chromium Code Reviews| 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 <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <list> | 10 #include <list> |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 71 #include "content/public/browser/browser_context.h" | 71 #include "content/public/browser/browser_context.h" |
| 72 #include "content/public/browser/cookie_store_factory.h" | 72 #include "content/public/browser/cookie_store_factory.h" |
| 73 #include "content/public/browser/dom_storage_context.h" | 73 #include "content/public/browser/dom_storage_context.h" |
| 74 #include "content/public/browser/local_storage_usage_info.h" | 74 #include "content/public/browser/local_storage_usage_info.h" |
| 75 #include "content/public/browser/storage_partition.h" | 75 #include "content/public/browser/storage_partition.h" |
| 76 #include "content/public/test/mock_download_manager.h" | 76 #include "content/public/test/mock_download_manager.h" |
| 77 #include "content/public/test/test_browser_thread.h" | 77 #include "content/public/test/test_browser_thread.h" |
| 78 #include "content/public/test/test_browser_thread_bundle.h" | 78 #include "content/public/test/test_browser_thread_bundle.h" |
| 79 #include "content/public/test/test_utils.h" | 79 #include "content/public/test/test_utils.h" |
| 80 #include "net/cookies/cookie_store.h" | 80 #include "net/cookies/cookie_store.h" |
| 81 #include "net/http/http_network_session.h" | |
| 82 #include "net/http/http_transaction_factory.h" | |
| 81 #include "net/ssl/channel_id_service.h" | 83 #include "net/ssl/channel_id_service.h" |
| 82 #include "net/ssl/channel_id_store.h" | 84 #include "net/ssl/channel_id_store.h" |
| 83 #include "net/ssl/ssl_client_cert_type.h" | 85 #include "net/ssl/ssl_client_cert_type.h" |
| 84 #include "net/url_request/url_request_context.h" | 86 #include "net/url_request/url_request_context.h" |
| 85 #include "net/url_request/url_request_context_getter.h" | 87 #include "net/url_request/url_request_context_getter.h" |
| 86 #include "testing/gmock/include/gmock/gmock.h" | 88 #include "testing/gmock/include/gmock/gmock.h" |
| 87 #include "testing/gtest/include/gtest/gtest.h" | 89 #include "testing/gtest/include/gtest/gtest.h" |
| 88 #include "third_party/skia/include/core/SkBitmap.h" | 90 #include "third_party/skia/include/core/SkBitmap.h" |
| 89 #include "ui/gfx/favicon_size.h" | 91 #include "ui/gfx/favicon_size.h" |
| 90 #include "url/origin.h" | 92 #include "url/origin.h" |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 134 const char kTestOrigin2[] = "http://host2.com:1/"; | 136 const char kTestOrigin2[] = "http://host2.com:1/"; |
| 135 const char kTestOrigin3[] = "http://host3.com:1/"; | 137 const char kTestOrigin3[] = "http://host3.com:1/"; |
| 136 const char kTestRegisterableDomain3[] = "host3.com"; | 138 const char kTestRegisterableDomain3[] = "host3.com"; |
| 137 const char kTestOrigin4[] = "https://host3.com:1/"; | 139 const char kTestOrigin4[] = "https://host3.com:1/"; |
| 138 const char kTestOriginExt[] = "chrome-extension://abcdefghijklmnopqrstuvwxyz/"; | 140 const char kTestOriginExt[] = "chrome-extension://abcdefghijklmnopqrstuvwxyz/"; |
| 139 const char kTestOriginDevTools[] = "chrome-devtools://abcdefghijklmnopqrstuvw/"; | 141 const char kTestOriginDevTools[] = "chrome-devtools://abcdefghijklmnopqrstuvw/"; |
| 140 | 142 |
| 141 // For Autofill. | 143 // For Autofill. |
| 142 const char kWebOrigin[] = "https://www.example.com/"; | 144 const char kWebOrigin[] = "https://www.example.com/"; |
| 143 | 145 |
| 146 // For HTTP auth. | |
| 147 const char kTestRealm[] = "TestRealm"; | |
| 148 | |
| 144 const GURL kOrigin1(kTestOrigin1); | 149 const GURL kOrigin1(kTestOrigin1); |
| 145 const GURL kOrigin2(kTestOrigin2); | 150 const GURL kOrigin2(kTestOrigin2); |
| 146 const GURL kOrigin3(kTestOrigin3); | 151 const GURL kOrigin3(kTestOrigin3); |
| 147 const GURL kOrigin4(kTestOrigin4); | 152 const GURL kOrigin4(kTestOrigin4); |
| 148 const GURL kOriginExt(kTestOriginExt); | 153 const GURL kOriginExt(kTestOriginExt); |
| 149 const GURL kOriginDevTools(kTestOriginDevTools); | 154 const GURL kOriginDevTools(kTestOriginDevTools); |
| 150 | 155 |
| 151 const base::FilePath::CharType kDomStorageOrigin1[] = | 156 const base::FilePath::CharType kDomStorageOrigin1[] = |
| 152 FILE_PATH_LITERAL("http_host1_1.localstorage"); | 157 FILE_PATH_LITERAL("http_host1_1.localstorage"); |
| 153 | 158 |
| (...skipping 683 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 837 // We don't own these pointers. | 842 // We don't own these pointers. |
| 838 TestingProfile* profile_; | 843 TestingProfile* profile_; |
| 839 content::DOMStorageContext* dom_storage_context_ = nullptr; | 844 content::DOMStorageContext* dom_storage_context_ = nullptr; |
| 840 | 845 |
| 841 std::vector<content::LocalStorageUsageInfo> infos_; | 846 std::vector<content::LocalStorageUsageInfo> infos_; |
| 842 base::Closure quit_closure_; | 847 base::Closure quit_closure_; |
| 843 | 848 |
| 844 DISALLOW_COPY_AND_ASSIGN(RemoveLocalStorageTester); | 849 DISALLOW_COPY_AND_ASSIGN(RemoveLocalStorageTester); |
| 845 }; | 850 }; |
| 846 | 851 |
| 852 class ClearHttpAuthDataTester { | |
|
mmenke
2016/08/09 14:40:20
Think this makes the tests needlessly obscure. Lo
Tomasz Moniuszko
2016/08/25 10:32:59
Done. I inlined the code.
| |
| 853 public: | |
| 854 explicit ClearHttpAuthDataTester(TestingProfile* profile) { | |
| 855 net::HttpNetworkSession* http_session = profile->GetRequestContext() | |
| 856 ->GetURLRequestContext() | |
| 857 ->http_transaction_factory() | |
| 858 ->GetSession(); | |
| 859 DCHECK(http_session); | |
| 860 http_auth_cache_ = http_session->http_auth_cache(); | |
| 861 | |
| 862 http_auth_cache_->Add(kOrigin1, kTestRealm, | |
| 863 net::HttpAuth::AUTH_SCHEME_BASIC, "test challenge", | |
| 864 net::AuthCredentials(base::ASCIIToUTF16("foo"), | |
| 865 base::ASCIIToUTF16("bar")), | |
| 866 "/"); | |
| 867 CHECK(http_auth_cache_->Lookup(kOrigin1, kTestRealm, | |
| 868 net::HttpAuth::AUTH_SCHEME_BASIC)); | |
| 869 } | |
| 870 | |
| 871 ~ClearHttpAuthDataTester() { | |
| 872 EXPECT_EQ(nullptr, | |
| 873 http_auth_cache_->Lookup(kOrigin1, kTestRealm, | |
| 874 net::HttpAuth::AUTH_SCHEME_BASIC)); | |
| 875 } | |
| 876 | |
| 877 private: | |
| 878 net::HttpAuthCache* http_auth_cache_; | |
| 879 | |
| 880 DISALLOW_COPY_AND_ASSIGN(ClearHttpAuthDataTester); | |
| 881 }; | |
| 882 | |
| 847 class MockDomainReliabilityService : public DomainReliabilityService { | 883 class MockDomainReliabilityService : public DomainReliabilityService { |
| 848 public: | 884 public: |
| 849 MockDomainReliabilityService() {} | 885 MockDomainReliabilityService() {} |
| 850 | 886 |
| 851 ~MockDomainReliabilityService() override {} | 887 ~MockDomainReliabilityService() override {} |
| 852 | 888 |
| 853 std::unique_ptr<DomainReliabilityMonitor> CreateMonitor( | 889 std::unique_ptr<DomainReliabilityMonitor> CreateMonitor( |
| 854 scoped_refptr<base::SingleThreadTaskRunner> network_task_runner) | 890 scoped_refptr<base::SingleThreadTaskRunner> network_task_runner) |
| 855 override { | 891 override { |
| 856 NOTREACHED(); | 892 NOTREACHED(); |
| (...skipping 1735 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2592 host_content_settings_map, CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, | 2628 host_content_settings_map, CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, |
| 2593 base::Bind(&MatchPrimaryPattern, http_pattern)); | 2629 base::Bind(&MatchPrimaryPattern, http_pattern)); |
| 2594 // Verify we only have one, and it's url1. | 2630 // Verify we only have one, and it's url1. |
| 2595 host_content_settings_map->GetSettingsForOneType( | 2631 host_content_settings_map->GetSettingsForOneType( |
| 2596 CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), &host_settings); | 2632 CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), &host_settings); |
| 2597 EXPECT_EQ(1u, host_settings.size()); | 2633 EXPECT_EQ(1u, host_settings.size()); |
| 2598 EXPECT_EQ(ContentSettingsPattern::FromURLNoWildcard(url1), | 2634 EXPECT_EQ(ContentSettingsPattern::FromURLNoWildcard(url1), |
| 2599 host_settings[0].primary_pattern); | 2635 host_settings[0].primary_pattern); |
| 2600 } | 2636 } |
| 2601 | 2637 |
| 2638 // Test that removing cookies clears HTTP auth data. | |
| 2639 TEST_F(BrowsingDataRemoverTest, ClearHttpAuthCache_RemoveCookies) { | |
| 2640 ClearHttpAuthDataTester tester(GetProfile()); | |
| 2641 | |
| 2642 BlockUntilBrowsingDataRemoved(browsing_data::ALL_TIME, | |
| 2643 BrowsingDataRemover::REMOVE_COOKIES, false); | |
| 2644 } | |
| 2645 | |
| 2646 // Test that removing passwords clears HTTP auth data. | |
| 2647 TEST_F(BrowsingDataRemoverTest, ClearHttpAuthCache_RemovePasswords) { | |
| 2648 ClearHttpAuthDataTester tester(GetProfile()); | |
| 2649 | |
| 2650 BlockUntilBrowsingDataRemoved(browsing_data::ALL_TIME, | |
| 2651 BrowsingDataRemover::REMOVE_PASSWORDS, false); | |
| 2652 } | |
| 2653 | |
| 2602 class MultipleTasksObserver { | 2654 class MultipleTasksObserver { |
| 2603 public: | 2655 public: |
| 2604 // A simple implementation of BrowsingDataRemover::Observer. | 2656 // A simple implementation of BrowsingDataRemover::Observer. |
| 2605 // MultipleTasksObserver will use several instances of Target to test | 2657 // MultipleTasksObserver will use several instances of Target to test |
| 2606 // that completion callbacks are returned to the correct one. | 2658 // that completion callbacks are returned to the correct one. |
| 2607 class Target : public BrowsingDataRemover::Observer { | 2659 class Target : public BrowsingDataRemover::Observer { |
| 2608 public: | 2660 public: |
| 2609 Target(MultipleTasksObserver* parent, BrowsingDataRemover* remover) | 2661 Target(MultipleTasksObserver* parent, BrowsingDataRemover* remover) |
| 2610 : parent_(parent), | 2662 : parent_(parent), |
| 2611 observer_(this) { | 2663 observer_(this) { |
| (...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2787 EXPECT_TRUE(remover->is_removing()); | 2839 EXPECT_TRUE(remover->is_removing()); |
| 2788 | 2840 |
| 2789 // Add one more deletion and wait for it. | 2841 // Add one more deletion and wait for it. |
| 2790 BlockUntilBrowsingDataRemoved( | 2842 BlockUntilBrowsingDataRemoved( |
| 2791 browsing_data::ALL_TIME, | 2843 browsing_data::ALL_TIME, |
| 2792 BrowsingDataRemover::REMOVE_COOKIES, | 2844 BrowsingDataRemover::REMOVE_COOKIES, |
| 2793 BrowsingDataHelper::UNPROTECTED_WEB); | 2845 BrowsingDataHelper::UNPROTECTED_WEB); |
| 2794 | 2846 |
| 2795 EXPECT_FALSE(remover->is_removing()); | 2847 EXPECT_FALSE(remover->is_removing()); |
| 2796 } | 2848 } |
| OLD | NEW |