Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(194)

Side by Side Diff: chrome/browser/debugger/devtools_http_protocol_handler.h

Issue 6356015: DevTools: enable remote debugging with front-end served from the cloud. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Lint Created 9 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_DEBUGGER_DEVTOOLS_HTTP_PROTOCOL_HANDLER_H_ 5 #ifndef CHROME_BROWSER_DEBUGGER_DEVTOOLS_HTTP_PROTOCOL_HANDLER_H_
6 #define CHROME_BROWSER_DEBUGGER_DEVTOOLS_HTTP_PROTOCOL_HANDLER_H_ 6 #define CHROME_BROWSER_DEBUGGER_DEVTOOLS_HTTP_PROTOCOL_HANDLER_H_
7 #pragma once 7 #pragma once
8 8
9 #include <set> 9 #include <set>
10 #include <string> 10 #include <string>
11 11
12 #include "base/ref_counted.h" 12 #include "base/ref_counted.h"
13 #include "net/server/http_listen_socket.h" 13 #include "net/server/http_listen_socket.h"
14 #include "net/url_request/url_request.h" 14 #include "net/url_request/url_request.h"
15 15
16 class DevToolsClientHost; 16 class DevToolsClientHost;
17 class DevToolsHttpServer; 17 class DevToolsHttpServer;
18 class TabContents; 18 class TabContents;
19 19
20 class DevToolsHttpProtocolHandler 20 class DevToolsHttpProtocolHandler
21 : public HttpListenSocket::Delegate, 21 : public HttpListenSocket::Delegate,
22 public net::URLRequest::Delegate, 22 public net::URLRequest::Delegate,
23 public base::RefCountedThreadSafe<DevToolsHttpProtocolHandler> { 23 public base::RefCountedThreadSafe<DevToolsHttpProtocolHandler> {
24 public: 24 public:
25 explicit DevToolsHttpProtocolHandler(int port); 25 static scoped_refptr<DevToolsHttpProtocolHandler> Start(
26 int port,
27 const std::string& frontend_url);
26 28
27 // This method should be called after the object construction. 29 // Called from the main thread in order to stop protocol handler.
28 void Start(); 30 // Will schedule tear down task on IO thread.
29
30 // This method should be called before the object destruction.
31 void Stop(); 31 void Stop();
32 32
33 private: 33 private:
34 friend class base::RefCountedThreadSafe<DevToolsHttpProtocolHandler>; 34 friend class base::RefCountedThreadSafe<DevToolsHttpProtocolHandler>;
35
36 DevToolsHttpProtocolHandler(int port, const std::string& frontend_url);
35 virtual ~DevToolsHttpProtocolHandler(); 37 virtual ~DevToolsHttpProtocolHandler();
38 void Start();
36 39
37 // HttpListenSocket::Delegate implementation. 40 // HttpListenSocket::Delegate implementation.
38 virtual void OnHttpRequest(HttpListenSocket* socket, 41 virtual void OnHttpRequest(HttpListenSocket* socket,
39 const HttpServerRequestInfo& info); 42 const HttpServerRequestInfo& info);
40 virtual void OnWebSocketRequest(HttpListenSocket* socket, 43 virtual void OnWebSocketRequest(HttpListenSocket* socket,
41 const HttpServerRequestInfo& info); 44 const HttpServerRequestInfo& info);
42 virtual void OnWebSocketMessage(HttpListenSocket* socket, 45 virtual void OnWebSocketMessage(HttpListenSocket* socket,
43 const std::string& data); 46 const std::string& data);
44 virtual void OnClose(HttpListenSocket* socket); 47 virtual void OnClose(HttpListenSocket* socket);
45 48
(...skipping 20 matching lines...) Expand all
66 void Send404(HttpListenSocket* socket); 69 void Send404(HttpListenSocket* socket);
67 void Send500(HttpListenSocket* socket, 70 void Send500(HttpListenSocket* socket,
68 const std::string& message); 71 const std::string& message);
69 void AcceptWebSocket(HttpListenSocket* socket, 72 void AcceptWebSocket(HttpListenSocket* socket,
70 const HttpServerRequestInfo& request); 73 const HttpServerRequestInfo& request);
71 void ReleaseSocket(HttpListenSocket* socket); 74 void ReleaseSocket(HttpListenSocket* socket);
72 75
73 TabContents* GetTabContents(int session_id); 76 TabContents* GetTabContents(int session_id);
74 77
75 int port_; 78 int port_;
79 std::string overriden_frontend_url_;
76 scoped_refptr<HttpListenSocket> server_; 80 scoped_refptr<HttpListenSocket> server_;
77 typedef std::map<net::URLRequest*, HttpListenSocket*> 81 typedef std::map<net::URLRequest*, HttpListenSocket*>
78 RequestToSocketMap; 82 RequestToSocketMap;
79 RequestToSocketMap request_to_socket_io_; 83 RequestToSocketMap request_to_socket_io_;
80 typedef std::map<HttpListenSocket*, std::set<net::URLRequest*> > 84 typedef std::map<HttpListenSocket*, std::set<net::URLRequest*> >
81 SocketToRequestsMap; 85 SocketToRequestsMap;
82 SocketToRequestsMap socket_to_requests_io_; 86 SocketToRequestsMap socket_to_requests_io_;
83 typedef std::map<net::URLRequest*, scoped_refptr<net::IOBuffer> > 87 typedef std::map<net::URLRequest*, scoped_refptr<net::IOBuffer> >
84 BuffersMap; 88 BuffersMap;
85 BuffersMap request_to_buffer_io_; 89 BuffersMap request_to_buffer_io_;
86 typedef std::map<HttpListenSocket*, DevToolsClientHost*> 90 typedef std::map<HttpListenSocket*, DevToolsClientHost*>
87 SocketToClientHostMap; 91 SocketToClientHostMap;
88 SocketToClientHostMap socket_to_client_host_ui_; 92 SocketToClientHostMap socket_to_client_host_ui_;
89 DISALLOW_COPY_AND_ASSIGN(DevToolsHttpProtocolHandler); 93 DISALLOW_COPY_AND_ASSIGN(DevToolsHttpProtocolHandler);
90 }; 94 };
91 95
92 #endif // CHROME_BROWSER_DEBUGGER_DEVTOOLS_HTTP_PROTOCOL_HANDLER_H_ 96 #endif // CHROME_BROWSER_DEBUGGER_DEVTOOLS_HTTP_PROTOCOL_HANDLER_H_
OLDNEW
« no previous file with comments | « chrome/browser/debugger/debugger_wrapper.cc ('k') | chrome/browser/debugger/devtools_http_protocol_handler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698