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_impl.h" | 5 #include "headless/lib/browser/headless_browser_impl.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include <utility> | 8 #include <utility> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
154 HeadlessBrowserContextImpl::Create(builder); | 154 HeadlessBrowserContextImpl::Create(builder); |
155 | 155 |
156 if (!browser_context) { | 156 if (!browser_context) { |
157 return nullptr; | 157 return nullptr; |
158 } | 158 } |
159 | 159 |
160 HeadlessBrowserContext* result = browser_context.get(); | 160 HeadlessBrowserContext* result = browser_context.get(); |
161 | 161 |
162 browser_contexts_[browser_context->Id()] = std::move(browser_context); | 162 browser_contexts_[browser_context->Id()] = std::move(browser_context); |
163 | 163 |
164 HeadlessDownloadManagerDelegate* download_delegate = | |
165 static_cast<HeadlessDownloadManagerDelegate*>( | |
166 browser_context->GetDownloadManagerDelegate()); | |
167 | |
168 if (download_behavior_.has_value()) | |
169 download_delegate->SetDownloadBehavior(download_behavior_.value()); | |
170 | |
171 if (download_path_.has_value()) | |
172 download_delegate->SetDownloadDirectory(download_path_.value()); | |
173 | |
164 return result; | 174 return result; |
165 } | 175 } |
166 | 176 |
167 void HeadlessBrowserImpl::DestroyBrowserContext( | 177 void HeadlessBrowserImpl::DestroyBrowserContext( |
168 HeadlessBrowserContextImpl* browser_context) { | 178 HeadlessBrowserContextImpl* browser_context) { |
169 auto it = browser_contexts_.find(browser_context->Id()); | 179 auto it = browser_contexts_.find(browser_context->Id()); |
170 DCHECK(it != browser_contexts_.end()); | 180 DCHECK(it != browser_contexts_.end()); |
171 browser_contexts_.erase(it); | 181 browser_contexts_.erase(it); |
172 if (default_browser_context_ == browser_context) | 182 if (default_browser_context_ == browser_context) |
173 SetDefaultBrowserContext(nullptr); | 183 SetDefaultBrowserContext(nullptr); |
174 } | 184 } |
175 | 185 |
176 void HeadlessBrowserImpl::SetDefaultBrowserContext( | 186 void HeadlessBrowserImpl::SetDefaultBrowserContext( |
177 HeadlessBrowserContext* browser_context) { | 187 HeadlessBrowserContext* browser_context) { |
178 DCHECK(!browser_context || | 188 DCHECK(!browser_context || |
179 this == HeadlessBrowserContextImpl::From(browser_context)->browser()); | 189 this == HeadlessBrowserContextImpl::From(browser_context)->browser()); |
180 default_browser_context_ = browser_context; | 190 default_browser_context_ = browser_context; |
181 } | 191 } |
182 | 192 |
183 HeadlessBrowserContext* HeadlessBrowserImpl::GetDefaultBrowserContext() { | 193 HeadlessBrowserContext* HeadlessBrowserImpl::GetDefaultBrowserContext() { |
184 return default_browser_context_; | 194 return default_browser_context_; |
185 } | 195 } |
186 | 196 |
187 base::WeakPtr<HeadlessBrowserImpl> HeadlessBrowserImpl::GetWeakPtr() { | 197 base::WeakPtr<HeadlessBrowserImpl> HeadlessBrowserImpl::GetWeakPtr() { |
188 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); | 198 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
189 return weak_ptr_factory_.GetWeakPtr(); | 199 return weak_ptr_factory_.GetWeakPtr(); |
190 } | 200 } |
191 | 201 |
202 void HeadlessBrowserImpl::SetDownloadBehavior( | |
203 HeadlessDownloadManagerDelegate::DownloadBehavior behavior) { | |
204 download_behavior_ = behavior; | |
205 | |
206 for (HeadlessBrowserContext* hbc : GetAllBrowserContexts()) { | |
207 HeadlessBrowserContextImpl* hbci = | |
208 static_cast<HeadlessBrowserContextImpl*>(hbc); | |
209 | |
210 HeadlessDownloadManagerDelegate* download_delegate = | |
211 static_cast<HeadlessDownloadManagerDelegate*>( | |
212 hbci->GetDownloadManagerDelegate()); | |
213 | |
214 download_delegate->SetDownloadBehavior(behavior); | |
215 } | |
216 } | |
217 | |
218 void HeadlessBrowserImpl::SetDownloadDirectory(const base::FilePath& path) { | |
219 download_path_ = path; | |
220 | |
221 for (HeadlessBrowserContext* hbc : GetAllBrowserContexts()) { | |
222 HeadlessBrowserContextImpl* hbci = | |
223 static_cast<HeadlessBrowserContextImpl*>(hbc); | |
224 | |
225 HeadlessDownloadManagerDelegate* download_delegate = | |
226 static_cast<HeadlessDownloadManagerDelegate*>( | |
227 hbci->GetDownloadManagerDelegate()); | |
228 | |
229 download_delegate->SetDownloadDirectory(base::FilePath(path)); | |
Sami
2017/06/05 16:50:31
nit: base::FilePath here seems unnecessary
Oleg Sushkov
2017/06/06 03:36:54
done
| |
230 } | |
231 } | |
232 | |
192 HeadlessWebContents* HeadlessBrowserImpl::GetWebContentsForDevToolsAgentHostId( | 233 HeadlessWebContents* HeadlessBrowserImpl::GetWebContentsForDevToolsAgentHostId( |
193 const std::string& devtools_agent_host_id) { | 234 const std::string& devtools_agent_host_id) { |
194 for (HeadlessBrowserContext* context : GetAllBrowserContexts()) { | 235 for (HeadlessBrowserContext* context : GetAllBrowserContexts()) { |
195 HeadlessWebContents* web_contents = | 236 HeadlessWebContents* web_contents = |
196 context->GetWebContentsForDevToolsAgentHostId(devtools_agent_host_id); | 237 context->GetWebContentsForDevToolsAgentHostId(devtools_agent_host_id); |
197 if (web_contents) | 238 if (web_contents) |
198 return web_contents; | 239 return web_contents; |
199 } | 240 } |
200 return nullptr; | 241 return nullptr; |
201 } | 242 } |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
287 | 328 |
288 // Child processes should not end up here. | 329 // Child processes should not end up here. |
289 DCHECK(!base::CommandLine::ForCurrentProcess()->HasSwitch( | 330 DCHECK(!base::CommandLine::ForCurrentProcess()->HasSwitch( |
290 ::switches::kProcessType)); | 331 ::switches::kProcessType)); |
291 #endif | 332 #endif |
292 return RunContentMain(std::move(options), | 333 return RunContentMain(std::move(options), |
293 std::move(on_browser_start_callback)); | 334 std::move(on_browser_start_callback)); |
294 } | 335 } |
295 | 336 |
296 } // namespace headless | 337 } // namespace headless |
OLD | NEW |