Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(126)

Side by Side Diff: headless/lib/browser/headless_browser_context_impl.cc

Issue 2092773002: headless: Allow per-context protocol handlers (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed comments Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
OLDNEW
« no previous file with comments | « headless/lib/browser/headless_browser_context_impl.h ('k') | headless/lib/browser/headless_browser_main_parts.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698