Index: android_webview/native/aw_dev_tools_server.cc |
diff --git a/android_webview/native/aw_dev_tools_server.cc b/android_webview/native/aw_dev_tools_server.cc |
deleted file mode 100644 |
index f00b2df9f801334dcfe110c805351962e604b368..0000000000000000000000000000000000000000 |
--- a/android_webview/native/aw_dev_tools_server.cc |
+++ /dev/null |
@@ -1,181 +0,0 @@ |
-// Copyright 2013 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "android_webview/native/aw_dev_tools_server.h" |
- |
-#include <utility> |
- |
-#include "android_webview/common/aw_content_client.h" |
-#include "android_webview/native/aw_contents.h" |
-#include "base/bind.h" |
-#include "base/files/file_path.h" |
-#include "base/json/json_writer.h" |
-#include "base/strings/stringprintf.h" |
-#include "base/strings/utf_string_conversions.h" |
-#include "base/values.h" |
-#include "components/devtools_http_handler/devtools_http_handler.h" |
-#include "components/devtools_http_handler/devtools_http_handler_delegate.h" |
-#include "content/public/browser/android/devtools_auth.h" |
-#include "content/public/browser/devtools_agent_host.h" |
-#include "content/public/browser/devtools_socket_factory.h" |
-#include "content/public/browser/web_contents.h" |
-#include "content/public/common/user_agent.h" |
-#include "jni/AwDevToolsServer_jni.h" |
-#include "net/base/net_errors.h" |
-#include "net/socket/unix_domain_server_socket_posix.h" |
- |
-using base::android::JavaParamRef; |
-using content::DevToolsAgentHost; |
-using content::RenderViewHost; |
-using content::WebContents; |
-using devtools_http_handler::DevToolsHttpHandler; |
- |
-namespace { |
- |
-const char kFrontEndURL[] = |
- "http://chrome-devtools-frontend.appspot.com/serve_rev/%s/inspector.html"; |
-const char kSocketNameFormat[] = "webview_devtools_remote_%d"; |
-const char kTetheringSocketName[] = "webview_devtools_tethering_%d_%d"; |
- |
-const int kBackLog = 10; |
- |
-// Delegate implementation for the devtools http handler for WebView. A new |
-// instance of this gets created each time web debugging is enabled. |
-class AwDevToolsServerDelegate : |
- public devtools_http_handler::DevToolsHttpHandlerDelegate { |
- public: |
- AwDevToolsServerDelegate() { |
- } |
- |
- ~AwDevToolsServerDelegate() override {} |
- |
- // devtools_http_handler::DevToolsHttpHandlerDelegate implementation. |
- std::string GetDiscoveryPageHTML() override; |
- std::string GetFrontendResource(const std::string& path) override; |
- |
- private: |
- |
- DISALLOW_COPY_AND_ASSIGN(AwDevToolsServerDelegate); |
-}; |
- |
- |
-std::string AwDevToolsServerDelegate::GetDiscoveryPageHTML() { |
- const char html[] = |
- "<html>" |
- "<head><title>WebView remote debugging</title></head>" |
- "<body>Please use <a href=\'chrome://inspect\'>chrome://inspect</a>" |
- "</body>" |
- "</html>"; |
- return html; |
-} |
- |
-std::string AwDevToolsServerDelegate::GetFrontendResource( |
- const std::string& path) { |
- return std::string(); |
-} |
- |
-// Factory for UnixDomainServerSocket. |
-class UnixDomainServerSocketFactory : public content::DevToolsSocketFactory { |
- public: |
- explicit UnixDomainServerSocketFactory(const std::string& socket_name) |
- : socket_name_(socket_name), |
- last_tethering_socket_(0) { |
- } |
- |
- private: |
- // devtools_http_handler::DevToolsHttpHandler::ServerSocketFactory. |
- std::unique_ptr<net::ServerSocket> CreateForHttpServer() override { |
- std::unique_ptr<net::UnixDomainServerSocket> socket( |
- new net::UnixDomainServerSocket( |
- base::Bind(&content::CanUserConnectToDevTools), |
- true /* use_abstract_namespace */)); |
- if (socket->BindAndListen(socket_name_, kBackLog) != net::OK) |
- return std::unique_ptr<net::ServerSocket>(); |
- |
- return std::move(socket); |
- } |
- |
- std::unique_ptr<net::ServerSocket> CreateForTethering( |
- std::string* name) override { |
- *name = base::StringPrintf( |
- kTetheringSocketName, getpid(), ++last_tethering_socket_); |
- std::unique_ptr<net::UnixDomainServerSocket> socket( |
- new net::UnixDomainServerSocket( |
- base::Bind(&content::CanUserConnectToDevTools), |
- true /* use_abstract_namespace */)); |
- if (socket->BindAndListen(*name, kBackLog) != net::OK) |
- return std::unique_ptr<net::ServerSocket>(); |
- |
- return std::move(socket); |
- } |
- |
- std::string socket_name_; |
- int last_tethering_socket_; |
- |
- DISALLOW_COPY_AND_ASSIGN(UnixDomainServerSocketFactory); |
-}; |
- |
-} // namespace |
- |
-namespace android_webview { |
- |
-AwDevToolsServer::AwDevToolsServer() { |
-} |
- |
-AwDevToolsServer::~AwDevToolsServer() { |
- Stop(); |
-} |
- |
-void AwDevToolsServer::Start() { |
- if (devtools_http_handler_) |
- return; |
- |
- std::unique_ptr<content::DevToolsSocketFactory> factory( |
- new UnixDomainServerSocketFactory( |
- base::StringPrintf(kSocketNameFormat, getpid()))); |
- devtools_http_handler_.reset(new DevToolsHttpHandler( |
- std::move(factory), |
- base::StringPrintf(kFrontEndURL, content::GetWebKitRevision().c_str()), |
- new AwDevToolsServerDelegate(), base::FilePath(), base::FilePath(), |
- GetProduct(), GetUserAgent())); |
-} |
- |
-void AwDevToolsServer::Stop() { |
- devtools_http_handler_.reset(); |
-} |
- |
-bool AwDevToolsServer::IsStarted() const { |
- return !!devtools_http_handler_; |
-} |
- |
-bool RegisterAwDevToolsServer(JNIEnv* env) { |
- return RegisterNativesImpl(env); |
-} |
- |
-static jlong InitRemoteDebugging(JNIEnv* env, |
- const JavaParamRef<jobject>& obj) { |
- AwDevToolsServer* server = new AwDevToolsServer(); |
- return reinterpret_cast<intptr_t>(server); |
-} |
- |
-static void DestroyRemoteDebugging(JNIEnv* env, |
- const JavaParamRef<jobject>& obj, |
- jlong server) { |
- delete reinterpret_cast<AwDevToolsServer*>(server); |
-} |
- |
-static void SetRemoteDebuggingEnabled(JNIEnv* env, |
- const JavaParamRef<jobject>& obj, |
- jlong server, |
- jboolean enabled) { |
- AwDevToolsServer* devtools_server = |
- reinterpret_cast<AwDevToolsServer*>(server); |
- if (enabled) { |
- devtools_server->Start(); |
- } else { |
- devtools_server->Stop(); |
- } |
-} |
- |
-} // namespace android_webview |