| 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/prerender/prerender_test_utils.h" | 5 #include "chrome/browser/prerender/prerender_test_utils.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 #include <set> | 8 #include <set> |
| 9 #include <string> | 9 #include <string> |
| 10 #include <utility> | 10 #include <utility> |
| 11 #include <vector> | 11 #include <vector> |
| 12 | 12 |
| 13 #include "base/callback.h" | 13 #include "base/callback.h" |
| 14 #include "base/command_line.h" | 14 #include "base/command_line.h" |
| 15 #include "base/memory/ptr_util.h" | 15 #include "base/memory/ptr_util.h" |
| 16 #include "base/run_loop.h" | 16 #include "base/run_loop.h" |
| 17 #include "base/strings/utf_string_conversions.h" | 17 #include "base/strings/utf_string_conversions.h" |
| 18 #include "base/task_scheduler/post_task.h" |
| 18 #include "base/threading/sequenced_worker_pool.h" | 19 #include "base/threading/sequenced_worker_pool.h" |
| 19 #include "chrome/browser/loader/chrome_resource_dispatcher_host_delegate.h" | 20 #include "chrome/browser/loader/chrome_resource_dispatcher_host_delegate.h" |
| 20 #include "chrome/browser/prerender/prerender_manager.h" | 21 #include "chrome/browser/prerender/prerender_manager.h" |
| 21 #include "chrome/browser/prerender/prerender_manager_factory.h" | 22 #include "chrome/browser/prerender/prerender_manager_factory.h" |
| 22 #include "chrome/browser/profiles/profile.h" | 23 #include "chrome/browser/profiles/profile.h" |
| 23 #include "chrome/browser/safe_browsing/local_database_manager.h" | 24 #include "chrome/browser/safe_browsing/local_database_manager.h" |
| 24 #include "chrome/browser/ui/browser.h" | 25 #include "chrome/browser/ui/browser.h" |
| 25 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 26 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
| 26 #include "chrome/common/pref_names.h" | 27 #include "chrome/common/pref_names.h" |
| 27 #include "chrome/grit/generated_resources.h" | 28 #include "chrome/grit/generated_resources.h" |
| (...skipping 25 matching lines...) Expand all Loading... |
| 53 // Wrapper over URLRequestMockHTTPJob that exposes extra callbacks. | 54 // Wrapper over URLRequestMockHTTPJob that exposes extra callbacks. |
| 54 class MockHTTPJob : public net::URLRequestMockHTTPJob { | 55 class MockHTTPJob : public net::URLRequestMockHTTPJob { |
| 55 public: | 56 public: |
| 56 MockHTTPJob(net::URLRequest* request, | 57 MockHTTPJob(net::URLRequest* request, |
| 57 net::NetworkDelegate* delegate, | 58 net::NetworkDelegate* delegate, |
| 58 const base::FilePath& file) | 59 const base::FilePath& file) |
| 59 : net::URLRequestMockHTTPJob( | 60 : net::URLRequestMockHTTPJob( |
| 60 request, | 61 request, |
| 61 delegate, | 62 delegate, |
| 62 file, | 63 file, |
| 63 BrowserThread::GetBlockingPool()->GetTaskRunnerWithShutdownBehavior( | 64 base::CreateTaskRunnerWithTraits( |
| 64 base::SequencedWorkerPool::SKIP_ON_SHUTDOWN)) {} | 65 base::TaskTraits() |
| 66 .MayBlock() |
| 67 .WithPriority(base::TaskPriority::BACKGROUND) |
| 68 .WithShutdownBehavior( |
| 69 base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN))) {} |
| 65 | 70 |
| 66 void set_start_callback(const base::Closure& start_callback) { | 71 void set_start_callback(const base::Closure& start_callback) { |
| 67 start_callback_ = start_callback; | 72 start_callback_ = start_callback; |
| 68 } | 73 } |
| 69 | 74 |
| 70 void Start() override { | 75 void Start() override { |
| 71 if (!start_callback_.is_null()) | 76 if (!start_callback_.is_null()) |
| 72 start_callback_.Run(); | 77 start_callback_.Run(); |
| 73 net::URLRequestMockHTTPJob::Start(); | 78 net::URLRequestMockHTTPJob::Start(); |
| 74 } | 79 } |
| (...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 186 net::URLRequestJob* MaybeInterceptRequest( | 191 net::URLRequestJob* MaybeInterceptRequest( |
| 187 net::URLRequest* request, | 192 net::URLRequest* request, |
| 188 net::NetworkDelegate* network_delegate) const override { | 193 net::NetworkDelegate* network_delegate) const override { |
| 189 if (first_run_) { | 194 if (first_run_) { |
| 190 first_run_ = false; | 195 first_run_ = false; |
| 191 if (!callback_.is_null()) | 196 if (!callback_.is_null()) |
| 192 callback_.Run(request); | 197 callback_.Run(request); |
| 193 return new HangingURLRequestJob(request, network_delegate); | 198 return new HangingURLRequestJob(request, network_delegate); |
| 194 } | 199 } |
| 195 return new net::URLRequestMockHTTPJob( | 200 return new net::URLRequestMockHTTPJob( |
| 196 request, | 201 request, network_delegate, file_, |
| 197 network_delegate, | 202 base::CreateTaskRunnerWithTraits( |
| 198 file_, | 203 base::TaskTraits() |
| 199 BrowserThread::GetBlockingPool()->GetTaskRunnerWithShutdownBehavior( | 204 .MayBlock() |
| 200 base::SequencedWorkerPool::SKIP_ON_SHUTDOWN)); | 205 .WithPriority(base::TaskPriority::BACKGROUND) |
| 206 .WithShutdownBehavior( |
| 207 base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN))); |
| 201 } | 208 } |
| 202 | 209 |
| 203 private: | 210 private: |
| 204 base::FilePath file_; | 211 base::FilePath file_; |
| 205 base::Callback<void(net::URLRequest*)> callback_; | 212 base::Callback<void(net::URLRequest*)> callback_; |
| 206 mutable bool first_run_; | 213 mutable bool first_run_; |
| 207 }; | 214 }; |
| 208 | 215 |
| 209 // An ExternalProtocolHandler that blocks everything and asserts it never is | 216 // An ExternalProtocolHandler that blocks everything and asserts it never is |
| 210 // called. | 217 // called. |
| (...skipping 616 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 827 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 834 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 828 content::BrowserThread::PostTask( | 835 content::BrowserThread::PostTask( |
| 829 content::BrowserThread::IO, FROM_HERE, | 836 content::BrowserThread::IO, FROM_HERE, |
| 830 base::BindOnce(&CreateHangingFirstRequestInterceptorOnIO, url, file, | 837 base::BindOnce(&CreateHangingFirstRequestInterceptorOnIO, url, file, |
| 831 callback_io)); | 838 callback_io)); |
| 832 } | 839 } |
| 833 | 840 |
| 834 } // namespace test_utils | 841 } // namespace test_utils |
| 835 | 842 |
| 836 } // namespace prerender | 843 } // namespace prerender |
| OLD | NEW |