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

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

Issue 2374063002: Headless: expose WebPreferences to embedder, add --hide-scrollbars. (Closed)
Patch Set: Address comments, add test. Created 4 years, 2 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 #include <string> 8 #include <string>
9 #include <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 98
99 if (resource_context_) { 99 if (resource_context_) {
100 content::BrowserThread::DeleteSoon(content::BrowserThread::IO, FROM_HERE, 100 content::BrowserThread::DeleteSoon(content::BrowserThread::IO, FROM_HERE,
101 resource_context_.release()); 101 resource_context_.release());
102 } 102 }
103 } 103 }
104 104
105 // static 105 // static
106 HeadlessBrowserContextImpl* HeadlessBrowserContextImpl::From( 106 HeadlessBrowserContextImpl* HeadlessBrowserContextImpl::From(
107 HeadlessBrowserContext* browser_context) { 107 HeadlessBrowserContext* browser_context) {
108 return reinterpret_cast<HeadlessBrowserContextImpl*>(browser_context); 108 return static_cast<HeadlessBrowserContextImpl*>(browser_context);
109 } 109 }
110 110
111 // static 111 // static
112 HeadlessBrowserContextImpl* HeadlessBrowserContextImpl::From(
113 content::BrowserContext* browser_context) {
114 return static_cast<HeadlessBrowserContextImpl*>(browser_context);
115 }
116
117 // static
112 std::unique_ptr<HeadlessBrowserContextImpl> HeadlessBrowserContextImpl::Create( 118 std::unique_ptr<HeadlessBrowserContextImpl> HeadlessBrowserContextImpl::Create(
113 HeadlessBrowserContext::Builder* builder) { 119 HeadlessBrowserContext::Builder* builder) {
114 return base::WrapUnique(new HeadlessBrowserContextImpl( 120 return base::WrapUnique(new HeadlessBrowserContextImpl(
115 builder->browser_, std::move(builder->options_))); 121 builder->browser_, std::move(builder->options_)));
116 } 122 }
117 123
118 HeadlessWebContents::Builder 124 HeadlessWebContents::Builder
119 HeadlessBrowserContextImpl::CreateWebContentsBuilder() { 125 HeadlessBrowserContextImpl::CreateWebContentsBuilder() {
120 DCHECK(browser_->BrowserMainThread()->BelongsToCurrentThread()); 126 DCHECK(browser_->BrowserMainThread()->BelongsToCurrentThread());
121 return HeadlessWebContents::Builder(this); 127 return HeadlessWebContents::Builder(this);
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after
356 return *this; 362 return *this;
357 } 363 }
358 364
359 HeadlessBrowserContext::Builder& 365 HeadlessBrowserContext::Builder&
360 HeadlessBrowserContext::Builder::EnableUnsafeNetworkAccessWithMojoBindings( 366 HeadlessBrowserContext::Builder::EnableUnsafeNetworkAccessWithMojoBindings(
361 bool enable_http_and_https_if_mojo_used) { 367 bool enable_http_and_https_if_mojo_used) {
362 enable_http_and_https_if_mojo_used_ = enable_http_and_https_if_mojo_used; 368 enable_http_and_https_if_mojo_used_ = enable_http_and_https_if_mojo_used;
363 return *this; 369 return *this;
364 } 370 }
365 371
372 HeadlessBrowserContext::Builder&
373 HeadlessBrowserContext::Builder::SetOverrideWebPreferencesCallback(
374 base::Callback<void(WebPreferences*)> callback) {
375 options_->override_web_preferences_callback_ = std::move(callback);
376 return *this;
377 }
378
366 HeadlessBrowserContext* HeadlessBrowserContext::Builder::Build() { 379 HeadlessBrowserContext* HeadlessBrowserContext::Builder::Build() {
367 if (!mojo_bindings_.empty()) { 380 if (!mojo_bindings_.empty()) {
368 std::unique_ptr<InMemoryProtocolHandler> headless_mojom_protocol_handler( 381 std::unique_ptr<InMemoryProtocolHandler> headless_mojom_protocol_handler(
369 new InMemoryProtocolHandler()); 382 new InMemoryProtocolHandler());
370 for (const MojoBindings& binding : mojo_bindings_) { 383 for (const MojoBindings& binding : mojo_bindings_) {
371 headless_mojom_protocol_handler->InsertResponse( 384 headless_mojom_protocol_handler->InsertResponse(
372 binding.mojom_name, 385 binding.mojom_name,
373 InMemoryProtocolHandler::Response(binding.js_bindings, 386 InMemoryProtocolHandler::Response(binding.js_bindings,
374 "application/javascript")); 387 "application/javascript"));
375 } 388 }
(...skipping 18 matching lines...) Expand all
394 HeadlessBrowserContext::Builder::MojoBindings::MojoBindings() {} 407 HeadlessBrowserContext::Builder::MojoBindings::MojoBindings() {}
395 408
396 HeadlessBrowserContext::Builder::MojoBindings::MojoBindings( 409 HeadlessBrowserContext::Builder::MojoBindings::MojoBindings(
397 const std::string& mojom_name, 410 const std::string& mojom_name,
398 const std::string& js_bindings) 411 const std::string& js_bindings)
399 : mojom_name(mojom_name), js_bindings(js_bindings) {} 412 : mojom_name(mojom_name), js_bindings(js_bindings) {}
400 413
401 HeadlessBrowserContext::Builder::MojoBindings::~MojoBindings() {} 414 HeadlessBrowserContext::Builder::MojoBindings::~MojoBindings() {}
402 415
403 } // namespace headless 416 } // namespace headless
OLDNEW
« no previous file with comments | « headless/lib/browser/headless_browser_context_impl.h ('k') | headless/lib/browser/headless_browser_context_options.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698