1 // Copyright (c) 2012 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_ANDROID_DEV_TOOLS_SERVER_H_ 6 #define CHROME_BROWSER_ANDROID_DEV_TOOLS_SERVER_H_ 7 8 #include <string> 9 #include <jni.h> 10 #include "base/basictypes.h" 11 12 namespace content { 13 class DevToolsHttpHandler; 14 } 15 16 // This class controls Developer Tools remote debugging server. 17 class DevToolsServer { 18 public: 19 // TODO(mnaganov): Remove the prefixless constructor after having its 20 // usage removed in the Chrome for Android code. 21 DevToolsServer(); 22 explicit DevToolsServer(const std::string& socket_name_prefix); 23 ~DevToolsServer(); 24 25 // Opens linux abstract socket to be ready for remote debugging. 26 void Start(); 27 28 // Closes debugging socket, stops debugging. 29 void Stop(); 30 31 bool IsStarted() const; 32 33 private: 34 std::string socket_name_; 35 content::DevToolsHttpHandler* protocol_handler_; 36 37 DISALLOW_COPY_AND_ASSIGN(DevToolsServer); 38 }; 39 40 bool RegisterDevToolsServer(JNIEnv* env); 41 42 #endif // CHROME_BROWSER_ANDROID_DEV_TOOLS_SERVER_H_ 43