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

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

Issue 2035733002: headless: Implement screenshot capturing (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addresses reviewer 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_impl.h" 5 #include "headless/lib/browser/headless_browser_impl.h"
6 6
7 #include <vector>
8
7 #include "base/memory/ptr_util.h" 9 #include "base/memory/ptr_util.h"
8 #include "base/threading/thread_task_runner_handle.h" 10 #include "base/threading/thread_task_runner_handle.h"
9 #include "content/public/app/content_main.h" 11 #include "content/public/app/content_main.h"
10 #include "content/public/browser/browser_thread.h" 12 #include "content/public/browser/browser_thread.h"
11 #include "content/public/browser/web_contents.h" 13 #include "content/public/browser/web_contents.h"
12 #include "headless/lib/browser/headless_browser_context.h" 14 #include "headless/lib/browser/headless_browser_context.h"
13 #include "headless/lib/browser/headless_browser_main_parts.h" 15 #include "headless/lib/browser/headless_browser_main_parts.h"
14 #include "headless/lib/browser/headless_web_contents_impl.h" 16 #include "headless/lib/browser/headless_web_contents_impl.h"
15 #include "headless/lib/browser/headless_window_tree_client.h" 17 #include "headless/lib/browser/headless_window_tree_client.h"
16 #include "headless/lib/headless_content_main_delegate.h" 18 #include "headless/lib/headless_content_main_delegate.h"
(...skipping 27 matching lines...) Expand all
44 46
45 return RegisterWebContents(std::move(headless_web_contents)); 47 return RegisterWebContents(std::move(headless_web_contents));
46 } 48 }
47 49
48 scoped_refptr<base::SingleThreadTaskRunner> 50 scoped_refptr<base::SingleThreadTaskRunner>
49 HeadlessBrowserImpl::BrowserMainThread() const { 51 HeadlessBrowserImpl::BrowserMainThread() const {
50 return content::BrowserThread::GetMessageLoopProxyForThread( 52 return content::BrowserThread::GetMessageLoopProxyForThread(
51 content::BrowserThread::UI); 53 content::BrowserThread::UI);
52 } 54 }
53 55
56 scoped_refptr<base::SingleThreadTaskRunner>
57 HeadlessBrowserImpl::BrowserFileThread() const {
58 return content::BrowserThread::GetMessageLoopProxyForThread(
59 content::BrowserThread::FILE);
60 }
61
54 void HeadlessBrowserImpl::Shutdown() { 62 void HeadlessBrowserImpl::Shutdown() {
55 DCHECK(BrowserMainThread()->BelongsToCurrentThread()); 63 DCHECK(BrowserMainThread()->BelongsToCurrentThread());
56 BrowserMainThread()->PostTask(FROM_HERE, 64 BrowserMainThread()->PostTask(FROM_HERE,
57 base::MessageLoop::QuitWhenIdleClosure()); 65 base::MessageLoop::QuitWhenIdleClosure());
58 } 66 }
59 67
60 std::vector<HeadlessWebContents*> HeadlessBrowserImpl::GetAllWebContents() { 68 std::vector<HeadlessWebContents*> HeadlessBrowserImpl::GetAllWebContents() {
61 std::vector<HeadlessWebContents*> result; 69 std::vector<HeadlessWebContents*> result;
62 result.reserve(web_contents_.size()); 70 result.reserve(web_contents_.size());
63 71
(...skipping 16 matching lines...) Expand all
80 } 88 }
81 89
82 void HeadlessBrowserImpl::set_browser_main_parts( 90 void HeadlessBrowserImpl::set_browser_main_parts(
83 HeadlessBrowserMainParts* browser_main_parts) { 91 HeadlessBrowserMainParts* browser_main_parts) {
84 DCHECK(!browser_main_parts_); 92 DCHECK(!browser_main_parts_);
85 browser_main_parts_ = browser_main_parts; 93 browser_main_parts_ = browser_main_parts;
86 } 94 }
87 95
88 void HeadlessBrowserImpl::RunOnStartCallback() { 96 void HeadlessBrowserImpl::RunOnStartCallback() {
89 DCHECK(aura::Env::GetInstance()); 97 DCHECK(aura::Env::GetInstance());
90 window_tree_host_.reset(aura::WindowTreeHost::Create(gfx::Rect())); 98 // TODO(eseckler): allow configuration of window (viewport) size by embedder.
99 const gfx::Size kDefaultSize(800, 600);
100 window_tree_host_.reset(
101 aura::WindowTreeHost::Create(gfx::Rect(kDefaultSize)));
91 window_tree_host_->InitHost(); 102 window_tree_host_->InitHost();
92 103
93 window_tree_client_.reset( 104 window_tree_client_.reset(
94 new HeadlessWindowTreeClient(window_tree_host_->window())); 105 new HeadlessWindowTreeClient(window_tree_host_->window()));
95 106
96 on_start_callback_.Run(this); 107 on_start_callback_.Run(this);
97 on_start_callback_ = base::Callback<void(HeadlessBrowser*)>(); 108 on_start_callback_ = base::Callback<void(HeadlessBrowser*)>();
98 } 109 }
99 110
100 HeadlessWebContentsImpl* HeadlessBrowserImpl::RegisterWebContents( 111 HeadlessWebContentsImpl* HeadlessBrowserImpl::RegisterWebContents(
(...skipping 27 matching lines...) Expand all
128 DCHECK(!options.message_pump); 139 DCHECK(!options.message_pump);
129 140
130 std::unique_ptr<HeadlessBrowserImpl> browser( 141 std::unique_ptr<HeadlessBrowserImpl> browser(
131 new HeadlessBrowserImpl(on_browser_start_callback, std::move(options))); 142 new HeadlessBrowserImpl(on_browser_start_callback, std::move(options)));
132 headless::HeadlessContentMainDelegate delegate(std::move(browser)); 143 headless::HeadlessContentMainDelegate delegate(std::move(browser));
133 params.delegate = &delegate; 144 params.delegate = &delegate;
134 return content::ContentMain(params); 145 return content::ContentMain(params);
135 } 146 }
136 147
137 } // namespace headless 148 } // namespace headless
OLDNEW
« no previous file with comments | « headless/lib/browser/headless_browser_impl.h ('k') | headless/lib/headless_devtools_client_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698