| Index: components/devtools_http_handler/devtools_http_handler.cc
|
| diff --git a/components/devtools_http_handler/devtools_http_handler.cc b/components/devtools_http_handler/devtools_http_handler.cc
|
| index 17a12e17e18e2f86d96cbb53a5a15ddc41c77b26..0a623b41fe817fc9bdd5d0723fe3493b4be44a6e 100644
|
| --- a/components/devtools_http_handler/devtools_http_handler.cc
|
| +++ b/components/devtools_http_handler/devtools_http_handler.cc
|
| @@ -27,6 +27,7 @@
|
| #include "content/public/browser/browser_thread.h"
|
| #include "content/public/browser/devtools_external_agent_proxy_delegate.h"
|
| #include "content/public/browser/devtools_manager_delegate.h"
|
| +#include "content/public/browser/devtools_socket_factory.h"
|
| #include "content/public/common/url_constants.h"
|
| #include "content/public/common/user_agent.h"
|
| #include "net/base/escape.h"
|
| @@ -55,7 +56,6 @@ const base::FilePath::CharType kDevToolsActivePortFileName[] =
|
|
|
| const char kDevToolsHandlerThreadName[] = "Chrome_DevToolsHandlerThread";
|
|
|
| -const char kThumbUrlPrefix[] = "/thumb/";
|
| const char kPageUrlPrefix[] = "/devtools/page/";
|
|
|
| const char kTargetIdField[] = "id";
|
| @@ -64,7 +64,6 @@ const char kTargetTypeField[] = "type";
|
| const char kTargetTitleField[] = "title";
|
| const char kTargetDescriptionField[] = "description";
|
| const char kTargetUrlField[] = "url";
|
| -const char kTargetThumbnailUrlField[] = "thumbnailUrl";
|
| const char kTargetFaviconUrlField[] = "faviconUrl";
|
| const char kTargetWebSocketDebuggerUrlField[] = "webSocketDebuggerUrl";
|
| const char kTargetDevtoolsFrontendUrlField[] = "devtoolsFrontendUrl";
|
| @@ -172,7 +171,7 @@ void ServerWrapper::Close(int connection_id) {
|
|
|
| void TerminateOnUI(base::Thread* thread,
|
| ServerWrapper* server_wrapper,
|
| - DevToolsHttpHandler::ServerSocketFactory* socket_factory) {
|
| + content::DevToolsSocketFactory* socket_factory) {
|
| DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
| if (server_wrapper) {
|
| DCHECK(thread);
|
| @@ -190,7 +189,7 @@ void TerminateOnUI(base::Thread* thread,
|
| void ServerStartedOnUI(base::WeakPtr<DevToolsHttpHandler> handler,
|
| base::Thread* thread,
|
| ServerWrapper* server_wrapper,
|
| - DevToolsHttpHandler::ServerSocketFactory* socket_factory,
|
| + content::DevToolsSocketFactory* socket_factory,
|
| std::unique_ptr<net::IPEndPoint> ip_address) {
|
| DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
| if (handler && thread && server_wrapper) {
|
| @@ -204,14 +203,14 @@ void ServerStartedOnUI(base::WeakPtr<DevToolsHttpHandler> handler,
|
| void StartServerOnHandlerThread(
|
| base::WeakPtr<DevToolsHttpHandler> handler,
|
| base::Thread* thread,
|
| - DevToolsHttpHandler::ServerSocketFactory* server_socket_factory,
|
| + content::DevToolsSocketFactory* socket_factory,
|
| const base::FilePath& output_directory,
|
| const base::FilePath& frontend_dir,
|
| bool bundles_resources) {
|
| DCHECK(thread->task_runner()->BelongsToCurrentThread());
|
| ServerWrapper* server_wrapper = nullptr;
|
| std::unique_ptr<net::ServerSocket> server_socket =
|
| - server_socket_factory->CreateForHttpServer();
|
| + socket_factory->CreateForHttpServer();
|
| std::unique_ptr<net::IPEndPoint> ip_address(new net::IPEndPoint);
|
| if (server_socket) {
|
| server_wrapper = new ServerWrapper(handler, std::move(server_socket),
|
| @@ -230,13 +229,13 @@ void StartServerOnHandlerThread(
|
| handler,
|
| thread,
|
| server_wrapper,
|
| - server_socket_factory,
|
| + socket_factory,
|
| base::Passed(&ip_address)));
|
| }
|
|
|
| void StartServerOnFile(
|
| base::WeakPtr<DevToolsHttpHandler> handler,
|
| - DevToolsHttpHandler::ServerSocketFactory* server_socket_factory,
|
| + content::DevToolsSocketFactory* socket_factory,
|
| const base::FilePath& output_directory,
|
| const base::FilePath& frontend_dir,
|
| bool bundles_resources) {
|
| @@ -250,7 +249,7 @@ void StartServerOnFile(
|
| message_loop->task_runner()->PostTask(
|
| FROM_HERE,
|
| base::Bind(&StartServerOnHandlerThread, handler,
|
| - base::Unretained(thread.release()), server_socket_factory,
|
| + base::Unretained(thread.release()), socket_factory,
|
| output_directory, frontend_dir, bundles_resources));
|
| }
|
| }
|
| @@ -325,32 +324,12 @@ static bool TimeComparator(scoped_refptr<DevToolsAgentHost> host1,
|
| return host1->GetLastActivityTime() > host2->GetLastActivityTime();
|
| }
|
|
|
| -// DevToolsHttpHandler::ServerSocketFactory ----------------------------------
|
| -
|
| -std::unique_ptr<net::ServerSocket>
|
| -DevToolsHttpHandler::ServerSocketFactory::CreateForHttpServer() {
|
| - return nullptr;
|
| -}
|
| -
|
| -std::unique_ptr<net::ServerSocket>
|
| -DevToolsHttpHandler::ServerSocketFactory::CreateForTethering(
|
| - std::string* name) {
|
| - return nullptr;
|
| -}
|
| -
|
| // DevToolsHttpHandler -------------------------------------------------------
|
|
|
| DevToolsHttpHandler::~DevToolsHttpHandler() {
|
| TerminateOnUI(thread_, server_wrapper_, socket_factory_);
|
| }
|
|
|
| -GURL DevToolsHttpHandler::GetFrontendURL(const std::string& path) {
|
| - if (!server_ip_address_)
|
| - return GURL();
|
| - return GURL(std::string("http://") + server_ip_address_->ToString() +
|
| - (path.empty() ? frontend_url_ : path));
|
| -}
|
| -
|
| static std::string PathWithoutParams(const std::string& path) {
|
| size_t query_position = path.find("?");
|
| if (query_position != std::string::npos)
|
| @@ -402,20 +381,6 @@ void ServerWrapper::OnHttpRequest(int connection_id,
|
| return;
|
| }
|
|
|
| - if (base::StartsWith(info.path, kThumbUrlPrefix,
|
| - base::CompareCase::SENSITIVE)) {
|
| - // Thumbnail request.
|
| - const std::string target_id = info.path.substr(strlen(kThumbUrlPrefix));
|
| - BrowserThread::PostTask(
|
| - BrowserThread::UI,
|
| - FROM_HERE,
|
| - base::Bind(&DevToolsHttpHandler::OnThumbnailRequest,
|
| - handler_,
|
| - connection_id,
|
| - target_id));
|
| - return;
|
| - }
|
| -
|
| if (info.path.empty() || info.path == "/") {
|
| // Discovery page request.
|
| BrowserThread::PostTask(
|
| @@ -661,19 +626,6 @@ scoped_refptr<DevToolsAgentHost> DevToolsHttpHandler::GetAgentHost(
|
| return it != agent_host_map_.end() ? it->second : nullptr;
|
| }
|
|
|
| -void DevToolsHttpHandler::OnThumbnailRequest(
|
| - int connection_id, const std::string& target_id) {
|
| - scoped_refptr<DevToolsAgentHost> agent_host = GetAgentHost(target_id);
|
| - GURL page_url;
|
| - if (agent_host)
|
| - page_url = agent_host->GetURL();
|
| - std::string data = delegate_->GetPageThumbnailData(page_url);
|
| - if (!data.empty())
|
| - Send200(connection_id, data, "image/png");
|
| - else
|
| - Send404(connection_id);
|
| -}
|
| -
|
| void DevToolsHttpHandler::OnDiscoveryPageRequest(int connection_id) {
|
| std::string response = delegate_->GetDiscoveryPageHTML();
|
| Send200(connection_id, response, "text/html; charset=UTF-8");
|
| @@ -698,7 +650,7 @@ void DevToolsHttpHandler::OnWebSocketRequest(
|
| scoped_refptr<DevToolsAgentHost> browser_agent =
|
| DevToolsAgentHost::CreateForBrowser(
|
| thread_->task_runner(),
|
| - base::Bind(&ServerSocketFactory::CreateForTethering,
|
| + base::Bind(&content::DevToolsSocketFactory::CreateForTethering,
|
| base::Unretained(socket_factory_)));
|
| connection_to_client_[connection_id] = new DevToolsAgentHostClientImpl(
|
| thread_->message_loop(), server_wrapper_, connection_id, browser_agent);
|
| @@ -706,18 +658,6 @@ void DevToolsHttpHandler::OnWebSocketRequest(
|
| return;
|
| }
|
|
|
| - // Handle external connections (such as frontend api) on the embedder level.
|
| - content::DevToolsExternalAgentProxyDelegate* external_delegate =
|
| - delegate_->HandleWebSocketConnection(request.path);
|
| - if (external_delegate) {
|
| - scoped_refptr<DevToolsAgentHost> agent_host =
|
| - DevToolsAgentHost::Create(external_delegate);
|
| - connection_to_client_[connection_id] = new DevToolsAgentHostClientImpl(
|
| - thread_->message_loop(), server_wrapper_, connection_id, agent_host);
|
| - AcceptWebSocket(connection_id, request);
|
| - return;
|
| - }
|
| -
|
| if (!base::StartsWith(request.path, kPageUrlPrefix,
|
| base::CompareCase::SENSITIVE)) {
|
| Send404(connection_id);
|
| @@ -763,7 +703,7 @@ void DevToolsHttpHandler::OnClose(int connection_id) {
|
| }
|
|
|
| DevToolsHttpHandler::DevToolsHttpHandler(
|
| - std::unique_ptr<ServerSocketFactory> server_socket_factory,
|
| + std::unique_ptr<content::DevToolsSocketFactory> socket_factory,
|
| const std::string& frontend_url,
|
| DevToolsHttpHandlerDelegate* delegate,
|
| const base::FilePath& output_directory,
|
| @@ -786,7 +726,7 @@ DevToolsHttpHandler::DevToolsHttpHandler(
|
| BrowserThread::FILE, FROM_HERE,
|
| base::Bind(&StartServerOnFile,
|
| weak_factory_.GetWeakPtr(),
|
| - server_socket_factory.release(),
|
| + socket_factory.release(),
|
| output_directory,
|
| debug_frontend_dir,
|
| bundles_resources));
|
| @@ -795,7 +735,7 @@ DevToolsHttpHandler::DevToolsHttpHandler(
|
| void DevToolsHttpHandler::ServerStarted(
|
| base::Thread* thread,
|
| ServerWrapper* server_wrapper,
|
| - ServerSocketFactory* socket_factory,
|
| + content::DevToolsSocketFactory* socket_factory,
|
| std::unique_ptr<net::IPEndPoint> ip_address) {
|
| thread_ = thread;
|
| server_wrapper_ = server_wrapper;
|
| @@ -909,11 +849,6 @@ std::unique_ptr<base::DictionaryValue> DevToolsHttpHandler::SerializeDescriptor(
|
| if (favicon_url.is_valid())
|
| dictionary->SetString(kTargetFaviconUrlField, favicon_url.spec());
|
|
|
| - if (!delegate_->GetPageThumbnailData(url).empty()) {
|
| - dictionary->SetString(kTargetThumbnailUrlField,
|
| - std::string(kThumbUrlPrefix) + id);
|
| - }
|
| -
|
| if (!agent_host->IsAttached()) {
|
| dictionary->SetString(kTargetWebSocketDebuggerUrlField,
|
| base::StringPrintf("ws://%s%s%s",
|
|
|