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

Side by Side Diff: remoting/host/host_main.cc

Issue 290173011: Cleanup: Use base::CommandLine in remoting/ (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 6 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 // This file implements the common entry point shared by all Chromoting Host 5 // This file implements the common entry point shared by all Chromoting Host
6 // processes. 6 // processes.
7 7
8 #include "remoting/host/host_main.h" 8 #include "remoting/host/host_main.h"
9 9
10 #include <string> 10 #include <string>
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 " --version - Prints the host version and exits.\n"; 79 " --version - Prints the host version and exits.\n";
80 80
81 void Usage(const base::FilePath& program_name) { 81 void Usage(const base::FilePath& program_name) {
82 printf(kUsageMessage, program_name.MaybeAsASCII().c_str()); 82 printf(kUsageMessage, program_name.MaybeAsASCII().c_str());
83 } 83 }
84 84
85 #if defined(OS_WIN) 85 #if defined(OS_WIN)
86 86
87 // Runs the binary specified by the command line, elevated. 87 // Runs the binary specified by the command line, elevated.
88 int RunElevated() { 88 int RunElevated() {
89 const CommandLine::SwitchMap& switches = 89 const base::CommandLine::SwitchMap& switches =
90 CommandLine::ForCurrentProcess()->GetSwitches(); 90 base::CommandLine::ForCurrentProcess()->GetSwitches();
91 CommandLine::StringVector args = CommandLine::ForCurrentProcess()->GetArgs(); 91 base::CommandLine::StringVector args =
92 base::CommandLine::ForCurrentProcess()->GetArgs();
92 93
93 // Create the child process command line by copying switches from the current 94 // Create the child process command line by copying switches from the current
94 // command line. 95 // command line.
95 CommandLine command_line(CommandLine::NO_PROGRAM); 96 base::CommandLine command_line(base::CommandLine::NO_PROGRAM);
96 for (CommandLine::SwitchMap::const_iterator i = switches.begin(); 97 for (base::CommandLine::SwitchMap::const_iterator i = switches.begin();
97 i != switches.end(); ++i) { 98 i != switches.end(); ++i) {
98 if (i->first != kElevateSwitchName) 99 if (i->first != kElevateSwitchName)
99 command_line.AppendSwitchNative(i->first, i->second); 100 command_line.AppendSwitchNative(i->first, i->second);
100 } 101 }
101 for (CommandLine::StringVector::const_iterator i = args.begin(); 102 for (base::CommandLine::StringVector::const_iterator i = args.begin();
102 i != args.end(); ++i) { 103 i != args.end(); ++i) {
103 command_line.AppendArgNative(*i); 104 command_line.AppendArgNative(*i);
104 } 105 }
105 106
106 // Get the name of the binary to launch. 107 // Get the name of the binary to launch.
107 base::FilePath binary = 108 base::FilePath binary =
108 CommandLine::ForCurrentProcess()->GetSwitchValuePath(kElevateSwitchName); 109 base::CommandLine::ForCurrentProcess()->GetSwitchValuePath(
109 CommandLine::StringType parameters = command_line.GetCommandLineString(); 110 kElevateSwitchName);
111 base::CommandLine::StringType parameters =
112 command_line.GetCommandLineString();
110 113
111 // Launch the child process requesting elevation. 114 // Launch the child process requesting elevation.
112 SHELLEXECUTEINFO info; 115 SHELLEXECUTEINFO info;
113 memset(&info, 0, sizeof(info)); 116 memset(&info, 0, sizeof(info));
114 info.cbSize = sizeof(info); 117 info.cbSize = sizeof(info);
115 info.lpVerb = L"runas"; 118 info.lpVerb = L"runas";
116 info.lpFile = binary.value().c_str(); 119 info.lpFile = binary.value().c_str();
117 info.lpParameters = parameters.c_str(); 120 info.lpParameters = parameters.c_str();
118 info.nShow = SW_SHOWNORMAL; 121 info.nShow = SW_SHOWNORMAL;
119 122
(...skipping 30 matching lines...) Expand all
150 } 153 }
151 154
152 } // namespace 155 } // namespace
153 156
154 int HostMain(int argc, char** argv) { 157 int HostMain(int argc, char** argv) {
155 #if defined(OS_MACOSX) 158 #if defined(OS_MACOSX)
156 // Needed so we don't leak objects when threads are created. 159 // Needed so we don't leak objects when threads are created.
157 base::mac::ScopedNSAutoreleasePool pool; 160 base::mac::ScopedNSAutoreleasePool pool;
158 #endif 161 #endif
159 162
160 CommandLine::Init(argc, argv); 163 base::CommandLine::Init(argc, argv);
161 164
162 // Initialize Breakpad as early as possible. On Mac the command-line needs to 165 // Initialize Breakpad as early as possible. On Mac the command-line needs to
163 // be initialized first, so that the preference for crash-reporting can be 166 // be initialized first, so that the preference for crash-reporting can be
164 // looked up in the config file. 167 // looked up in the config file.
165 #if defined(REMOTING_ENABLE_BREAKPAD) 168 #if defined(REMOTING_ENABLE_BREAKPAD)
166 if (IsUsageStatsAllowed()) { 169 if (IsUsageStatsAllowed()) {
167 InitializeCrashReporting(); 170 InitializeCrashReporting();
168 } 171 }
169 #endif // defined(REMOTING_ENABLE_BREAKPAD) 172 #endif // defined(REMOTING_ENABLE_BREAKPAD)
170 173
171 // This object instance is required by Chrome code (for example, 174 // This object instance is required by Chrome code (for example,
172 // LazyInstance, MessageLoop). 175 // LazyInstance, MessageLoop).
173 base::AtExitManager exit_manager; 176 base::AtExitManager exit_manager;
174 177
175 // Enable debug logs. 178 // Enable debug logs.
176 InitHostLogging(); 179 InitHostLogging();
177 180
178 // Register and initialize common controls. 181 // Register and initialize common controls.
179 #if defined(OS_WIN) 182 #if defined(OS_WIN)
180 INITCOMMONCONTROLSEX info; 183 INITCOMMONCONTROLSEX info;
181 info.dwSize = sizeof(info); 184 info.dwSize = sizeof(info);
182 info.dwICC = ICC_STANDARD_CLASSES; 185 info.dwICC = ICC_STANDARD_CLASSES;
183 InitCommonControlsEx(&info); 186 InitCommonControlsEx(&info);
184 #endif // defined(OS_WIN) 187 #endif // defined(OS_WIN)
185 188
186 // Parse the command line. 189 // Parse the command line.
187 const CommandLine* command_line = CommandLine::ForCurrentProcess(); 190 const base::CommandLine* command_line =
191 base::CommandLine::ForCurrentProcess();
188 if (command_line->HasSwitch(kHelpSwitchName) || 192 if (command_line->HasSwitch(kHelpSwitchName) ||
189 command_line->HasSwitch(kQuestionSwitchName)) { 193 command_line->HasSwitch(kQuestionSwitchName)) {
190 Usage(command_line->GetProgram()); 194 Usage(command_line->GetProgram());
191 return kSuccessExitCode; 195 return kSuccessExitCode;
192 } 196 }
193 197
194 if (command_line->HasSwitch(kVersionSwitchName)) { 198 if (command_line->HasSwitch(kVersionSwitchName)) {
195 printf("%s\n", STRINGIZE(VERSION)); 199 printf("%s\n", STRINGIZE(VERSION));
196 return kSuccessExitCode; 200 return kSuccessExitCode;
197 } 201 }
(...skipping 28 matching lines...) Expand all
226 if (exit_code == kUsageExitCode) { 230 if (exit_code == kUsageExitCode) {
227 Usage(command_line->GetProgram()); 231 Usage(command_line->GetProgram());
228 } 232 }
229 233
230 remoting::UnloadResources(); 234 remoting::UnloadResources();
231 235
232 return exit_code; 236 return exit_code;
233 } 237 }
234 238
235 } // namespace remoting 239 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/host/desktop_resizer_linux.cc ('k') | remoting/host/it2me/it2me_native_messaging_host_main.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698