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

Side by Side Diff: remoting/host/setup/me2me_native_messaging_host_main.cc

Issue 810133003: replace NULL->nullptr in src/remoting. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 11 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 "remoting/host/setup/me2me_native_messaging_host_main.h" 5 #include "remoting/host/setup/me2me_native_messaging_host_main.h"
6 6
7 #include "base/at_exit.h" 7 #include "base/at_exit.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/files/file.h" 9 #include "base/files/file.h"
10 #include "base/i18n/icu_util.h" 10 #include "base/i18n/icu_util.h"
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
144 DCHECK(command_line->HasSwitch(kInputSwitchName)); 144 DCHECK(command_line->HasSwitch(kInputSwitchName));
145 DCHECK(command_line->HasSwitch(kOutputSwitchName)); 145 DCHECK(command_line->HasSwitch(kOutputSwitchName));
146 146
147 // presubmit: allow wstring 147 // presubmit: allow wstring
148 std::wstring input_pipe_name = 148 std::wstring input_pipe_name =
149 command_line->GetSwitchValueNative(kInputSwitchName); 149 command_line->GetSwitchValueNative(kInputSwitchName);
150 // presubmit: allow wstring 150 // presubmit: allow wstring
151 std::wstring output_pipe_name = 151 std::wstring output_pipe_name =
152 command_line->GetSwitchValueNative(kOutputSwitchName); 152 command_line->GetSwitchValueNative(kOutputSwitchName);
153 153
154 // A NULL SECURITY_ATTRIBUTES signifies that the handle can't be inherited 154 // A NULL SECURITY_ATTRIBUTES signifies that the handle can't be inherited.
155 read_file = base::File(CreateFile( 155 read_file =
156 input_pipe_name.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, 156 base::File(CreateFile(input_pipe_name.c_str(), GENERIC_READ, 0, nullptr,
157 FILE_ATTRIBUTE_NORMAL, NULL)); 157 OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, nullptr));
158 if (!read_file.IsValid()) { 158 if (!read_file.IsValid()) {
159 PLOG(ERROR) << "CreateFile failed on '" << input_pipe_name << "'"; 159 PLOG(ERROR) << "CreateFile failed on '" << input_pipe_name << "'";
160 return kInitializationFailed; 160 return kInitializationFailed;
161 } 161 }
162 162
163 write_file = base::File(CreateFile( 163 write_file = base::File(CreateFile(
164 output_pipe_name.c_str(), GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 164 output_pipe_name.c_str(), GENERIC_WRITE, 0, nullptr, OPEN_EXISTING,
165 FILE_ATTRIBUTE_NORMAL, NULL)); 165 FILE_ATTRIBUTE_NORMAL, nullptr));
166 if (!write_file.IsValid()) { 166 if (!write_file.IsValid()) {
167 PLOG(ERROR) << "CreateFile failed on '" << output_pipe_name << "'"; 167 PLOG(ERROR) << "CreateFile failed on '" << output_pipe_name << "'";
168 return kInitializationFailed; 168 return kInitializationFailed;
169 } 169 }
170 } else { 170 } else {
171 // GetStdHandle() returns pseudo-handles for stdin and stdout even if 171 // GetStdHandle() returns pseudo-handles for stdin and stdout even if
172 // the hosting executable specifies "Windows" subsystem. However the 172 // the hosting executable specifies "Windows" subsystem. However the
173 // returned handles are invalid in that case unless standard input and 173 // returned handles are invalid in that case unless standard input and
174 // output are redirected to a pipe or file. 174 // output are redirected to a pipe or file.
175 read_file = base::File(GetStdHandle(STD_INPUT_HANDLE)); 175 read_file = base::File(GetStdHandle(STD_INPUT_HANDLE));
176 write_file = base::File(GetStdHandle(STD_OUTPUT_HANDLE)); 176 write_file = base::File(GetStdHandle(STD_OUTPUT_HANDLE));
177 177
178 // After the native messaging channel starts the native messaging reader 178 // After the native messaging channel starts the native messaging reader
179 // will keep doing blocking read operations on the input named pipe. 179 // will keep doing blocking read operations on the input named pipe.
180 // If any other thread tries to perform any operation on STDIN, it will also 180 // If any other thread tries to perform any operation on STDIN, it will also
181 // block because the input named pipe is synchronous (non-overlapped). 181 // block because the input named pipe is synchronous (non-overlapped).
182 // It is pretty common for a DLL to query the device info (GetFileType) of 182 // It is pretty common for a DLL to query the device info (GetFileType) of
183 // the STD* handles at startup. So any LoadLibrary request can potentially 183 // the STD* handles at startup. So any LoadLibrary request can potentially
184 // be blocked. To prevent that from happening we close STDIN and STDOUT 184 // be blocked. To prevent that from happening we close STDIN and STDOUT
185 // handles as soon as we retrieve the corresponding file handles. 185 // handles as soon as we retrieve the corresponding file handles.
186 SetStdHandle(STD_INPUT_HANDLE, NULL); 186 SetStdHandle(STD_INPUT_HANDLE, nullptr);
187 SetStdHandle(STD_OUTPUT_HANDLE, NULL); 187 SetStdHandle(STD_OUTPUT_HANDLE, nullptr);
188 } 188 }
189 #elif defined(OS_POSIX) 189 #elif defined(OS_POSIX)
190 // The files will be automatically closed. 190 // The files will be automatically closed.
191 read_file = base::File(STDIN_FILENO); 191 read_file = base::File(STDIN_FILENO);
192 write_file = base::File(STDOUT_FILENO); 192 write_file = base::File(STDOUT_FILENO);
193 #else 193 #else
194 #error Not implemented. 194 #error Not implemented.
195 #endif 195 #endif
196 196
197 // OAuth client (for credential requests). IO thread is used for blocking 197 // OAuth client (for credential requests). IO thread is used for blocking
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
276 // This object instance is required by Chrome code (such as MessageLoop). 276 // This object instance is required by Chrome code (such as MessageLoop).
277 base::AtExitManager exit_manager; 277 base::AtExitManager exit_manager;
278 278
279 base::CommandLine::Init(argc, argv); 279 base::CommandLine::Init(argc, argv);
280 remoting::InitHostLogging(); 280 remoting::InitHostLogging();
281 281
282 return StartMe2MeNativeMessagingHost(); 282 return StartMe2MeNativeMessagingHost();
283 } 283 }
284 284
285 } // namespace remoting 285 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/host/setup/me2me_native_messaging_host.cc ('k') | remoting/host/setup/me2me_native_messaging_host_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698