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 <stddef.h> | 5 #include <stddef.h> |
6 #include <memory> | 6 #include <memory> |
7 | 7 |
8 #include "base/bind.h" | 8 #include "base/bind.h" |
9 #include "base/callback.h" | 9 #include "base/callback.h" |
10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
11 #include "base/path_service.h" | 11 #include "base/path_service.h" |
12 #include "base/run_loop.h" | 12 #include "base/run_loop.h" |
13 #include "chrome/browser/browsing_data/browsing_data_helper.h" | 13 #include "chrome/browser/browsing_data/browsing_data_helper.h" |
14 #include "chrome/browser/browsing_data/browsing_data_remover.h" | 14 #include "chrome/browser/browsing_data/browsing_data_remover.h" |
15 #include "chrome/browser/browsing_data/browsing_data_remover_factory.h" | 15 #include "chrome/browser/browsing_data/browsing_data_remover_factory.h" |
16 #include "chrome/browser/browsing_data/browsing_data_remover_test_util.h" | 16 #include "chrome/browser/browsing_data/browsing_data_remover_test_util.h" |
17 #include "chrome/browser/browsing_data/cache_counter.h" | 17 #include "chrome/browser/browsing_data/cache_counter.h" |
18 #include "chrome/browser/browsing_data/origin_filter_builder.h" | 18 #include "chrome/browser/browsing_data/origin_filter_builder.h" |
19 #include "chrome/browser/chrome_notification_types.h" | 19 #include "chrome/browser/chrome_notification_types.h" |
20 #include "chrome/browser/profiles/profile.h" | 20 #include "chrome/browser/profiles/profile.h" |
21 #include "chrome/browser/ui/browser.h" | 21 #include "chrome/browser/ui/browser.h" |
22 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 22 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
23 #include "chrome/common/pref_names.h" | 23 #include "chrome/common/pref_names.h" |
24 #include "chrome/test/base/in_process_browser_test.h" | 24 #include "chrome/test/base/in_process_browser_test.h" |
25 #include "chrome/test/base/ui_test_utils.h" | 25 #include "chrome/test/base/ui_test_utils.h" |
| 26 #include "components/browsing_data/browsing_data_utils.h" |
26 #include "components/prefs/pref_service.h" | 27 #include "components/prefs/pref_service.h" |
27 #include "content/public/browser/browser_context.h" | 28 #include "content/public/browser/browser_context.h" |
28 #include "content/public/browser/browser_thread.h" | 29 #include "content/public/browser/browser_thread.h" |
29 #include "content/public/browser/download_manager.h" | 30 #include "content/public/browser/download_manager.h" |
30 #include "content/public/browser/web_contents.h" | 31 #include "content/public/browser/web_contents.h" |
31 #include "content/public/common/content_paths.h" | 32 #include "content/public/common/content_paths.h" |
32 #include "content/public/test/browser_test_utils.h" | 33 #include "content/public/test/browser_test_utils.h" |
33 #include "content/public/test/download_test_observer.h" | 34 #include "content/public/test/download_test_observer.h" |
34 #include "net/dns/mock_host_resolver.h" | 35 #include "net/dns/mock_host_resolver.h" |
35 #include "net/http/transport_security_state.h" | 36 #include "net/http/transport_security_state.h" |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
88 | 89 |
89 GURL download_url = ui_test_utils::GetTestUrl( | 90 GURL download_url = ui_test_utils::GetTestUrl( |
90 base::FilePath().AppendASCII("downloads"), | 91 base::FilePath().AppendASCII("downloads"), |
91 base::FilePath().AppendASCII("a_zip_file.zip")); | 92 base::FilePath().AppendASCII("a_zip_file.zip")); |
92 ui_test_utils::NavigateToURL(browser(), download_url); | 93 ui_test_utils::NavigateToURL(browser(), download_url); |
93 observer->WaitForFinished(); | 94 observer->WaitForFinished(); |
94 | 95 |
95 VerifyDownloadCount(1u); | 96 VerifyDownloadCount(1u); |
96 } | 97 } |
97 | 98 |
98 BrowsingDataCounter::ResultInt GetCacheSize() { | 99 browsing_data::BrowsingDataCounter::ResultInt GetCacheSize() { |
99 base::RunLoop run_loop; | 100 base::RunLoop run_loop; |
100 BrowsingDataCounter::ResultInt size; | 101 browsing_data::BrowsingDataCounter::ResultInt size; |
101 | 102 |
102 CacheCounter counter; | 103 Profile* profile = browser()->profile(); |
103 counter.Init(browser()->profile(), | 104 CacheCounter counter(profile); |
| 105 counter.Init(profile->GetPrefs(), |
104 base::Bind(&BrowsingDataRemoverBrowserTest::OnCacheSizeResult, | 106 base::Bind(&BrowsingDataRemoverBrowserTest::OnCacheSizeResult, |
105 base::Unretained(this), | 107 base::Unretained(this), base::Unretained(&run_loop), |
106 base::Unretained(&run_loop), | |
107 base::Unretained(&size))); | 108 base::Unretained(&size))); |
108 counter.Restart(); | 109 counter.Restart(); |
109 run_loop.Run(); | 110 run_loop.Run(); |
110 return size; | 111 return size; |
111 } | 112 } |
112 | 113 |
113 void RemoveAndWait(int remove_mask) { | 114 void RemoveAndWait(int remove_mask) { |
114 BrowsingDataRemover* remover = | 115 BrowsingDataRemover* remover = |
115 BrowsingDataRemoverFactory::GetForBrowserContext(browser()->profile()); | 116 BrowsingDataRemoverFactory::GetForBrowserContext(browser()->profile()); |
116 BrowsingDataRemoverCompletionObserver completion_observer(remover); | 117 BrowsingDataRemoverCompletionObserver completion_observer(remover); |
117 remover->Remove(BrowsingDataRemover::Period(BrowsingDataRemover::LAST_HOUR), | 118 remover->Remove(BrowsingDataRemover::Period(browsing_data::LAST_HOUR), |
118 remove_mask, BrowsingDataHelper::UNPROTECTED_WEB); | 119 remove_mask, BrowsingDataHelper::UNPROTECTED_WEB); |
119 completion_observer.BlockUntilCompletion(); | 120 completion_observer.BlockUntilCompletion(); |
120 } | 121 } |
121 | 122 |
122 void RemoveWithFilterAndWait( | 123 void RemoveWithFilterAndWait( |
123 int remove_mask, | 124 int remove_mask, |
124 const BrowsingDataFilterBuilder& filter_builder) { | 125 const BrowsingDataFilterBuilder& filter_builder) { |
125 BrowsingDataRemover* remover = | 126 BrowsingDataRemover* remover = |
126 BrowsingDataRemoverFactory::GetForBrowserContext(browser()->profile()); | 127 BrowsingDataRemoverFactory::GetForBrowserContext(browser()->profile()); |
127 BrowsingDataRemoverCompletionObserver completion_observer(remover); | 128 BrowsingDataRemoverCompletionObserver completion_observer(remover); |
128 remover->RemoveWithFilter( | 129 remover->RemoveWithFilter( |
129 BrowsingDataRemover::Period(BrowsingDataRemover::LAST_HOUR), | 130 BrowsingDataRemover::Period(browsing_data::LAST_HOUR), remove_mask, |
130 remove_mask, BrowsingDataHelper::UNPROTECTED_WEB, filter_builder); | 131 BrowsingDataHelper::UNPROTECTED_WEB, filter_builder); |
131 completion_observer.BlockUntilCompletion(); | 132 completion_observer.BlockUntilCompletion(); |
132 } | 133 } |
133 | 134 |
134 private: | 135 private: |
135 void OnCacheSizeResult( | 136 void OnCacheSizeResult( |
136 base::RunLoop* run_loop, | 137 base::RunLoop* run_loop, |
137 BrowsingDataCounter::ResultInt* out_size, | 138 browsing_data::BrowsingDataCounter::ResultInt* out_size, |
138 std::unique_ptr<BrowsingDataCounter::Result> result) { | 139 std::unique_ptr<browsing_data::BrowsingDataCounter::Result> result) { |
139 if (!result->Finished()) | 140 if (!result->Finished()) |
140 return; | 141 return; |
141 | 142 |
142 *out_size = static_cast<BrowsingDataCounter::FinishedResult*>( | 143 *out_size = |
143 result.get())->Value(); | 144 static_cast<browsing_data::BrowsingDataCounter::FinishedResult*>( |
| 145 result.get()) |
| 146 ->Value(); |
144 run_loop->Quit(); | 147 run_loop->Quit(); |
145 } | 148 } |
146 }; | 149 }; |
147 | 150 |
148 class BrowsingDataRemoverTransportSecurityStateBrowserTest | 151 class BrowsingDataRemoverTransportSecurityStateBrowserTest |
149 : public BrowsingDataRemoverBrowserTest { | 152 : public BrowsingDataRemoverBrowserTest { |
150 public: | 153 public: |
151 BrowsingDataRemoverTransportSecurityStateBrowserTest() {} | 154 BrowsingDataRemoverTransportSecurityStateBrowserTest() {} |
152 | 155 |
153 void SetUpOnMainThread() override { | 156 void SetUpOnMainThread() override { |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
230 // in ConditionalCacheDeletionHelperBrowsertest. | 233 // in ConditionalCacheDeletionHelperBrowsertest. |
231 IN_PROC_BROWSER_TEST_F(BrowsingDataRemoverBrowserTest, Cache) { | 234 IN_PROC_BROWSER_TEST_F(BrowsingDataRemoverBrowserTest, Cache) { |
232 // Load several resources. | 235 // Load several resources. |
233 GURL url1 = embedded_test_server()->GetURL("/simple.html"); | 236 GURL url1 = embedded_test_server()->GetURL("/simple.html"); |
234 GURL url2 = embedded_test_server()->GetURL(kExampleHost, "/simple.html"); | 237 GURL url2 = embedded_test_server()->GetURL(kExampleHost, "/simple.html"); |
235 ASSERT_FALSE(url::IsSameOriginWith(url1, url2)); | 238 ASSERT_FALSE(url::IsSameOriginWith(url1, url2)); |
236 ui_test_utils::NavigateToURL(browser(), url1); | 239 ui_test_utils::NavigateToURL(browser(), url1); |
237 ui_test_utils::NavigateToURL(browser(), url2); | 240 ui_test_utils::NavigateToURL(browser(), url2); |
238 | 241 |
239 // The cache is nonempty, because we created entries by visiting websites. | 242 // The cache is nonempty, because we created entries by visiting websites. |
240 BrowsingDataCounter::ResultInt original_size = GetCacheSize(); | 243 browsing_data::BrowsingDataCounter::ResultInt original_size = GetCacheSize(); |
241 EXPECT_GT(original_size, 0); | 244 EXPECT_GT(original_size, 0); |
242 | 245 |
243 // Partially delete cache data. Delete data for localhost, which is the origin | 246 // Partially delete cache data. Delete data for localhost, which is the origin |
244 // of |url1|, but not for |kExampleHost|, which is the origin of |url2|. | 247 // of |url1|, but not for |kExampleHost|, which is the origin of |url2|. |
245 OriginFilterBuilder filter_builder(OriginFilterBuilder::WHITELIST); | 248 OriginFilterBuilder filter_builder(OriginFilterBuilder::WHITELIST); |
246 filter_builder.AddOrigin(url::Origin(url1)); | 249 filter_builder.AddOrigin(url::Origin(url1)); |
247 RemoveWithFilterAndWait(BrowsingDataRemover::REMOVE_CACHE, filter_builder); | 250 RemoveWithFilterAndWait(BrowsingDataRemover::REMOVE_CACHE, filter_builder); |
248 | 251 |
249 // After the partial deletion, the cache should be smaller but still nonempty. | 252 // After the partial deletion, the cache should be smaller but still nonempty. |
250 BrowsingDataCounter::ResultInt new_size = GetCacheSize(); | 253 browsing_data::BrowsingDataCounter::ResultInt new_size = GetCacheSize(); |
251 EXPECT_LT(new_size, original_size); | 254 EXPECT_LT(new_size, original_size); |
252 | 255 |
253 // Another partial deletion with the same filter should have no effect. | 256 // Another partial deletion with the same filter should have no effect. |
254 RemoveWithFilterAndWait(BrowsingDataRemover::REMOVE_CACHE, filter_builder); | 257 RemoveWithFilterAndWait(BrowsingDataRemover::REMOVE_CACHE, filter_builder); |
255 EXPECT_EQ(new_size, GetCacheSize()); | 258 EXPECT_EQ(new_size, GetCacheSize()); |
256 | 259 |
257 // Delete the remaining data. | 260 // Delete the remaining data. |
258 RemoveAndWait(BrowsingDataRemover::REMOVE_CACHE); | 261 RemoveAndWait(BrowsingDataRemover::REMOVE_CACHE); |
259 | 262 |
260 // The cache is empty. | 263 // The cache is empty. |
(...skipping 23 matching lines...) Expand all Loading... |
284 base::RunLoop run_loop; | 287 base::RunLoop run_loop; |
285 BrowserThread::PostTaskAndReply( | 288 BrowserThread::PostTaskAndReply( |
286 BrowserThread::IO, FROM_HERE, | 289 BrowserThread::IO, FROM_HERE, |
287 base::Bind(&BrowsingDataRemoverTransportSecurityStateBrowserTest:: | 290 base::Bind(&BrowsingDataRemoverTransportSecurityStateBrowserTest:: |
288 CheckTransportSecurityState, | 291 CheckTransportSecurityState, |
289 this, | 292 this, |
290 base::RetainedRef(browser()->profile()->GetRequestContext()), | 293 base::RetainedRef(browser()->profile()->GetRequestContext()), |
291 false /* should not be cleared */), | 294 false /* should not be cleared */), |
292 run_loop.QuitClosure()); | 295 run_loop.QuitClosure()); |
293 } | 296 } |
OLD | NEW |