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/browser/devtools/devtools_adb_bridge.h" | 5 #include "chrome/browser/devtools/devtools_adb_bridge.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/base64.h" | 10 #include "base/base64.h" |
(...skipping 1083 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1094 } | 1094 } |
1095 | 1095 |
1096 | 1096 |
1097 // DevToolsAdbBridge ---------------------------------------------------------- | 1097 // DevToolsAdbBridge ---------------------------------------------------------- |
1098 | 1098 |
1099 DevToolsAdbBridge::DevToolsAdbBridge() | 1099 DevToolsAdbBridge::DevToolsAdbBridge() |
1100 : adb_thread_(RefCountedAdbThread::GetInstance()), | 1100 : adb_thread_(RefCountedAdbThread::GetInstance()), |
1101 has_message_loop_(adb_thread_->message_loop() != NULL) { | 1101 has_message_loop_(adb_thread_->message_loop() != NULL) { |
1102 } | 1102 } |
1103 | 1103 |
| 1104 void DevToolsAdbBridge::set_device_provider_for_test( |
| 1105 scoped_refptr<AndroidDeviceProvider> device_provider) { |
| 1106 device_providers_for_test_.clear(); |
| 1107 device_providers_for_test_.push_back(device_provider); |
| 1108 } |
| 1109 |
1104 void DevToolsAdbBridge::AddListener(Listener* listener) { | 1110 void DevToolsAdbBridge::AddListener(Listener* listener) { |
1105 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 1111 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
1106 if (listeners_.empty()) | 1112 if (listeners_.empty()) |
1107 RequestRemoteDevices(); | 1113 RequestRemoteDevices(); |
1108 listeners_.push_back(listener); | 1114 listeners_.push_back(listener); |
1109 } | 1115 } |
1110 | 1116 |
1111 void DevToolsAdbBridge::RemoveListener(Listener* listener) { | 1117 void DevToolsAdbBridge::RemoveListener(Listener* listener) { |
1112 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 1118 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
1113 Listeners::iterator it = | 1119 Listeners::iterator it = |
(...skipping 11 matching lines...) Expand all Loading... |
1125 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 1131 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
1126 DCHECK(listeners_.empty()); | 1132 DCHECK(listeners_.empty()); |
1127 } | 1133 } |
1128 | 1134 |
1129 void DevToolsAdbBridge::RequestRemoteDevices() { | 1135 void DevToolsAdbBridge::RequestRemoteDevices() { |
1130 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 1136 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
1131 if (!has_message_loop_) | 1137 if (!has_message_loop_) |
1132 return; | 1138 return; |
1133 | 1139 |
1134 new AdbPagesCommand( | 1140 new AdbPagesCommand( |
1135 adb_thread_, device_providers_, | 1141 adb_thread_, |
| 1142 device_providers_for_test_.size() ? |
| 1143 device_providers_for_test_ : |
| 1144 device_providers_, |
1136 base::Bind(&DevToolsAdbBridge::ReceivedRemoteDevices, this)); | 1145 base::Bind(&DevToolsAdbBridge::ReceivedRemoteDevices, this)); |
1137 } | 1146 } |
1138 | 1147 |
1139 void DevToolsAdbBridge::ReceivedRemoteDevices(RemoteDevices* devices_ptr) { | 1148 void DevToolsAdbBridge::ReceivedRemoteDevices(RemoteDevices* devices_ptr) { |
1140 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 1149 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
1141 | 1150 |
1142 scoped_ptr<RemoteDevices> devices(devices_ptr); | 1151 scoped_ptr<RemoteDevices> devices(devices_ptr); |
1143 | 1152 |
1144 Listeners copy(listeners_); | 1153 Listeners copy(listeners_); |
1145 for (Listeners::iterator it = copy.begin(); it != copy.end(); ++it) | 1154 for (Listeners::iterator it = copy.begin(); it != copy.end(); ++it) |
1146 (*it)->RemoteDevicesChanged(devices.get()); | 1155 (*it)->RemoteDevicesChanged(devices.get()); |
1147 | 1156 |
1148 if (listeners_.empty()) | 1157 if (listeners_.empty()) |
1149 return; | 1158 return; |
1150 | 1159 |
1151 BrowserThread::PostDelayedTask( | 1160 BrowserThread::PostDelayedTask( |
1152 BrowserThread::UI, | 1161 BrowserThread::UI, |
1153 FROM_HERE, | 1162 FROM_HERE, |
1154 base::Bind(&DevToolsAdbBridge::RequestRemoteDevices, this), | 1163 base::Bind(&DevToolsAdbBridge::RequestRemoteDevices, this), |
1155 base::TimeDelta::FromMilliseconds(kAdbPollingIntervalMs)); | 1164 base::TimeDelta::FromMilliseconds(kAdbPollingIntervalMs)); |
1156 } | 1165 } |
OLD | NEW |