Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1919)

Unified Diff: chrome/browser/devtools/port_forwarding_controller.cc

Issue 23490021: Rename chrome/browser/devtools/tethering_adb_filter.* to port_forwarding_controller.* (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/devtools/port_forwarding_controller.cc
diff --git a/chrome/browser/devtools/tethering_adb_filter.cc b/chrome/browser/devtools/port_forwarding_controller.cc
similarity index 89%
rename from chrome/browser/devtools/tethering_adb_filter.cc
rename to chrome/browser/devtools/port_forwarding_controller.cc
index 9a06bfe6a00a5213b8069dad7e9885253788f826..99ea6cfe41e48bb0a0ff1c328da211c787da05b8 100644
--- a/chrome/browser/devtools/tethering_adb_filter.cc
+++ b/chrome/browser/devtools/port_forwarding_controller.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "chrome/browser/devtools/tethering_adb_filter.h"
+#include "chrome/browser/devtools/port_forwarding_controller.h"
#include <algorithm>
#include <map>
@@ -10,6 +10,7 @@
#include "base/bind.h"
#include "base/compiler_specific.h"
#include "base/message_loop/message_loop.h"
+#include "base/prefs/pref_change_registrar.h"
#include "base/prefs/pref_service.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h"
@@ -261,6 +262,64 @@ static std::string FindBestSocketForTethering(
} // namespace
+class TetheringAdbFilter : public base::RefCountedThreadSafe<
+ TetheringAdbFilter,
+ content::BrowserThread::DeleteOnUIThread> {
+ public:
+ typedef DevToolsAdbBridge::RemoteDevice::PortStatus PortStatus;
+ typedef DevToolsAdbBridge::RemoteDevice::PortStatusMap PortStatusMap;
+
+ TetheringAdbFilter(scoped_refptr<DevToolsAdbBridge::AndroidDevice> device,
+ base::MessageLoop* adb_message_loop,
+ PrefService* pref_service,
+ scoped_refptr<AdbWebSocket> web_socket);
+
+ const PortStatusMap& GetPortStatusMap();
+
+ bool ProcessIncomingMessage(const std::string& message);
+
+ private:
+ friend struct content::BrowserThread::DeleteOnThread<
+ content::BrowserThread::UI>;
+ friend class base::DeleteHelper<TetheringAdbFilter>;
+
+ virtual ~TetheringAdbFilter();
+
+ typedef std::map<int, std::string> ForwardingMap;
+
+ typedef base::Callback<void(PortStatus)> CommandCallback;
+ typedef std::map<int, CommandCallback> CommandCallbackMap;
+
+ void OnPrefsChange();
+
+ void ChangeForwardingMap(ForwardingMap map);
+
+ void SerializeChanges(const std::string& method,
+ const ForwardingMap& old_map,
+ const ForwardingMap& new_map);
+
+ void SendCommand(const std::string& method, int port);
+ bool ProcessResponse(const std::string& json);
+
+ void ProcessBindResponse(int port, PortStatus status);
+ void ProcessUnbindResponse(int port, PortStatus status);
+ void UpdateSocketCount(int port, int increment);
+ void UpdatePortStatusMap();
+ void UpdatePortStatusMapOnUIThread(const PortStatusMap& status_map);
+
+ scoped_refptr<DevToolsAdbBridge::AndroidDevice> device_;
+ base::MessageLoop* adb_message_loop_;
+ PrefChangeRegistrar pref_change_registrar_;
+ scoped_refptr<AdbWebSocket> web_socket_;
+ int command_id_;
+ ForwardingMap forwarding_map_;
+ CommandCallbackMap pending_responses_;
+ PortStatusMap port_status_;
+ PortStatusMap port_status_on_ui_thread_;
+
+ DISALLOW_COPY_AND_ASSIGN(TetheringAdbFilter);
+};
+
TetheringAdbFilter::TetheringAdbFilter(
scoped_refptr<DevToolsAdbBridge::AndroidDevice> device,
base::MessageLoop* adb_message_loop,

Powered by Google App Engine
This is Rietveld 408576698