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

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

Issue 186763004: Add breakpad support for me2me and it2me native messaging host on Mac. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix Linux build break in Official Chrome build. Created 6 years, 8 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 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/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "base/run_loop.h" 10 #include "base/run_loop.h"
11 #include "base/strings/string_number_conversions.h" 11 #include "base/strings/string_number_conversions.h"
12 #include "net/url_request/url_fetcher.h" 12 #include "net/url_request/url_fetcher.h"
13 #include "remoting/base/breakpad.h"
13 #include "remoting/host/host_exit_codes.h" 14 #include "remoting/host/host_exit_codes.h"
14 #include "remoting/host/logging.h" 15 #include "remoting/host/logging.h"
15 #include "remoting/host/pairing_registry_delegate.h" 16 #include "remoting/host/pairing_registry_delegate.h"
16 #include "remoting/host/setup/me2me_native_messaging_host.h" 17 #include "remoting/host/setup/me2me_native_messaging_host.h"
18 #include "remoting/host/usage_stats_consent.h"
19
20 #if defined(OS_MACOSX)
21 #include "base/mac/scoped_nsautorelease_pool.h"
22 #endif // defined(OS_MACOSX)
17 23
18 #if defined(OS_WIN) 24 #if defined(OS_WIN)
19 #include "base/win/registry.h" 25 #include "base/win/registry.h"
20 #include "base/win/windows_version.h" 26 #include "base/win/windows_version.h"
21 #include "remoting/host/pairing_registry_delegate_win.h" 27 #include "remoting/host/pairing_registry_delegate_win.h"
22 #endif // defined(OS_WIN) 28 #endif // defined(OS_WIN)
23 29
24 using remoting::protocol::PairingRegistry; 30 using remoting::protocol::PairingRegistry;
25 31
26 namespace { 32 namespace {
(...skipping 20 matching lines...) Expand all
47 // UAC is turned off, TOKEN_ELEVATION will tell you the process is elevated. 53 // UAC is turned off, TOKEN_ELEVATION will tell you the process is elevated.
48 DWORD size; 54 DWORD size;
49 TOKEN_ELEVATION elevation; 55 TOKEN_ELEVATION elevation;
50 GetTokenInformation(process_token, TokenElevation, 56 GetTokenInformation(process_token, TokenElevation,
51 &elevation, sizeof(elevation), &size); 57 &elevation, sizeof(elevation), &size);
52 return elevation.TokenIsElevated != 0; 58 return elevation.TokenIsElevated != 0;
53 } 59 }
54 #endif // defined(OS_WIN) 60 #endif // defined(OS_WIN)
55 61
56 int StartMe2MeNativeMessagingHost() { 62 int StartMe2MeNativeMessagingHost() {
63 #if defined(OS_MACOSX)
64 // Needed so we don't leak objects when threads are created.
65 base::mac::ScopedNSAutoreleasePool pool;
66 #endif // defined(OS_MACOSX)
67
68 #if defined(REMOTING_ENABLE_BREAKPAD)
69 // Initialize Breakpad as early as possible. On Mac the command-line needs to
70 // be initialized first, so that the preference for crash-reporting can be
71 // looked up in the config file.
72 if (IsUsageStatsAllowed()) {
73 InitializeCrashReporting();
74 }
75 #endif // defined(REMOTING_ENABLE_BREAKPAD)
76
57 // Mac OS X requires that the main thread be a UI message loop in order to 77 // Mac OS X requires that the main thread be a UI message loop in order to
58 // receive distributed notifications from the System Preferences pane. An 78 // receive distributed notifications from the System Preferences pane. An
59 // IO thread is needed for the pairing registry and URL context getter. 79 // IO thread is needed for the pairing registry and URL context getter.
60 base::Thread io_thread("io_thread"); 80 base::Thread io_thread("io_thread");
61 io_thread.StartWithOptions( 81 io_thread.StartWithOptions(
62 base::Thread::Options(base::MessageLoop::TYPE_IO, 0)); 82 base::Thread::Options(base::MessageLoop::TYPE_IO, 0));
63 83
64 base::MessageLoopForUI message_loop; 84 base::MessageLoopForUI message_loop;
65 base::RunLoop run_loop; 85 base::RunLoop run_loop;
66 86
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
231 // This object instance is required by Chrome code (such as MessageLoop). 251 // This object instance is required by Chrome code (such as MessageLoop).
232 base::AtExitManager exit_manager; 252 base::AtExitManager exit_manager;
233 253
234 CommandLine::Init(argc, argv); 254 CommandLine::Init(argc, argv);
235 remoting::InitHostLogging(); 255 remoting::InitHostLogging();
236 256
237 return StartMe2MeNativeMessagingHost(); 257 return StartMe2MeNativeMessagingHost();
238 } 258 }
239 259
240 } // namespace remoting 260 } // namespace remoting
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698