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

Side by Side Diff: android_webview/browser/aw_devtools_server.cc

Issue 2863233002: [WebView] Move files from native to browser (Closed)
Patch Set: Created 3 years, 7 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
OLDNEW
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 "android_webview/native/aw_devtools_server.h" 5 #include "android_webview/browser/aw_devtools_server.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "android_webview/browser/aw_contents.h"
9 #include "android_webview/browser/browser_view_renderer.h" 10 #include "android_webview/browser/browser_view_renderer.h"
10 #include "android_webview/common/aw_content_client.h" 11 #include "android_webview/common/aw_content_client.h"
11 #include "android_webview/native/aw_contents.h"
12 #include "base/bind.h" 12 #include "base/bind.h"
13 #include "base/files/file_path.h" 13 #include "base/files/file_path.h"
14 #include "base/json/json_writer.h" 14 #include "base/json/json_writer.h"
15 #include "base/memory/ptr_util.h" 15 #include "base/memory/ptr_util.h"
16 #include "base/strings/stringprintf.h" 16 #include "base/strings/stringprintf.h"
17 #include "base/strings/utf_string_conversions.h" 17 #include "base/strings/utf_string_conversions.h"
18 #include "base/values.h" 18 #include "base/values.h"
19 #include "content/public/browser/android/devtools_auth.h" 19 #include "content/public/browser/android/devtools_auth.h"
20 #include "content/public/browser/devtools_agent_host.h" 20 #include "content/public/browser/devtools_agent_host.h"
21 #include "content/public/browser/devtools_socket_factory.h" 21 #include "content/public/browser/devtools_socket_factory.h"
(...skipping 12 matching lines...) Expand all
34 "http://chrome-devtools-frontend.appspot.com/serve_rev/%s/inspector.html"; 34 "http://chrome-devtools-frontend.appspot.com/serve_rev/%s/inspector.html";
35 const char kSocketNameFormat[] = "webview_devtools_remote_%d"; 35 const char kSocketNameFormat[] = "webview_devtools_remote_%d";
36 const char kTetheringSocketName[] = "webview_devtools_tethering_%d_%d"; 36 const char kTetheringSocketName[] = "webview_devtools_tethering_%d_%d";
37 37
38 const int kBackLog = 10; 38 const int kBackLog = 10;
39 39
40 // Factory for UnixDomainServerSocket. 40 // Factory for UnixDomainServerSocket.
41 class UnixDomainServerSocketFactory : public content::DevToolsSocketFactory { 41 class UnixDomainServerSocketFactory : public content::DevToolsSocketFactory {
42 public: 42 public:
43 explicit UnixDomainServerSocketFactory(const std::string& socket_name) 43 explicit UnixDomainServerSocketFactory(const std::string& socket_name)
44 : socket_name_(socket_name), 44 : socket_name_(socket_name), last_tethering_socket_(0) {}
45 last_tethering_socket_(0) {
46 }
47 45
48 private: 46 private:
49 // content::DevToolsAgentHost::ServerSocketFactory. 47 // content::DevToolsAgentHost::ServerSocketFactory.
50 std::unique_ptr<net::ServerSocket> CreateForHttpServer() override { 48 std::unique_ptr<net::ServerSocket> CreateForHttpServer() override {
51 std::unique_ptr<net::UnixDomainServerSocket> socket( 49 std::unique_ptr<net::UnixDomainServerSocket> socket(
52 new net::UnixDomainServerSocket( 50 new net::UnixDomainServerSocket(
53 base::Bind(&content::CanUserConnectToDevTools), 51 base::Bind(&content::CanUserConnectToDevTools),
54 true /* use_abstract_namespace */)); 52 true /* use_abstract_namespace */));
55 if (socket->BindAndListen(socket_name_, kBackLog) != net::OK) 53 if (socket->BindAndListen(socket_name_, kBackLog) != net::OK)
56 return std::unique_ptr<net::ServerSocket>(); 54 return std::unique_ptr<net::ServerSocket>();
57 55
58 return std::move(socket); 56 return std::move(socket);
59 } 57 }
60 58
61 std::unique_ptr<net::ServerSocket> CreateForTethering( 59 std::unique_ptr<net::ServerSocket> CreateForTethering(
62 std::string* name) override { 60 std::string* name) override {
63 *name = base::StringPrintf( 61 *name = base::StringPrintf(kTetheringSocketName, getpid(),
64 kTetheringSocketName, getpid(), ++last_tethering_socket_); 62 ++last_tethering_socket_);
65 std::unique_ptr<net::UnixDomainServerSocket> socket( 63 std::unique_ptr<net::UnixDomainServerSocket> socket(
66 new net::UnixDomainServerSocket( 64 new net::UnixDomainServerSocket(
67 base::Bind(&content::CanUserConnectToDevTools), 65 base::Bind(&content::CanUserConnectToDevTools),
68 true /* use_abstract_namespace */)); 66 true /* use_abstract_namespace */));
69 if (socket->BindAndListen(*name, kBackLog) != net::OK) 67 if (socket->BindAndListen(*name, kBackLog) != net::OK)
70 return std::unique_ptr<net::ServerSocket>(); 68 return std::unique_ptr<net::ServerSocket>();
71 69
72 return std::move(socket); 70 return std::move(socket);
73 } 71 }
74 72
75 std::string socket_name_; 73 std::string socket_name_;
76 int last_tethering_socket_; 74 int last_tethering_socket_;
77 75
78 DISALLOW_COPY_AND_ASSIGN(UnixDomainServerSocketFactory); 76 DISALLOW_COPY_AND_ASSIGN(UnixDomainServerSocketFactory);
79 }; 77 };
80 78
81 } // namespace 79 } // namespace
82 80
83 namespace android_webview { 81 namespace android_webview {
84 82
85 AwDevToolsServer::AwDevToolsServer() : is_started_(false) { 83 AwDevToolsServer::AwDevToolsServer() : is_started_(false) {}
86 }
87 84
88 AwDevToolsServer::~AwDevToolsServer() { 85 AwDevToolsServer::~AwDevToolsServer() {
89 Stop(); 86 Stop();
90 } 87 }
91 88
92 void AwDevToolsServer::Start() { 89 void AwDevToolsServer::Start() {
93 if (is_started_) 90 if (is_started_)
94 return; 91 return;
95 is_started_ = true; 92 is_started_ = true;
96 93
97 std::unique_ptr<content::DevToolsSocketFactory> factory( 94 std::unique_ptr<content::DevToolsSocketFactory> factory(
98 new UnixDomainServerSocketFactory( 95 new UnixDomainServerSocketFactory(
99 base::StringPrintf(kSocketNameFormat, getpid()))); 96 base::StringPrintf(kSocketNameFormat, getpid())));
100 DevToolsAgentHost::StartRemoteDebuggingServer( 97 DevToolsAgentHost::StartRemoteDebuggingServer(
101 std::move(factory), 98 std::move(factory),
102 base::StringPrintf(kFrontEndURL, content::GetWebKitRevision().c_str()), 99 base::StringPrintf(kFrontEndURL, content::GetWebKitRevision().c_str()),
103 base::FilePath(), base::FilePath(), 100 base::FilePath(), base::FilePath(), GetProduct(), GetUserAgent());
104 GetProduct(), GetUserAgent());
105 } 101 }
106 102
107 void AwDevToolsServer::Stop() { 103 void AwDevToolsServer::Stop() {
108 DevToolsAgentHost::StopRemoteDebuggingServer(); 104 DevToolsAgentHost::StopRemoteDebuggingServer();
109 is_started_ = false; 105 is_started_ = false;
110 } 106 }
111 107
112 bool AwDevToolsServer::IsStarted() const { 108 bool AwDevToolsServer::IsStarted() const {
113 return is_started_; 109 return is_started_;
114 } 110 }
(...skipping 21 matching lines...) Expand all
136 AwDevToolsServer* devtools_server = 132 AwDevToolsServer* devtools_server =
137 reinterpret_cast<AwDevToolsServer*>(server); 133 reinterpret_cast<AwDevToolsServer*>(server);
138 if (enabled) { 134 if (enabled) {
139 devtools_server->Start(); 135 devtools_server->Start();
140 } else { 136 } else {
141 devtools_server->Stop(); 137 devtools_server->Stop();
142 } 138 }
143 } 139 }
144 140
145 } // namespace android_webview 141 } // namespace android_webview
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698