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 |