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 3 // found in the LICENSE file. 4 5 #ifndef CHROME_BROWSER_DEVTOOLS_DEVICE_ADB_ADB_DEVICE_INFO_QUERY_H_ 6 #define CHROME_BROWSER_DEVTOOLS_DEVICE_ADB_ADB_DEVICE_INFO_QUERY_H_ 7 8 #include "base/threading/non_thread_safe.h" 9 #include "chrome/browser/devtools/device/android_device_manager.h" 10 11 class AdbDeviceInfoQuery : public base::NonThreadSafe { 12 public: 13 static AndroidDeviceManager::BrowserInfo::Type GetBrowserType( 14 const std::string& socket); 15 16 static std::string GetDisplayName(const std::string& socket, 17 const std::string& package); 18 19 typedef AndroidDeviceManager::CommandCallback CommandCallback; 20 typedef AndroidDeviceManager::DeviceInfoCallback DeviceInfoCallback; 21 22 typedef base::Callback< 23 void(const std::string&, const CommandCallback&)> RunCommandCallback; 24 25 static void Start(const RunCommandCallback& command_callback, 26 const DeviceInfoCallback& callback); 27 28 private: 29 AdbDeviceInfoQuery(const RunCommandCallback& command_callback, 30 const DeviceInfoCallback& callback); 31 32 virtual ~AdbDeviceInfoQuery(); 33 34 void ReceivedModel(int result, const std::string& response); 35 36 void ReceivedDumpsys(int result, const std::string& response); 37 38 void ParseDumpsysResponse(const std::string& response); 39 40 void ParseScreenSize(const std::string& str); 41 42 void ReceivedProcesses(int result, 43 const std::string& processes_response); 44 45 void ReceivedSockets(const std::string& processes_response, 46 int result, 47 const std::string& sockets_response); 48 49 void ParseBrowserInfo(const std::string& processes_response, 50 const std::string& sockets_response); 51 52 void Respond(); 53 54 RunCommandCallback command_callback_; 55 DeviceInfoCallback callback_; 56 AndroidDeviceManager::DeviceInfo device_info_; 57 58 DISALLOW_COPY_AND_ASSIGN(AdbDeviceInfoQuery); 59 }; 60 61 #endif // CHROME_BROWSER_DEVTOOLS_DEVICE_ADB_ADB_DEVICE_INFO_QUERY_H_ 62