diff options
author | byungchul <byungchul@chromium.org> | 2014-08-25 16:27:46 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-08-25 23:39:36 +0000 |
commit | 38c3ae72c9743dbe172779477917bf24bc25ab97 (patch) | |
tree | db9494d10bbe65ca83e265f63d82fbef970bc0ac /chromecast | |
parent | b71e30c90d27b6af56e80db25236019d007b8055 (diff) | |
download | chromium_src-38c3ae72c9743dbe172779477917bf24bc25ab97.zip chromium_src-38c3ae72c9743dbe172779477917bf24bc25ab97.tar.gz chromium_src-38c3ae72c9743dbe172779477917bf24bc25ab97.tar.bz2 |
Revert "Revert of Replace StreamListenSocket with StreamSocket in HttpServer. (patchset #29 of https://codereview.chromium.org/296053012/)"
This reverts commit 0b2f33f4a88efbd203b0623324ad4114e3bb9d23.
This is relanding CL of https://codereview.chromium.org/296053012/, which broke http server unittests because http server doesn't send response synchronously any more.
This CL fixes unittests by reading responses completely.
Patch set #1 is same to the original CL.
Patch set #2 is the diff.
BUG=371906
TBR=pfeldman@chromium.org,darin@chromium.org,gunsch@chromium.org,mnaganov@chromium.org
Review URL: https://codereview.chromium.org/487013003
Cr-Commit-Position: refs/heads/master@{#291784}
Diffstat (limited to 'chromecast')
-rw-r--r-- | chromecast/shell/browser/devtools/remote_debugging_server.cc | 53 |
1 files changed, 46 insertions, 7 deletions
diff --git a/chromecast/shell/browser/devtools/remote_debugging_server.cc b/chromecast/shell/browser/devtools/remote_debugging_server.cc index 076b066..57214f1 100644 --- a/chromecast/shell/browser/devtools/remote_debugging_server.cc +++ b/chromecast/shell/browser/devtools/remote_debugging_server.cc @@ -17,11 +17,11 @@ #include "content/public/browser/devtools_http_handler.h" #include "content/public/common/content_switches.h" #include "content/public/common/user_agent.h" -#include "net/socket/tcp_listen_socket.h" +#include "net/socket/tcp_server_socket.h" #if defined(OS_ANDROID) #include "content/public/browser/android/devtools_auth.h" -#include "net/socket/unix_domain_socket_posix.h" +#include "net/socket/unix_domain_server_socket_posix.h" #endif // defined(OS_ANDROID) namespace chromecast { @@ -35,7 +35,45 @@ const char kFrontEndURL[] = #endif // defined(OS_ANDROID) const int kDefaultRemoteDebuggingPort = 9222; -net::StreamListenSocketFactory* CreateSocketFactory(int port) { +#if defined(OS_ANDROID) +class UnixDomainServerSocketFactory + : public content::DevToolsHttpHandler::ServerSocketFactory { + public: + explicit UnixDomainServerSocketFactory(const std::string& socket_name) + : content::DevToolsHttpHandler::ServerSocketFactory(socket_name, 0, 1) {} + + private: + // content::DevToolsHttpHandler::ServerSocketFactory. + virtual scoped_ptr<net::ServerSocket> Create() const OVERRIDE { + return scoped_ptr<net::ServerSocket>( + new net::UnixDomainServerSocket( + base::Bind(&content::CanUserConnectToDevTools), + true /* use_abstract_namespace */)); + } + + DISALLOW_COPY_AND_ASSIGN(UnixDomainServerSocketFactory); +}; +#else +class TCPServerSocketFactory + : public content::DevToolsHttpHandler::ServerSocketFactory { + public: + TCPServerSocketFactory(const std::string& address, int port, int backlog) + : content::DevToolsHttpHandler::ServerSocketFactory( + address, port, backlog) {} + + private: + // content::DevToolsHttpHandler::ServerSocketFactory. + virtual scoped_ptr<net::ServerSocket> Create() const OVERRIDE { + return scoped_ptr<net::ServerSocket>( + new net::TCPServerSocket(NULL, net::NetLog::Source())); + } + + DISALLOW_COPY_AND_ASSIGN(TCPServerSocketFactory); +}; +#endif + +scoped_ptr<content::DevToolsHttpHandler::ServerSocketFactory> +CreateSocketFactory(int port) { #if defined(OS_ANDROID) base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); std::string socket_name = "content_shell_devtools_remote"; @@ -43,11 +81,12 @@ net::StreamListenSocketFactory* CreateSocketFactory(int port) { socket_name = command_line->GetSwitchValueASCII( switches::kRemoteDebuggingSocketName); } - return new net::UnixDomainSocketWithAbstractNamespaceFactory( - socket_name, "", base::Bind(&content::CanUserConnectToDevTools)); + return scoped_ptr<content::DevToolsHttpHandler::ServerSocketFactory>( + new UnixDomainServerSocketFactory(socket_name)); #else - return new net::TCPListenSocketFactory("0.0.0.0", port); -#endif // defined(OS_ANDROID) + return scoped_ptr<content::DevToolsHttpHandler::ServerSocketFactory>( + new TCPServerSocketFactory("0.0.0.0", port, 1)); +#endif } std::string GetFrontendUrl() { |