OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "headless/lib/browser/headless_browser_context_impl.h" | 5 #include "headless/lib/browser/headless_browser_context_impl.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 | 8 |
9 #include "base/memory/ptr_util.h" | 9 #include "base/memory/ptr_util.h" |
10 #include "base/path_service.h" | 10 #include "base/path_service.h" |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
60 CHECK(url_request_context_getter_); | 60 CHECK(url_request_context_getter_); |
61 return url_request_context_getter_->GetURLRequestContext()->host_resolver(); | 61 return url_request_context_getter_->GetURLRequestContext()->host_resolver(); |
62 } | 62 } |
63 | 63 |
64 net::URLRequestContext* HeadlessResourceContext::GetRequestContext() { | 64 net::URLRequestContext* HeadlessResourceContext::GetRequestContext() { |
65 CHECK(url_request_context_getter_); | 65 CHECK(url_request_context_getter_); |
66 return url_request_context_getter_->GetURLRequestContext(); | 66 return url_request_context_getter_->GetURLRequestContext(); |
67 } | 67 } |
68 | 68 |
69 HeadlessBrowserContextImpl::HeadlessBrowserContextImpl( | 69 HeadlessBrowserContextImpl::HeadlessBrowserContextImpl( |
| 70 ProtocolHandlerMap protocol_handlers, |
70 HeadlessBrowser::Options* options) | 71 HeadlessBrowser::Options* options) |
71 : resource_context_(new HeadlessResourceContext), options_(options) { | 72 : protocol_handlers_(std::move(protocol_handlers)), |
| 73 options_(options), |
| 74 resource_context_(new HeadlessResourceContext) { |
72 InitWhileIOAllowed(); | 75 InitWhileIOAllowed(); |
73 } | 76 } |
74 | 77 |
75 HeadlessBrowserContextImpl::~HeadlessBrowserContextImpl() { | 78 HeadlessBrowserContextImpl::~HeadlessBrowserContextImpl() { |
76 if (resource_context_) { | 79 if (resource_context_) { |
77 content::BrowserThread::DeleteSoon(content::BrowserThread::IO, FROM_HERE, | 80 content::BrowserThread::DeleteSoon(content::BrowserThread::IO, FROM_HERE, |
78 resource_context_.release()); | 81 resource_context_.release()); |
79 } | 82 } |
80 } | 83 } |
81 | 84 |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
146 | 149 |
147 net::URLRequestContextGetter* HeadlessBrowserContextImpl::CreateRequestContext( | 150 net::URLRequestContextGetter* HeadlessBrowserContextImpl::CreateRequestContext( |
148 content::ProtocolHandlerMap* protocol_handlers, | 151 content::ProtocolHandlerMap* protocol_handlers, |
149 content::URLRequestInterceptorScopedVector request_interceptors) { | 152 content::URLRequestInterceptorScopedVector request_interceptors) { |
150 scoped_refptr<HeadlessURLRequestContextGetter> url_request_context_getter( | 153 scoped_refptr<HeadlessURLRequestContextGetter> url_request_context_getter( |
151 new HeadlessURLRequestContextGetter( | 154 new HeadlessURLRequestContextGetter( |
152 content::BrowserThread::GetMessageLoopProxyForThread( | 155 content::BrowserThread::GetMessageLoopProxyForThread( |
153 content::BrowserThread::IO), | 156 content::BrowserThread::IO), |
154 content::BrowserThread::GetMessageLoopProxyForThread( | 157 content::BrowserThread::GetMessageLoopProxyForThread( |
155 content::BrowserThread::FILE), | 158 content::BrowserThread::FILE), |
156 protocol_handlers, std::move(request_interceptors), options())); | 159 protocol_handlers, std::move(protocol_handlers_), |
| 160 std::move(request_interceptors), options())); |
157 resource_context_->set_url_request_context_getter(url_request_context_getter); | 161 resource_context_->set_url_request_context_getter(url_request_context_getter); |
158 return url_request_context_getter.get(); | 162 return url_request_context_getter.get(); |
159 } | 163 } |
160 | 164 |
161 net::URLRequestContextGetter* | 165 net::URLRequestContextGetter* |
162 HeadlessBrowserContextImpl::CreateRequestContextForStoragePartition( | 166 HeadlessBrowserContextImpl::CreateRequestContextForStoragePartition( |
163 const base::FilePath& partition_path, | 167 const base::FilePath& partition_path, |
164 bool in_memory, | 168 bool in_memory, |
165 content::ProtocolHandlerMap* protocol_handlers, | 169 content::ProtocolHandlerMap* protocol_handlers, |
166 content::URLRequestInterceptorScopedVector request_interceptors) { | 170 content::URLRequestInterceptorScopedVector request_interceptors) { |
(...skipping 17 matching lines...) Expand all Loading... |
184 options_ = options; | 188 options_ = options; |
185 } | 189 } |
186 | 190 |
187 HeadlessBrowserContext::Builder::Builder(HeadlessBrowserImpl* browser) | 191 HeadlessBrowserContext::Builder::Builder(HeadlessBrowserImpl* browser) |
188 : browser_(browser) {} | 192 : browser_(browser) {} |
189 | 193 |
190 HeadlessBrowserContext::Builder::~Builder() = default; | 194 HeadlessBrowserContext::Builder::~Builder() = default; |
191 | 195 |
192 HeadlessBrowserContext::Builder::Builder(Builder&&) = default; | 196 HeadlessBrowserContext::Builder::Builder(Builder&&) = default; |
193 | 197 |
| 198 HeadlessBrowserContext::Builder& |
| 199 HeadlessBrowserContext::Builder::SetProtocolHandlers( |
| 200 ProtocolHandlerMap protocol_handlers) { |
| 201 protocol_handlers_ = std::move(protocol_handlers); |
| 202 return *this; |
| 203 } |
| 204 |
194 std::unique_ptr<HeadlessBrowserContext> | 205 std::unique_ptr<HeadlessBrowserContext> |
195 HeadlessBrowserContext::Builder::Build() { | 206 HeadlessBrowserContext::Builder::Build() { |
196 return base::WrapUnique(new HeadlessBrowserContextImpl(browser_->options())); | 207 return base::WrapUnique(new HeadlessBrowserContextImpl( |
| 208 std::move(protocol_handlers_), browser_->options())); |
197 } | 209 } |
198 | 210 |
199 } // namespace headless | 211 } // namespace headless |
OLD | NEW |