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

Side by Side Diff: chrome/common/service_process_util_mac.mm

Issue 2444363003: Remove uses of ChannelHandle for service processes. (Closed)
Patch Set: Created 4 years, 1 month 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
« no previous file with comments | « chrome/common/service_process_util_linux.cc ('k') | chrome/common/service_process_util_win.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 #import <Foundation/Foundation.h> 5 #import <Foundation/Foundation.h>
6 #include <launch.h> 6 #include <launch.h>
7 7
8 #include <memory> 8 #include <memory>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 base::FilePath socket_name; 94 base::FilePath socket_name;
95 PathService::Get(base::DIR_TEMP, &socket_name); 95 PathService::Get(base::DIR_TEMP, &socket_name);
96 std::string pipe_name = GetServiceProcessScopedName("srv"); 96 std::string pipe_name = GetServiceProcessScopedName("srv");
97 socket_name = socket_name.Append(pipe_name); 97 socket_name = socket_name.Append(pipe_name);
98 CHECK_LT(socket_name.value().size(), IPC::kMaxSocketNameLength); 98 CHECK_LT(socket_name.value().size(), IPC::kMaxSocketNameLength);
99 return socket_name; 99 return socket_name;
100 } 100 }
101 101
102 } // namespace 102 } // namespace
103 103
104 IPC::ChannelHandle GetServiceProcessChannel() { 104 mojo::edk::NamedPlatformHandle GetServiceProcessChannel() {
105 base::FilePath socket_name = GetServiceProcessSocketName(); 105 base::FilePath socket_name = GetServiceProcessSocketName();
106 VLOG(1) << "ServiceProcessChannel: " << socket_name.value(); 106 VLOG(1) << "ServiceProcessChannel: " << socket_name.value();
107 return IPC::ChannelHandle(socket_name.value()); 107 return mojo::edk::NamedPlatformHandle(socket_name.value());
108 } 108 }
109 109
110 bool ForceServiceProcessShutdown(const std::string& /* version */, 110 bool ForceServiceProcessShutdown(const std::string& /* version */,
111 base::ProcessId /* process_id */) { 111 base::ProcessId /* process_id */) {
112 base::mac::ScopedNSAutoreleasePool pool; 112 base::mac::ScopedNSAutoreleasePool pool;
113 CFStringRef label = base::mac::NSToCFCast(GetServiceProcessLaunchDLabel()); 113 CFStringRef label = base::mac::NSToCFCast(GetServiceProcessLaunchDLabel());
114 CFErrorRef err = NULL; 114 CFErrorRef err = NULL;
115 bool ret = Launchd::GetInstance()->RemoveJob(label, &err); 115 bool ret = Launchd::GetInstance()->RemoveJob(label, &err);
116 if (!ret) { 116 if (!ret) {
117 DLOG(ERROR) << "ForceServiceProcessShutdown: " << err << " " 117 DLOG(ERROR) << "ForceServiceProcessShutdown: " << err << " "
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 if (!dict) { 175 if (!dict) {
176 DLOG(ERROR) << "ServiceProcess must be launched by launchd. " 176 DLOG(ERROR) << "ServiceProcess must be launched by launchd. "
177 << "CopyLaunchdDictionaryByCheckingIn: " << err; 177 << "CopyLaunchdDictionaryByCheckingIn: " << err;
178 CFRelease(err); 178 CFRelease(err);
179 return false; 179 return false;
180 } 180 }
181 state_->launchd_conf.reset(dict); 181 state_->launchd_conf.reset(dict);
182 return true; 182 return true;
183 } 183 }
184 184
185 IPC::ChannelHandle ServiceProcessState::GetServiceProcessChannel() { 185 mojo::edk::ScopedPlatformHandle
186 ServiceProcessState::GetServiceProcessChannel() {
186 DCHECK(state_); 187 DCHECK(state_);
187 NSDictionary* ns_launchd_conf = base::mac::CFToNSCast(state_->launchd_conf); 188 NSDictionary* ns_launchd_conf = base::mac::CFToNSCast(state_->launchd_conf);
188 NSDictionary* socket_dict = 189 NSDictionary* socket_dict =
189 [ns_launchd_conf objectForKey:@ LAUNCH_JOBKEY_SOCKETS]; 190 [ns_launchd_conf objectForKey:@ LAUNCH_JOBKEY_SOCKETS];
190 NSArray* sockets = 191 NSArray* sockets =
191 [socket_dict objectForKey:GetServiceProcessLaunchDSocketKey()]; 192 [socket_dict objectForKey:GetServiceProcessLaunchDSocketKey()];
192 DCHECK_EQ([sockets count], 1U); 193 DCHECK_EQ([sockets count], 1U);
193 int socket = [[sockets objectAtIndex:0] intValue]; 194 int socket = [[sockets objectAtIndex:0] intValue];
194 base::FileDescriptor fd(socket, false); 195 return mojo::edk::ScopedPlatformHandle(mojo::edk::PlatformHandle(socket));
195 return IPC::ChannelHandle(std::string(), fd);
196 } 196 }
197 197
198 bool CheckServiceProcessReady() { 198 bool CheckServiceProcessReady() {
199 std::string version; 199 std::string version;
200 pid_t pid; 200 pid_t pid;
201 if (!GetServiceProcessData(&version, &pid)) { 201 if (!GetServiceProcessData(&version, &pid)) {
202 return false; 202 return false;
203 } 203 }
204 base::Version service_version(version); 204 base::Version service_version(version);
205 bool ready = true; 205 bool ready = true;
(...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after
462 CFErrorRef err = NULL; 462 CFErrorRef err = NULL;
463 if (!Launchd::GetInstance()->RemoveJob(label, &err)) { 463 if (!Launchd::GetInstance()->RemoveJob(label, &err)) {
464 base::ScopedCFTypeRef<CFErrorRef> scoped_err(err); 464 base::ScopedCFTypeRef<CFErrorRef> scoped_err(err);
465 DLOG(ERROR) << "RemoveJob " << err; 465 DLOG(ERROR) << "RemoveJob " << err;
466 // Exiting with zero, so launchd doesn't restart the process. 466 // Exiting with zero, so launchd doesn't restart the process.
467 exit(0); 467 exit(0);
468 } 468 }
469 } 469 }
470 } 470 }
471 } 471 }
OLDNEW
« no previous file with comments | « chrome/common/service_process_util_linux.cc ('k') | chrome/common/service_process_util_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698