| 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 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 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 std::string page_load_strategy, |
| 75 std::string user_agent) |
| 75 : context_getter_(context_getter), | 76 : context_getter_(context_getter), |
| 76 socket_factory_(socket_factory), | 77 socket_factory_(socket_factory), |
| 77 server_url_("http://" + address.ToString()), | 78 server_url_("http://" + address.ToString()), |
| 78 web_socket_url_prefix_(base::StringPrintf("ws://%s/devtools/page/", | 79 web_socket_url_prefix_(base::StringPrintf("ws://%s/devtools/page/", |
| 79 address.ToString().c_str())), | 80 address.ToString().c_str())), |
| 80 device_metrics_(std::move(device_metrics)), | 81 device_metrics_(std::move(device_metrics)), |
| 81 window_types_(std::move(window_types)), | 82 window_types_(std::move(window_types)), |
| 82 page_load_strategy_(page_load_strategy) { | 83 page_load_strategy_(page_load_strategy), |
| 84 user_agent_(user_agent) { |
| 83 window_types_->insert(WebViewInfo::kPage); | 85 window_types_->insert(WebViewInfo::kPage); |
| 84 window_types_->insert(WebViewInfo::kApp); | 86 window_types_->insert(WebViewInfo::kApp); |
| 85 } | 87 } |
| 86 | 88 |
| 87 DevToolsHttpClient::~DevToolsHttpClient() {} | 89 DevToolsHttpClient::~DevToolsHttpClient() {} |
| 88 | 90 |
| 89 Status DevToolsHttpClient::Init(const base::TimeDelta& timeout) { | 91 Status DevToolsHttpClient::Init(const base::TimeDelta& timeout) { |
| 90 base::TimeTicks deadline = base::TimeTicks::Now() + timeout; | 92 base::TimeTicks deadline = base::TimeTicks::Now() + timeout; |
| 91 std::string version_url = server_url_ + "/json/version"; | 93 std::string version_url = server_url_ + "/json/version"; |
| 92 std::string data; | 94 std::string data; |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 150 } | 152 } |
| 151 | 153 |
| 152 const BrowserInfo* DevToolsHttpClient::browser_info() { | 154 const BrowserInfo* DevToolsHttpClient::browser_info() { |
| 153 return &browser_info_; | 155 return &browser_info_; |
| 154 } | 156 } |
| 155 | 157 |
| 156 const DeviceMetrics* DevToolsHttpClient::device_metrics() { | 158 const DeviceMetrics* DevToolsHttpClient::device_metrics() { |
| 157 return device_metrics_.get(); | 159 return device_metrics_.get(); |
| 158 } | 160 } |
| 159 | 161 |
| 162 const std::string& DevToolsHttpClient::user_agent() const { |
| 163 return user_agent_; |
| 164 } |
| 165 |
| 160 bool DevToolsHttpClient::IsBrowserWindow(const WebViewInfo& view) const { | 166 bool DevToolsHttpClient::IsBrowserWindow(const WebViewInfo& view) const { |
| 161 return base::ContainsKey(*window_types_, view.type) || | 167 return base::ContainsKey(*window_types_, view.type) || |
| 162 (view.type == WebViewInfo::kOther && | 168 (view.type == WebViewInfo::kOther && |
| 163 (view.url == "chrome://print/" || | 169 (view.url == "chrome://print/" || |
| 164 view.url == "chrome://media-router/")); | 170 view.url == "chrome://media-router/")); |
| 165 } | 171 } |
| 166 | 172 |
| 167 Status DevToolsHttpClient::CloseFrontends(const std::string& for_client_id) { | 173 Status DevToolsHttpClient::CloseFrontends(const std::string& for_client_id) { |
| 168 WebViewsInfo views_info; | 174 WebViewsInfo views_info; |
| 169 Status status = GetWebViewsInfo(&views_info); | 175 Status status = GetWebViewsInfo(&views_info); |
| (...skipping 27 matching lines...) Expand all Loading... |
| 197 if (status.IsError()) | 203 if (status.IsError()) |
| 198 return status; | 204 return status; |
| 199 } | 205 } |
| 200 | 206 |
| 201 for (std::list<std::string>::const_iterator it = docked_frontend_ids.begin(); | 207 for (std::list<std::string>::const_iterator it = docked_frontend_ids.begin(); |
| 202 it != docked_frontend_ids.end(); ++it) { | 208 it != docked_frontend_ids.end(); ++it) { |
| 203 std::unique_ptr<DevToolsClient> client(new DevToolsClientImpl( | 209 std::unique_ptr<DevToolsClient> client(new DevToolsClientImpl( |
| 204 socket_factory_, web_socket_url_prefix_ + *it, *it)); | 210 socket_factory_, web_socket_url_prefix_ + *it, *it)); |
| 205 std::unique_ptr<WebViewImpl> web_view( | 211 std::unique_ptr<WebViewImpl> web_view( |
| 206 new WebViewImpl(*it, false, &browser_info_, std::move(client), NULL, | 212 new WebViewImpl(*it, false, &browser_info_, std::move(client), NULL, |
| 207 page_load_strategy_)); | 213 page_load_strategy_, user_agent_)); |
| 208 | 214 |
| 209 status = web_view->ConnectIfNecessary(); | 215 status = web_view->ConnectIfNecessary(); |
| 210 // Ignore disconnected error, because the debugger might have closed when | 216 // Ignore disconnected error, because the debugger might have closed when |
| 211 // its container page was closed above. | 217 // its container page was closed above. |
| 212 if (status.IsError() && status.code() != kDisconnected) | 218 if (status.IsError() && status.code() != kDisconnected) |
| 213 return status; | 219 return status; |
| 214 | 220 |
| 215 std::unique_ptr<base::Value> result; | 221 std::unique_ptr<base::Value> result; |
| 216 status = CloseWebView(*it); | 222 status = CloseWebView(*it); |
| 217 // Ignore disconnected error, because it may be closed already. | 223 // Ignore disconnected error, because it may be closed already. |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 310 Status status = ParseType(type_as_string, &type); | 316 Status status = ParseType(type_as_string, &type); |
| 311 if (status.IsError()) | 317 if (status.IsError()) |
| 312 return status; | 318 return status; |
| 313 temp_views_info.push_back(WebViewInfo(id, debugger_url, url, type)); | 319 temp_views_info.push_back(WebViewInfo(id, debugger_url, url, type)); |
| 314 } | 320 } |
| 315 *views_info = WebViewsInfo(temp_views_info); | 321 *views_info = WebViewsInfo(temp_views_info); |
| 316 return Status(kOk); | 322 return Status(kOk); |
| 317 } | 323 } |
| 318 | 324 |
| 319 } // namespace internal | 325 } // namespace internal |
| OLD | NEW |