| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/chrome_impl.h" | 5 #include "chrome/test/chromedriver/chrome/chrome_impl.h" |
| 6 | 6 |
| 7 #include "chrome/test/chromedriver/chrome/devtools_client.h" | 7 #include "chrome/test/chromedriver/chrome/devtools_client.h" |
| 8 #include "chrome/test/chromedriver/chrome/devtools_event_listener.h" | 8 #include "chrome/test/chromedriver/chrome/devtools_event_listener.h" |
| 9 #include "chrome/test/chromedriver/chrome/devtools_http_client.h" | 9 #include "chrome/test/chromedriver/chrome/devtools_http_client.h" |
| 10 #include "chrome/test/chromedriver/chrome/status.h" | 10 #include "chrome/test/chromedriver/chrome/status.h" |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 45 if (!views_info.GetForId((*it)->GetId())) { | 45 if (!views_info.GetForId((*it)->GetId())) { |
| 46 it = web_views_.erase(it); | 46 it = web_views_.erase(it); |
| 47 } else { | 47 } else { |
| 48 ++it; | 48 ++it; |
| 49 } | 49 } |
| 50 } | 50 } |
| 51 | 51 |
| 52 // Check for newly-opened web views. | 52 // Check for newly-opened web views. |
| 53 for (size_t i = 0; i < views_info.GetSize(); ++i) { | 53 for (size_t i = 0; i < views_info.GetSize(); ++i) { |
| 54 const WebViewInfo& view = views_info.Get(i); | 54 const WebViewInfo& view = views_info.Get(i); |
| 55 if (view.type != WebViewInfo::kPage && view.type != WebViewInfo::kApp) | 55 if (view.type == WebViewInfo::kPage || |
| 56 continue; | 56 view.type == WebViewInfo::kApp || |
| 57 | 57 (view.type == WebViewInfo::kOther && |
| 58 bool found = false; | 58 view.url.find("chrome-extension://") == 0)) { |
| 59 for (WebViewList::const_iterator web_view_iter = web_views_.begin(); | 59 bool found = false; |
| 60 web_view_iter != web_views_.end(); ++web_view_iter) { | 60 for (WebViewList::const_iterator web_view_iter = web_views_.begin(); |
| 61 if ((*web_view_iter)->GetId() == view.id) { | 61 web_view_iter != web_views_.end(); ++web_view_iter) { |
| 62 found = true; | 62 if ((*web_view_iter)->GetId() == view.id) { |
| 63 break; | 63 found = true; |
| 64 break; |
| 65 } |
| 64 } | 66 } |
| 65 } | 67 if (!found) { |
| 66 if (!found) { | 68 scoped_ptr<DevToolsClient> client( |
| 67 scoped_ptr<DevToolsClient> client( | 69 devtools_http_client_->CreateClient(view.id)); |
| 68 devtools_http_client_->CreateClient(view.id)); | 70 for (ScopedVector<DevToolsEventListener>::const_iterator listener = |
| 69 for (ScopedVector<DevToolsEventListener>::const_iterator listener = | 71 devtools_event_listeners_.begin(); |
| 70 devtools_event_listeners_.begin(); | 72 listener != devtools_event_listeners_.end(); ++listener) { |
| 71 listener != devtools_event_listeners_.end(); ++listener) { | 73 client->AddListener(*listener); |
| 72 client->AddListener(*listener); | 74 // OnConnected will fire when DevToolsClient connects later. |
| 73 // OnConnected will fire when DevToolsClient connects later. | 75 } |
| 76 web_views_.push_back(make_linked_ptr(new WebViewImpl( |
| 77 view.id, |
| 78 devtools_http_client_->browser_info(), |
| 79 client.Pass(), |
| 80 devtools_http_client_->device_metrics()))); |
| 74 } | 81 } |
| 75 web_views_.push_back(make_linked_ptr(new WebViewImpl( | |
| 76 view.id, | |
| 77 devtools_http_client_->browser_info(), | |
| 78 client.Pass(), | |
| 79 devtools_http_client_->device_metrics()))); | |
| 80 } | 82 } |
| 81 } | 83 } |
| 82 | 84 |
| 83 std::list<std::string> web_view_ids_tmp; | 85 std::list<std::string> web_view_ids_tmp; |
| 84 for (WebViewList::const_iterator web_view_iter = web_views_.begin(); | 86 for (WebViewList::const_iterator web_view_iter = web_views_.begin(); |
| 85 web_view_iter != web_views_.end(); ++web_view_iter) { | 87 web_view_iter != web_views_.end(); ++web_view_iter) { |
| 86 web_view_ids_tmp.push_back((*web_view_iter)->GetId()); | 88 web_view_ids_tmp.push_back((*web_view_iter)->GetId()); |
| 87 } | 89 } |
| 88 web_view_ids->swap(web_view_ids_tmp); | 90 web_view_ids->swap(web_view_ids_tmp); |
| 89 return Status(kOk); | 91 return Status(kOk); |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 133 scoped_ptr<DevToolsHttpClient> http_client, | 135 scoped_ptr<DevToolsHttpClient> http_client, |
| 134 scoped_ptr<DevToolsClient> websocket_client, | 136 scoped_ptr<DevToolsClient> websocket_client, |
| 135 ScopedVector<DevToolsEventListener>& devtools_event_listeners, | 137 ScopedVector<DevToolsEventListener>& devtools_event_listeners, |
| 136 scoped_ptr<PortReservation> port_reservation) | 138 scoped_ptr<PortReservation> port_reservation) |
| 137 : quit_(false), | 139 : quit_(false), |
| 138 devtools_http_client_(http_client.Pass()), | 140 devtools_http_client_(http_client.Pass()), |
| 139 devtools_websocket_client_(websocket_client.Pass()), | 141 devtools_websocket_client_(websocket_client.Pass()), |
| 140 port_reservation_(port_reservation.Pass()) { | 142 port_reservation_(port_reservation.Pass()) { |
| 141 devtools_event_listeners_.swap(devtools_event_listeners); | 143 devtools_event_listeners_.swap(devtools_event_listeners); |
| 142 } | 144 } |
| OLD | NEW |