summaryrefslogtreecommitdiffstats
path: root/content/public/browser/devtools_http_handler.h
diff options
context:
space:
mode:
Diffstat (limited to 'content/public/browser/devtools_http_handler.h')
-rw-r--r--content/public/browser/devtools_http_handler.h31
1 files changed, 29 insertions, 2 deletions
diff --git a/content/public/browser/devtools_http_handler.h b/content/public/browser/devtools_http_handler.h
index cdceff8..2b656b6 100644
--- a/content/public/browser/devtools_http_handler.h
+++ b/content/public/browser/devtools_http_handler.h
@@ -8,12 +8,13 @@
#include <string>
#include "base/files/file_path.h"
+#include "base/memory/scoped_ptr.h"
#include "content/common/content_export.h"
class GURL;
namespace net {
-class StreamListenSocketFactory;
+class ServerSocket;
class URLRequestContextGetter;
}
@@ -26,6 +27,32 @@ class DevToolsHttpHandlerDelegate;
// this browser.
class DevToolsHttpHandler {
public:
+
+ // Factory of net::ServerSocket. This is to separate instantiating dev tools
+ // and instantiating server socket.
+ class CONTENT_EXPORT ServerSocketFactory {
+ public:
+ ServerSocketFactory(const std::string& address, int port, int backlog);
+ virtual ~ServerSocketFactory();
+
+ // Returns a new instance of ServerSocket or NULL if an error occurred.
+ // It calls ServerSocket::ListenWithAddressAndPort() with address, port and
+ // backlog passed to constructor.
+ virtual scoped_ptr<net::ServerSocket> CreateAndListen() const;
+
+ protected:
+ // Creates a server socket. ServerSocket::Listen() will be called soon
+ // unless it returns NULL.
+ virtual scoped_ptr<net::ServerSocket> Create() const = 0;
+
+ const std::string address_;
+ const int port_;
+ const int backlog_;
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(ServerSocketFactory);
+ };
+
// Returns true if the given protocol version is supported.
CONTENT_EXPORT static bool IsSupportedProtocolVersion(
const std::string& version);
@@ -40,7 +67,7 @@ class DevToolsHttpHandler {
// port selected by the OS will be written to a well-known file in
// the output directory.
CONTENT_EXPORT static DevToolsHttpHandler* Start(
- const net::StreamListenSocketFactory* socket_factory,
+ scoped_ptr<ServerSocketFactory> server_socket_factory,
const std::string& frontend_url,
DevToolsHttpHandlerDelegate* delegate,
const base::FilePath& active_port_output_directory);