Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/device/port_forwarding_controller.h" | 5 #include "chrome/browser/devtools/device/port_forwarding_controller.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <map> | 8 #include <map> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 292 static void UpdateSocketCountOnHandlerThread( | 292 static void UpdateSocketCountOnHandlerThread( |
| 293 base::WeakPtr<Connection> weak_connection, int port, int increment); | 293 base::WeakPtr<Connection> weak_connection, int port, int increment); |
| 294 void UpdateSocketCount(int port, int increment); | 294 void UpdateSocketCount(int port, int increment); |
| 295 | 295 |
| 296 // DevToolsAndroidBridge::AndroidWebSocket::Delegate implementation: | 296 // DevToolsAndroidBridge::AndroidWebSocket::Delegate implementation: |
| 297 virtual void OnSocketOpened() override; | 297 virtual void OnSocketOpened() override; |
| 298 virtual void OnFrameRead(const std::string& message) override; | 298 virtual void OnFrameRead(const std::string& message) override; |
| 299 virtual void OnSocketClosed() override; | 299 virtual void OnSocketClosed() override; |
| 300 | 300 |
| 301 PortForwardingController::Registry* registry_; | 301 PortForwardingController::Registry* registry_; |
| 302 scoped_refptr<AndroidDeviceManager::Device> device_; | 302 AndroidDeviceManager::Device* device_; |
| 303 scoped_refptr<DevToolsAndroidBridge::RemoteBrowser> browser_; | 303 scoped_refptr<DevToolsAndroidBridge::RemoteBrowser> browser_; |
| 304 scoped_ptr<AndroidDeviceManager::AndroidWebSocket> web_socket_; | 304 scoped_ptr<AndroidDeviceManager::AndroidWebSocket> web_socket_; |
| 305 int command_id_; | 305 int command_id_; |
| 306 bool connected_; | 306 bool connected_; |
| 307 ForwardingMap forwarding_map_; | 307 ForwardingMap forwarding_map_; |
| 308 CommandCallbackMap pending_responses_; | 308 CommandCallbackMap pending_responses_; |
| 309 PortStatusMap port_status_; | 309 PortStatusMap port_status_; |
| 310 base::WeakPtrFactory<Connection> weak_factory_; | 310 base::WeakPtrFactory<Connection> weak_factory_; |
| 311 | 311 |
| 312 DISALLOW_COPY_AND_ASSIGN(Connection); | 312 DISALLOW_COPY_AND_ASSIGN(Connection); |
| 313 }; | 313 }; |
| 314 | 314 |
| 315 PortForwardingController::Connection::Connection( | 315 PortForwardingController::Connection::Connection( |
| 316 Registry* registry, | 316 Registry* registry, |
| 317 scoped_refptr<AndroidDeviceManager::Device> device, | 317 scoped_refptr<AndroidDeviceManager::Device> device, |
| 318 scoped_refptr<DevToolsAndroidBridge::RemoteBrowser> browser, | 318 scoped_refptr<DevToolsAndroidBridge::RemoteBrowser> browser, |
| 319 const ForwardingMap& forwarding_map) | 319 const ForwardingMap& forwarding_map) |
| 320 : registry_(registry), | 320 : registry_(registry), |
| 321 device_(device), | 321 device_(device.get()), |
|
dgozman
2014/10/21 11:54:02
I think you either need |device_| or |browser_|, b
vkuzkokov
2014/10/21 13:00:54
We store browser_ so that we could display on chro
| |
| 322 browser_(browser), | 322 browser_(browser), |
| 323 command_id_(0), | 323 command_id_(0), |
| 324 connected_(false), | 324 connected_(false), |
| 325 forwarding_map_(forwarding_map), | 325 forwarding_map_(forwarding_map), |
| 326 weak_factory_(this) { | 326 weak_factory_(this) { |
| 327 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 327 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 328 (*registry_)[device_->serial()] = this; | 328 (*registry_)[browser->serial()] = this; |
| 329 web_socket_.reset( | 329 web_socket_.reset( |
| 330 device_->CreateWebSocket(browser->socket(), | 330 device_->CreateWebSocket(browser->socket(), |
| 331 kDevToolsRemoteBrowserTarget, this)); | 331 kDevToolsRemoteBrowserTarget, this)); |
| 332 } | 332 } |
| 333 | 333 |
| 334 PortForwardingController::Connection::~Connection() { | 334 PortForwardingController::Connection::~Connection() { |
| 335 | |
| 336 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 335 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 337 DCHECK(registry_->find(device_->serial()) != registry_->end()); | 336 DCHECK(registry_->find(browser_->serial()) != registry_->end()); |
| 338 registry_->erase(device_->serial()); | 337 registry_->erase(browser_->serial()); |
| 339 } | 338 } |
| 340 | 339 |
| 341 void PortForwardingController::Connection::UpdateForwardingMap( | 340 void PortForwardingController::Connection::UpdateForwardingMap( |
| 342 const ForwardingMap& new_forwarding_map) { | 341 const ForwardingMap& new_forwarding_map) { |
| 343 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 342 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 344 if (connected_) { | 343 if (connected_) { |
| 345 SerializeChanges(tethering::unbind::kName, | 344 SerializeChanges(tethering::unbind::kName, |
| 346 new_forwarding_map, forwarding_map_); | 345 new_forwarding_map, forwarding_map_); |
| 347 SerializeChanges(tethering::bind::kName, | 346 SerializeChanges(tethering::bind::kName, |
| 348 forwarding_map_, new_forwarding_map); | 347 forwarding_map_, new_forwarding_map); |
| (...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 588 registry_copy.push_back(it->second); | 587 registry_copy.push_back(it->second); |
| 589 } | 588 } |
| 590 STLDeleteElements(®istry_copy); | 589 STLDeleteElements(®istry_copy); |
| 591 } | 590 } |
| 592 } | 591 } |
| 593 | 592 |
| 594 void PortForwardingController::UpdateConnections() { | 593 void PortForwardingController::UpdateConnections() { |
| 595 for (Registry::iterator it = registry_.begin(); it != registry_.end(); ++it) | 594 for (Registry::iterator it = registry_.begin(); it != registry_.end(); ++it) |
| 596 it->second->UpdateForwardingMap(forwarding_map_); | 595 it->second->UpdateForwardingMap(forwarding_map_); |
| 597 } | 596 } |
| OLD | NEW |