summaryrefslogtreecommitdiffstats
path: root/remoting/host/desktop_process_main.cc
diff options
context:
space:
mode:
Diffstat (limited to 'remoting/host/desktop_process_main.cc')
-rw-r--r--remoting/host/desktop_process_main.cc96
1 files changed, 46 insertions, 50 deletions
diff --git a/remoting/host/desktop_process_main.cc b/remoting/host/desktop_process_main.cc
index be7f918..fa678de 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)