OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 "chrome/test/chromedriver/chrome/devtools_http_client.h" | 5 #include "chrome/test/chromedriver/chrome/devtools_http_client.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
63 return &views_info[i]; | 63 return &views_info[i]; |
64 } | 64 } |
65 return NULL; | 65 return NULL; |
66 } | 66 } |
67 | 67 |
68 DevToolsHttpClient::DevToolsHttpClient( | 68 DevToolsHttpClient::DevToolsHttpClient( |
69 const NetAddress& address, | 69 const NetAddress& address, |
70 scoped_refptr<URLRequestContextGetter> context_getter, | 70 scoped_refptr<URLRequestContextGetter> context_getter, |
71 const SyncWebSocketFactory& socket_factory, | 71 const SyncWebSocketFactory& socket_factory, |
72 std::unique_ptr<DeviceMetrics> device_metrics, | 72 std::unique_ptr<DeviceMetrics> device_metrics, |
73 std::unique_ptr<std::set<WebViewInfo::Type>> window_types) | 73 std::unique_ptr<std::set<WebViewInfo::Type>> window_types, |
| 74 std::string page_load_strategy) |
74 : context_getter_(context_getter), | 75 : context_getter_(context_getter), |
75 socket_factory_(socket_factory), | 76 socket_factory_(socket_factory), |
76 server_url_("http://" + address.ToString()), | 77 server_url_("http://" + address.ToString()), |
77 web_socket_url_prefix_(base::StringPrintf("ws://%s/devtools/page/", | 78 web_socket_url_prefix_(base::StringPrintf("ws://%s/devtools/page/", |
78 address.ToString().c_str())), | 79 address.ToString().c_str())), |
79 device_metrics_(std::move(device_metrics)), | 80 device_metrics_(std::move(device_metrics)), |
80 window_types_(std::move(window_types)) { | 81 window_types_(std::move(window_types)), |
| 82 page_load_strategy_(page_load_strategy) { |
81 window_types_->insert(WebViewInfo::kPage); | 83 window_types_->insert(WebViewInfo::kPage); |
82 window_types_->insert(WebViewInfo::kApp); | 84 window_types_->insert(WebViewInfo::kApp); |
83 } | 85 } |
84 | 86 |
85 DevToolsHttpClient::~DevToolsHttpClient() {} | 87 DevToolsHttpClient::~DevToolsHttpClient() {} |
86 | 88 |
87 Status DevToolsHttpClient::Init(const base::TimeDelta& timeout) { | 89 Status DevToolsHttpClient::Init(const base::TimeDelta& timeout) { |
88 base::TimeTicks deadline = base::TimeTicks::Now() + timeout; | 90 base::TimeTicks deadline = base::TimeTicks::Now() + timeout; |
89 std::string version_url = server_url_ + "/json/version"; | 91 std::string version_url = server_url_ + "/json/version"; |
90 std::string data; | 92 std::string data; |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
196 status = CloseWebView(*it); | 198 status = CloseWebView(*it); |
197 if (status.IsError()) | 199 if (status.IsError()) |
198 return status; | 200 return status; |
199 } | 201 } |
200 | 202 |
201 for (std::list<std::string>::const_iterator it = docked_frontend_ids.begin(); | 203 for (std::list<std::string>::const_iterator it = docked_frontend_ids.begin(); |
202 it != docked_frontend_ids.end(); ++it) { | 204 it != docked_frontend_ids.end(); ++it) { |
203 std::unique_ptr<DevToolsClient> client(new DevToolsClientImpl( | 205 std::unique_ptr<DevToolsClient> client(new DevToolsClientImpl( |
204 socket_factory_, web_socket_url_prefix_ + *it, *it)); | 206 socket_factory_, web_socket_url_prefix_ + *it, *it)); |
205 std::unique_ptr<WebViewImpl> web_view( | 207 std::unique_ptr<WebViewImpl> web_view( |
206 new WebViewImpl(*it, &browser_info_, std::move(client), NULL)); | 208 new WebViewImpl(*it, &browser_info_, std::move(client), NULL, |
| 209 page_load_strategy_)); |
207 | 210 |
208 status = web_view->ConnectIfNecessary(); | 211 status = web_view->ConnectIfNecessary(); |
209 // Ignore disconnected error, because the debugger might have closed when | 212 // Ignore disconnected error, because the debugger might have closed when |
210 // its container page was closed above. | 213 // its container page was closed above. |
211 if (status.IsError() && status.code() != kDisconnected) | 214 if (status.IsError() && status.code() != kDisconnected) |
212 return status; | 215 return status; |
213 | 216 |
214 std::unique_ptr<base::Value> result; | 217 std::unique_ptr<base::Value> result; |
215 status = CloseWebView(*it); | 218 status = CloseWebView(*it); |
216 // Ignore disconnected error, because it may be closed already. | 219 // Ignore disconnected error, because it may be closed already. |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
303 Status status = ParseType(type_as_string, &type); | 306 Status status = ParseType(type_as_string, &type); |
304 if (status.IsError()) | 307 if (status.IsError()) |
305 return status; | 308 return status; |
306 temp_views_info.push_back(WebViewInfo(id, debugger_url, url, type)); | 309 temp_views_info.push_back(WebViewInfo(id, debugger_url, url, type)); |
307 } | 310 } |
308 *views_info = WebViewsInfo(temp_views_info); | 311 *views_info = WebViewsInfo(temp_views_info); |
309 return Status(kOk); | 312 return Status(kOk); |
310 } | 313 } |
311 | 314 |
312 } // namespace internal | 315 } // namespace internal |
OLD | NEW |