| 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 |