| Index: remoting/host/desktop_process_main.cc
|
| diff --git a/remoting/host/desktop_process_main.cc b/remoting/host/desktop_process_main.cc
|
| index be7f918bf795716f7ddcefdb5b64a99bfb5d7d23..fa678de69ef4386064b3cbc2550d5099d906c4b7 100644
|
| --- a/remoting/host/desktop_process_main.cc
|
| +++ b/remoting/host/desktop_process_main.cc
|
| @@ -5,8 +5,6 @@
|
| // This file implements the Windows service controlling Me2Me host processes
|
| // running within user sessions.
|
|
|
| -#include "remoting/host/desktop_process_main.h"
|
| -
|
| #include "base/at_exit.h"
|
| #include "base/bind.h"
|
| #include "base/bind_helpers.h"
|
| @@ -56,9 +54,7 @@ void Usage(const FilePath& program_name) {
|
|
|
| } // namespace
|
|
|
| -namespace remoting {
|
| -
|
| -int DesktopProcessMain(int argc, char** argv) {
|
| +int main(int argc, char** argv) {
|
| #if defined(OS_MACOSX)
|
| // Needed so we don't leak objects when threads are created.
|
| base::mac::ScopedNSAutoreleasePool pool;
|
| @@ -66,48 +62,17 @@ int DesktopProcessMain(int argc, char** argv) {
|
|
|
| CommandLine::Init(argc, argv);
|
|
|
| - // Initialize Breakpad as early as possible. On Mac the command-line needs to
|
| - // be initialized first, so that the preference for crash-reporting can be
|
| - // looked up in the config file.
|
| -#if defined(OFFICIAL_BUILD) && (defined(MAC_BREAKPAD) || defined(OS_WIN))
|
| - if (IsUsageStatsAllowed()) {
|
| - InitializeCrashReporting();
|
| - }
|
| -#endif // defined(OFFICIAL_BUILD) && (defined(MAC_BREAKPAD) || defined(OS_WIN))
|
| -
|
| // This object instance is required by Chrome code (for example,
|
| // LazyInstance, MessageLoop).
|
| base::AtExitManager exit_manager;
|
|
|
| - InitHostLogging();
|
| -
|
| -#if defined(OS_WIN)
|
| - // Register and initialize common controls.
|
| - INITCOMMONCONTROLSEX info;
|
| - info.dwSize = sizeof(info);
|
| - info.dwICC = ICC_STANDARD_CLASSES;
|
| - InitCommonControlsEx(&info);
|
| -
|
| - // Mark the process as DPI-aware, so Windows won't scale coordinates in APIs.
|
| - // N.B. This API exists on Vista and above.
|
| - if (base::win::GetVersion() >= base::win::VERSION_VISTA) {
|
| - FilePath path(base::GetNativeLibraryName(UTF8ToUTF16("user32")));
|
| - base::ScopedNativeLibrary user32(path);
|
| - CHECK(user32.is_valid());
|
| -
|
| - typedef BOOL (WINAPI * SetProcessDPIAwareFn)();
|
| - SetProcessDPIAwareFn set_process_dpi_aware =
|
| - static_cast<SetProcessDPIAwareFn>(
|
| - user32.GetFunctionPointer("SetProcessDPIAware"));
|
| - set_process_dpi_aware();
|
| - }
|
| -#endif // defined(OS_WIN)
|
| + remoting::InitHostLogging();
|
|
|
| const CommandLine* command_line = CommandLine::ForCurrentProcess();
|
| if (command_line->HasSwitch(kHelpSwitchName) ||
|
| command_line->HasSwitch(kQuestionSwitchName)) {
|
| Usage(command_line->GetProgram());
|
| - return kSuccessExitCode;
|
| + return remoting::kSuccessExitCode;
|
| }
|
|
|
| std::string channel_name =
|
| @@ -115,7 +80,7 @@ int DesktopProcessMain(int argc, char** argv) {
|
|
|
| if (channel_name.empty()) {
|
| Usage(command_line->GetProgram());
|
| - return kUsageExitCode;
|
| + return remoting::kUsageExitCode;
|
| }
|
|
|
| MessageLoop message_loop(MessageLoop::TYPE_UI);
|
| @@ -124,25 +89,56 @@ int DesktopProcessMain(int argc, char** argv) {
|
| base::IgnoreResult(&base::SingleThreadTaskRunner::PostTask),
|
| message_loop.message_loop_proxy(),
|
| FROM_HERE, run_loop.QuitClosure());
|
| - scoped_refptr<AutoThreadTaskRunner> ui_task_runner =
|
| - new AutoThreadTaskRunner(message_loop.message_loop_proxy(),
|
| - quit_ui_task_runner);
|
| + scoped_refptr<remoting::AutoThreadTaskRunner> ui_task_runner =
|
| + new remoting::AutoThreadTaskRunner(message_loop.message_loop_proxy(),
|
| + quit_ui_task_runner);
|
|
|
| - DesktopProcess desktop_process(ui_task_runner, channel_name);
|
| + remoting::DesktopProcess desktop_process(ui_task_runner, channel_name);
|
| if (!desktop_process.Start())
|
| - return kInitializationFailed;
|
| + return remoting::kInitializationFailed;
|
|
|
| // Run the UI message loop.
|
| ui_task_runner = NULL;
|
| run_loop.Run();
|
|
|
| - return kSuccessExitCode;
|
| + return remoting::kSuccessExitCode;
|
| }
|
|
|
| -} // namespace remoting
|
| +#if defined(OS_WIN)
|
|
|
| -#if !defined(OS_WIN)
|
| -int main(int argc, char** argv) {
|
| - return remoting::DesktopProcessMain(argc, argv);
|
| +int CALLBACK WinMain(HINSTANCE instance,
|
| + HINSTANCE previous_instance,
|
| + LPSTR raw_command_line,
|
| + int show_command) {
|
| +#ifdef OFFICIAL_BUILD
|
| + if (remoting::IsUsageStatsAllowed()) {
|
| + remoting::InitializeCrashReporting();
|
| + }
|
| +#endif // OFFICIAL_BUILD
|
| +
|
| + // Register and initialize common controls.
|
| + INITCOMMONCONTROLSEX info;
|
| + info.dwSize = sizeof(info);
|
| + info.dwICC = ICC_STANDARD_CLASSES;
|
| + InitCommonControlsEx(&info);
|
| +
|
| + // Mark the process as DPI-aware, so Windows won't scale coordinates in APIs.
|
| + // N.B. This API exists on Vista and above.
|
| + if (base::win::GetVersion() >= base::win::VERSION_VISTA) {
|
| + FilePath path(base::GetNativeLibraryName(UTF8ToUTF16("user32")));
|
| + base::ScopedNativeLibrary user32(path);
|
| + CHECK(user32.is_valid());
|
| +
|
| + typedef BOOL (WINAPI * SetProcessDPIAwareFn)();
|
| + SetProcessDPIAwareFn set_process_dpi_aware =
|
| + static_cast<SetProcessDPIAwareFn>(
|
| + user32.GetFunctionPointer("SetProcessDPIAware"));
|
| + set_process_dpi_aware();
|
| + }
|
| +
|
| + // CommandLine::Init() ignores the passed |argc| and |argv| on Windows getting
|
| + // the command line from GetCommandLineW(), so we can safely pass NULL here.
|
| + return main(0, NULL);
|
| }
|
| -#endif // !defined(OS_WIN)
|
| +
|
| +#endif // defined(OS_WIN)
|
|
|