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

Side by Side Diff: chrome/browser/android/dev_tools_server.cc

Issue 16093005: [Android] Use a "unique" remote debugging socket name on bind failure (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Always use socket names from MakeSocketPath Created 7 years, 6 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "chrome/browser/android/dev_tools_server.h" 5 #include "chrome/browser/android/dev_tools_server.h"
6 6
7 #include <pwd.h> 7 #include <pwd.h>
8 #include <cstring> 8 #include <cstring>
9 9
10 #include "base/android/jni_string.h" 10 #include "base/android/jni_string.h"
(...skipping 16 matching lines...) Expand all
27 #include "jni/DevToolsServer_jni.h" 27 #include "jni/DevToolsServer_jni.h"
28 #include "net/socket/unix_domain_socket_posix.h" 28 #include "net/socket/unix_domain_socket_posix.h"
29 #include "net/url_request/url_request_context_getter.h" 29 #include "net/url_request/url_request_context_getter.h"
30 #include "ui/base/resource/resource_bundle.h" 30 #include "ui/base/resource/resource_bundle.h"
31 31
32 namespace { 32 namespace {
33 33
34 const char kFrontEndURL[] = 34 const char kFrontEndURL[] =
35 "http://chrome-devtools-frontend.appspot.com/static/%s/devtools.html"; 35 "http://chrome-devtools-frontend.appspot.com/static/%s/devtools.html";
36 const char kDefaultSocketName[] = "chrome_devtools_remote"; 36 const char kDefaultSocketName[] = "chrome_devtools_remote";
37 const char kTetheringSocketName[] = "chrome_devtools_tethering_%d"; 37 const char kTetheringSocketName[] = "chrome_devtools_tethering_%d_%d";
38 38
39 // Delegate implementation for the devtools http handler on android. A new 39 // Delegate implementation for the devtools http handler on android. A new
40 // instance of this gets created each time devtools is enabled. 40 // instance of this gets created each time devtools is enabled.
41 class DevToolsServerDelegate : public content::DevToolsHttpHandlerDelegate { 41 class DevToolsServerDelegate : public content::DevToolsHttpHandlerDelegate {
42 public: 42 public:
43 explicit DevToolsServerDelegate(bool use_bundled_frontend_resources) 43 explicit DevToolsServerDelegate(bool use_bundled_frontend_resources)
44 : use_bundled_frontend_resources_(use_bundled_frontend_resources), 44 : use_bundled_frontend_resources_(use_bundled_frontend_resources),
45 last_tethering_socket_(0) { 45 last_tethering_socket_(0) {
46 } 46 }
47 47
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 return kTargetTypeTab; 85 return kTargetTypeTab;
86 } 86 }
87 87
88 virtual std::string GetViewDescription(content::RenderViewHost*) OVERRIDE { 88 virtual std::string GetViewDescription(content::RenderViewHost*) OVERRIDE {
89 return ""; 89 return "";
90 } 90 }
91 91
92 virtual scoped_refptr<net::StreamListenSocket> CreateSocketForTethering( 92 virtual scoped_refptr<net::StreamListenSocket> CreateSocketForTethering(
93 net::StreamListenSocket::Delegate* delegate, 93 net::StreamListenSocket::Delegate* delegate,
94 std::string* name) OVERRIDE { 94 std::string* name) OVERRIDE {
95 *name = base::StringPrintf(kTetheringSocketName, ++last_tethering_socket_); 95 *name = base::StringPrintf(
96 kTetheringSocketName, getpid(), ++last_tethering_socket_);
96 return net::UnixDomainSocket::CreateAndListenWithAbstractNamespace( 97 return net::UnixDomainSocket::CreateAndListenWithAbstractNamespace(
97 *name, 98 *name,
99 "",
98 delegate, 100 delegate,
99 base::Bind(&content::CanUserConnectToDevTools)); 101 base::Bind(&content::CanUserConnectToDevTools));
100 } 102 }
101 103
102 private: 104 private:
103 static void PopulatePageThumbnails() { 105 static void PopulatePageThumbnails() {
104 Profile* profile = 106 Profile* profile =
105 ProfileManager::GetLastUsedProfile()->GetOriginalProfile(); 107 ProfileManager::GetLastUsedProfile()->GetOriginalProfile();
106 history::TopSites* top_sites = profile->GetTopSites(); 108 history::TopSites* top_sites = profile->GetTopSites();
107 if (top_sites) 109 if (top_sites)
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 143
142 void DevToolsServer::Start() { 144 void DevToolsServer::Start() {
143 if (protocol_handler_) 145 if (protocol_handler_)
144 return; 146 return;
145 147
146 chrome::VersionInfo version_info; 148 chrome::VersionInfo version_info;
147 149
148 protocol_handler_ = content::DevToolsHttpHandler::Start( 150 protocol_handler_ = content::DevToolsHttpHandler::Start(
149 new net::UnixDomainSocketWithAbstractNamespaceFactory( 151 new net::UnixDomainSocketWithAbstractNamespaceFactory(
150 socket_name_, 152 socket_name_,
153 base::StringPrintf("%s_%d", socket_name_.c_str(), getpid()),
151 base::Bind(&content::CanUserConnectToDevTools)), 154 base::Bind(&content::CanUserConnectToDevTools)),
152 use_bundled_frontend_resources_ ? 155 use_bundled_frontend_resources_ ?
153 "" : 156 "" :
154 base::StringPrintf(kFrontEndURL, version_info.Version().c_str()), 157 base::StringPrintf(kFrontEndURL, version_info.Version().c_str()),
155 new DevToolsServerDelegate(use_bundled_frontend_resources_)); 158 new DevToolsServerDelegate(use_bundled_frontend_resources_));
156 } 159 }
157 160
158 void DevToolsServer::Stop() { 161 void DevToolsServer::Stop() {
159 if (!protocol_handler_) 162 if (!protocol_handler_)
160 return; 163 return;
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
196 jobject obj, 199 jobject obj,
197 jint server, 200 jint server,
198 jboolean enabled) { 201 jboolean enabled) {
199 DevToolsServer* devtools_server = reinterpret_cast<DevToolsServer*>(server); 202 DevToolsServer* devtools_server = reinterpret_cast<DevToolsServer*>(server);
200 if (enabled) { 203 if (enabled) {
201 devtools_server->Start(); 204 devtools_server->Start();
202 } else { 205 } else {
203 devtools_server->Stop(); 206 devtools_server->Stop();
204 } 207 }
205 } 208 }
OLDNEW
« no previous file with comments | « android_webview/browser/aw_devtools_delegate.cc ('k') | content/shell/shell_devtools_delegate.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698