OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 #include "content/shell/browser/shell_devtools_manager_delegate.h" | 5 #include "content/shell/browser/shell_devtools_manager_delegate.h" |
6 | 6 |
7 #include <stdint.h> | 7 #include <stdint.h> |
8 | 8 |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
11 #include "base/bind.h" | 11 #include "base/bind.h" |
12 #include "base/command_line.h" | 12 #include "base/command_line.h" |
13 #include "base/files/file_path.h" | 13 #include "base/files/file_path.h" |
14 #include "base/macros.h" | 14 #include "base/macros.h" |
| 15 #include "base/memory/ptr_util.h" |
15 #include "base/strings/string_number_conversions.h" | 16 #include "base/strings/string_number_conversions.h" |
16 #include "base/strings/stringprintf.h" | 17 #include "base/strings/stringprintf.h" |
17 #include "base/strings/utf_string_conversions.h" | 18 #include "base/strings/utf_string_conversions.h" |
18 #include "build/build_config.h" | 19 #include "build/build_config.h" |
19 #include "components/devtools_discovery/basic_target_descriptor.h" | 20 #include "components/devtools_discovery/basic_target_descriptor.h" |
20 #include "components/devtools_discovery/devtools_discovery_manager.h" | 21 #include "components/devtools_discovery/devtools_discovery_manager.h" |
21 #include "components/devtools_http_handler/devtools_http_handler.h" | 22 #include "components/devtools_http_handler/devtools_http_handler.h" |
22 #include "content/public/browser/browser_context.h" | 23 #include "content/public/browser/browser_context.h" |
23 #include "content/public/browser/devtools_agent_host.h" | 24 #include "content/public/browser/devtools_agent_host.h" |
24 #include "content/public/browser/devtools_frontend_host.h" | 25 #include "content/public/browser/devtools_frontend_host.h" |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
56 | 57 |
57 #if defined(OS_ANDROID) | 58 #if defined(OS_ANDROID) |
58 class UnixDomainServerSocketFactory | 59 class UnixDomainServerSocketFactory |
59 : public DevToolsHttpHandler::ServerSocketFactory { | 60 : public DevToolsHttpHandler::ServerSocketFactory { |
60 public: | 61 public: |
61 explicit UnixDomainServerSocketFactory(const std::string& socket_name) | 62 explicit UnixDomainServerSocketFactory(const std::string& socket_name) |
62 : socket_name_(socket_name) {} | 63 : socket_name_(socket_name) {} |
63 | 64 |
64 private: | 65 private: |
65 // DevToolsHttpHandler::ServerSocketFactory. | 66 // DevToolsHttpHandler::ServerSocketFactory. |
66 scoped_ptr<net::ServerSocket> CreateForHttpServer() override { | 67 std::unique_ptr<net::ServerSocket> CreateForHttpServer() override { |
67 scoped_ptr<net::UnixDomainServerSocket> socket( | 68 std::unique_ptr<net::UnixDomainServerSocket> socket( |
68 new net::UnixDomainServerSocket(base::Bind(&CanUserConnectToDevTools), | 69 new net::UnixDomainServerSocket(base::Bind(&CanUserConnectToDevTools), |
69 true /* use_abstract_namespace */)); | 70 true /* use_abstract_namespace */)); |
70 if (socket->BindAndListen(socket_name_, kBackLog) != net::OK) | 71 if (socket->BindAndListen(socket_name_, kBackLog) != net::OK) |
71 return scoped_ptr<net::ServerSocket>(); | 72 return std::unique_ptr<net::ServerSocket>(); |
72 | 73 |
73 return std::move(socket); | 74 return std::move(socket); |
74 } | 75 } |
75 | 76 |
76 std::string socket_name_; | 77 std::string socket_name_; |
77 | 78 |
78 DISALLOW_COPY_AND_ASSIGN(UnixDomainServerSocketFactory); | 79 DISALLOW_COPY_AND_ASSIGN(UnixDomainServerSocketFactory); |
79 }; | 80 }; |
80 #else | 81 #else |
81 class TCPServerSocketFactory | 82 class TCPServerSocketFactory |
82 : public DevToolsHttpHandler::ServerSocketFactory { | 83 : public DevToolsHttpHandler::ServerSocketFactory { |
83 public: | 84 public: |
84 TCPServerSocketFactory(const std::string& address, uint16_t port) | 85 TCPServerSocketFactory(const std::string& address, uint16_t port) |
85 : address_(address), port_(port) {} | 86 : address_(address), port_(port) {} |
86 | 87 |
87 private: | 88 private: |
88 // DevToolsHttpHandler::ServerSocketFactory. | 89 // DevToolsHttpHandler::ServerSocketFactory. |
89 scoped_ptr<net::ServerSocket> CreateForHttpServer() override { | 90 std::unique_ptr<net::ServerSocket> CreateForHttpServer() override { |
90 scoped_ptr<net::ServerSocket> socket( | 91 std::unique_ptr<net::ServerSocket> socket( |
91 new net::TCPServerSocket(nullptr, net::NetLog::Source())); | 92 new net::TCPServerSocket(nullptr, net::NetLog::Source())); |
92 if (socket->ListenWithAddressAndPort(address_, port_, kBackLog) != net::OK) | 93 if (socket->ListenWithAddressAndPort(address_, port_, kBackLog) != net::OK) |
93 return scoped_ptr<net::ServerSocket>(); | 94 return std::unique_ptr<net::ServerSocket>(); |
94 | 95 |
95 return socket; | 96 return socket; |
96 } | 97 } |
97 | 98 |
98 std::string address_; | 99 std::string address_; |
99 uint16_t port_; | 100 uint16_t port_; |
100 | 101 |
101 DISALLOW_COPY_AND_ASSIGN(TCPServerSocketFactory); | 102 DISALLOW_COPY_AND_ASSIGN(TCPServerSocketFactory); |
102 }; | 103 }; |
103 #endif | 104 #endif |
104 | 105 |
105 scoped_ptr<DevToolsHttpHandler::ServerSocketFactory> | 106 std::unique_ptr<DevToolsHttpHandler::ServerSocketFactory> |
106 CreateSocketFactory() { | 107 CreateSocketFactory() { |
107 const base::CommandLine& command_line = | 108 const base::CommandLine& command_line = |
108 *base::CommandLine::ForCurrentProcess(); | 109 *base::CommandLine::ForCurrentProcess(); |
109 #if defined(OS_ANDROID) | 110 #if defined(OS_ANDROID) |
110 std::string socket_name = "content_shell_devtools_remote"; | 111 std::string socket_name = "content_shell_devtools_remote"; |
111 if (command_line.HasSwitch(switches::kRemoteDebuggingSocketName)) { | 112 if (command_line.HasSwitch(switches::kRemoteDebuggingSocketName)) { |
112 socket_name = command_line.GetSwitchValueASCII( | 113 socket_name = command_line.GetSwitchValueASCII( |
113 switches::kRemoteDebuggingSocketName); | 114 switches::kRemoteDebuggingSocketName); |
114 } | 115 } |
115 return scoped_ptr<DevToolsHttpHandler::ServerSocketFactory>( | 116 return std::unique_ptr<DevToolsHttpHandler::ServerSocketFactory>( |
116 new UnixDomainServerSocketFactory(socket_name)); | 117 new UnixDomainServerSocketFactory(socket_name)); |
117 #else | 118 #else |
118 // See if the user specified a port on the command line (useful for | 119 // See if the user specified a port on the command line (useful for |
119 // automation). If not, use an ephemeral port by specifying 0. | 120 // automation). If not, use an ephemeral port by specifying 0. |
120 uint16_t port = 0; | 121 uint16_t port = 0; |
121 if (command_line.HasSwitch(switches::kRemoteDebuggingPort)) { | 122 if (command_line.HasSwitch(switches::kRemoteDebuggingPort)) { |
122 int temp_port; | 123 int temp_port; |
123 std::string port_str = | 124 std::string port_str = |
124 command_line.GetSwitchValueASCII(switches::kRemoteDebuggingPort); | 125 command_line.GetSwitchValueASCII(switches::kRemoteDebuggingPort); |
125 if (base::StringToInt(port_str, &temp_port) && | 126 if (base::StringToInt(port_str, &temp_port) && |
126 temp_port >= 0 && temp_port < 65535) { | 127 temp_port >= 0 && temp_port < 65535) { |
127 port = static_cast<uint16_t>(temp_port); | 128 port = static_cast<uint16_t>(temp_port); |
128 } else { | 129 } else { |
129 DLOG(WARNING) << "Invalid http debugger port number " << temp_port; | 130 DLOG(WARNING) << "Invalid http debugger port number " << temp_port; |
130 } | 131 } |
131 } | 132 } |
132 return scoped_ptr<DevToolsHttpHandler::ServerSocketFactory>( | 133 return std::unique_ptr<DevToolsHttpHandler::ServerSocketFactory>( |
133 new TCPServerSocketFactory("127.0.0.1", port)); | 134 new TCPServerSocketFactory("127.0.0.1", port)); |
134 #endif | 135 #endif |
135 } | 136 } |
136 | 137 |
137 scoped_ptr<devtools_discovery::DevToolsTargetDescriptor> | 138 std::unique_ptr<devtools_discovery::DevToolsTargetDescriptor> |
138 CreateNewShellTarget(BrowserContext* browser_context, const GURL& url) { | 139 CreateNewShellTarget(BrowserContext* browser_context, const GURL& url) { |
139 Shell* shell = Shell::CreateNewWindow(browser_context, | 140 Shell* shell = Shell::CreateNewWindow(browser_context, |
140 url, | 141 url, |
141 nullptr, | 142 nullptr, |
142 gfx::Size()); | 143 gfx::Size()); |
143 return make_scoped_ptr(new devtools_discovery::BasicTargetDescriptor( | 144 return base::WrapUnique(new devtools_discovery::BasicTargetDescriptor( |
144 DevToolsAgentHost::GetOrCreateFor(shell->web_contents()))); | 145 DevToolsAgentHost::GetOrCreateFor(shell->web_contents()))); |
145 } | 146 } |
146 | 147 |
147 // ShellDevToolsDelegate ---------------------------------------------------- | 148 // ShellDevToolsDelegate ---------------------------------------------------- |
148 | 149 |
149 class ShellDevToolsDelegate : | 150 class ShellDevToolsDelegate : |
150 public devtools_http_handler::DevToolsHttpHandlerDelegate { | 151 public devtools_http_handler::DevToolsHttpHandlerDelegate { |
151 public: | 152 public: |
152 explicit ShellDevToolsDelegate(BrowserContext* browser_context); | 153 explicit ShellDevToolsDelegate(BrowserContext* browser_context); |
153 ~ShellDevToolsDelegate() override; | 154 ~ShellDevToolsDelegate() override; |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
226 ShellDevToolsManagerDelegate::~ShellDevToolsManagerDelegate() { | 227 ShellDevToolsManagerDelegate::~ShellDevToolsManagerDelegate() { |
227 } | 228 } |
228 | 229 |
229 base::DictionaryValue* ShellDevToolsManagerDelegate::HandleCommand( | 230 base::DictionaryValue* ShellDevToolsManagerDelegate::HandleCommand( |
230 DevToolsAgentHost* agent_host, | 231 DevToolsAgentHost* agent_host, |
231 base::DictionaryValue* command) { | 232 base::DictionaryValue* command) { |
232 return NULL; | 233 return NULL; |
233 } | 234 } |
234 | 235 |
235 } // namespace content | 236 } // namespace content |
OLD | NEW |