Chromium Code Reviews| Index: headless/lib/browser/headless_browser_impl.cc |
| diff --git a/headless/lib/browser/headless_browser_impl.cc b/headless/lib/browser/headless_browser_impl.cc |
| index 0a8cf74c71ed47867f4b1b889711201f46b819a3..89d42559ca61be648a20b870bbb7731f88b6c4f7 100644 |
| --- a/headless/lib/browser/headless_browser_impl.cc |
| +++ b/headless/lib/browser/headless_browser_impl.cc |
| @@ -11,7 +11,7 @@ |
| #include "content/public/app/content_main.h" |
| #include "content/public/browser/browser_thread.h" |
| #include "content/public/browser/web_contents.h" |
| -#include "headless/lib/browser/headless_browser_context.h" |
| +#include "headless/lib/browser/headless_browser_context_impl.h" |
| #include "headless/lib/browser/headless_browser_main_parts.h" |
| #include "headless/lib/browser/headless_web_contents_impl.h" |
| #include "headless/lib/browser/headless_window_tree_client.h" |
| @@ -33,20 +33,48 @@ HeadlessBrowserImpl::HeadlessBrowserImpl( |
| HeadlessBrowserImpl::~HeadlessBrowserImpl() {} |
| +HeadlessWebContents::Builder HeadlessBrowserImpl::CreateWebContentsBuilder() { |
| + DCHECK(BrowserMainThread()->BelongsToCurrentThread()); |
| + return HeadlessWebContents::Builder(this); |
| +} |
| + |
| +HeadlessBrowserContext::Builder |
| +HeadlessBrowserImpl::CreateBrowserContextBuilder() { |
| + DCHECK(BrowserMainThread()->BelongsToCurrentThread()); |
| + return HeadlessBrowserContext::Builder(this); |
| +} |
| + |
| HeadlessWebContents* HeadlessBrowserImpl::CreateWebContents( |
| - const GURL& initial_url, |
| - const gfx::Size& size) { |
| + HeadlessWebContents::Builder* builder) { |
| DCHECK(BrowserMainThread()->BelongsToCurrentThread()); |
| + HeadlessBrowserContextImpl* browser_context_impl; |
| + if (builder->browser_context_) { |
| + browser_context_impl = reinterpret_cast<HeadlessBrowserContextImpl*>( |
|
alex clarke (OOO till 29th)
2016/06/09 09:15:08
Nit: Elsewhere we've used the style HeadlessBrowse
Sami
2016/06/09 11:14:39
Thanks for the reminder, done.
|
| + builder->browser_context_); |
| + } else { |
| + browser_context_impl = browser_main_parts_->default_browser_context(); |
| + } |
| + |
| std::unique_ptr<HeadlessWebContentsImpl> headless_web_contents = |
| - HeadlessWebContentsImpl::Create(browser_context(), |
| - window_tree_host_->window(), size, this); |
| + HeadlessWebContentsImpl::Create(browser_context_impl, |
|
alex clarke (OOO till 29th)
2016/06/09 09:15:08
I wonder if it would be cleaner to pass the builde
Sami
2016/06/09 11:14:39
Yeah, I think that will be more maintainable in th
|
| + window_tree_host_->window(), |
| + builder->window_size_, this); |
| - if (!headless_web_contents->OpenURL(initial_url)) |
| + if (!headless_web_contents->OpenURL(builder->initial_url_)) |
| return nullptr; |
| return RegisterWebContents(std::move(headless_web_contents)); |
| } |
| +HeadlessWebContents* HeadlessBrowserImpl::CreateWebContents( |
| + const GURL& initial_url, |
| + const gfx::Size& size) { |
| + return CreateWebContentsBuilder() |
| + .SetInitialURL(initial_url) |
| + .SetWindowSize(size) |
| + .Build(); |
| +} |
| + |
| scoped_refptr<base::SingleThreadTaskRunner> |
| HeadlessBrowserImpl::BrowserMainThread() const { |
| return content::BrowserThread::GetMessageLoopProxyForThread( |
| @@ -76,12 +104,6 @@ std::vector<HeadlessWebContents*> HeadlessBrowserImpl::GetAllWebContents() { |
| return result; |
| } |
| -HeadlessBrowserContext* HeadlessBrowserImpl::browser_context() const { |
| - DCHECK(BrowserMainThread()->BelongsToCurrentThread()); |
| - DCHECK(browser_main_parts()); |
| - return browser_main_parts()->browser_context(); |
| -} |
| - |
| HeadlessBrowserMainParts* HeadlessBrowserImpl::browser_main_parts() const { |
| DCHECK(BrowserMainThread()->BelongsToCurrentThread()); |
| return browser_main_parts_; |
| @@ -125,7 +147,8 @@ void HeadlessBrowserImpl::DestroyWebContents( |
| void HeadlessBrowserImpl::SetOptionsForTesting( |
| HeadlessBrowser::Options options) { |
| options_ = std::move(options); |
| - browser_context()->SetOptionsForTesting(&options_); |
| + browser_main_parts()->default_browser_context()->SetOptionsForTesting( |
| + &options_); |
| } |
| int HeadlessBrowserMain( |