Index: chrome/browser/chrome_browser_main_extra_parts_x11.cc |
=================================================================== |
--- chrome/browser/chrome_browser_main_extra_parts_x11.cc (revision 210624) |
+++ chrome/browser/chrome_browser_main_extra_parts_x11.cc (working copy) |
@@ -2,23 +2,18 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#include "chrome/browser/chrome_browser_main.h" |
+#include "chrome/browser/chrome_browser_main_extra_parts_x11.h" |
#include "base/bind.h" |
#include "base/debug/debugger.h" |
#include "base/message_loop.h" |
#include "chrome/browser/browser_shutdown.h" |
#include "chrome/browser/lifetime/application_lifetime.h" |
-#include "chrome/browser/metrics/metrics_service.h" |
#include "chrome/common/chrome_result_codes.h" |
#include "content/public/browser/browser_thread.h" |
#include "ui/base/x/x11_util.h" |
#include "ui/base/x/x11_util_internal.h" |
-#if defined(USE_LINUX_BREAKPAD) |
-#include "chrome/app/breakpad_linux.h" |
-#endif |
- |
using content::BrowserThread; |
namespace { |
@@ -77,36 +72,29 @@ |
} // namespace |
-void RecordBreakpadStatusUMA(MetricsService* metrics) { |
-#if defined(USE_LINUX_BREAKPAD) |
- metrics->RecordBreakpadRegistration(IsCrashReporterEnabled()); |
-#else |
- metrics->RecordBreakpadRegistration(false); |
-#endif |
- metrics->RecordBreakpadHasDebugger(base::debug::BeingDebugged()); |
+ChromeBrowserMainExtraPartsX11::ChromeBrowserMainExtraPartsX11() { |
} |
-void WarnAboutMinimumSystemRequirements() { |
- // Nothing to warn about on X11 right now. |
+ChromeBrowserMainExtraPartsX11::~ChromeBrowserMainExtraPartsX11() { |
} |
-// From browser_main_win.h, stubs until we figure out the right thing... |
- |
-int DoUninstallTasks(bool chrome_still_running) { |
- return content::RESULT_CODE_NORMAL_EXIT; |
-} |
- |
-void SetBrowserX11ErrorHandlersPreEarlyInitialization() { |
- // Use default error handlers during startup. |
+void ChromeBrowserMainExtraPartsX11::PreEarlyInitialization() { |
+ // Installs the X11 error handlers for the browser process used during |
+ // startup. They simply print error messages and exit because |
+ // we can't shutdown properly while creating and initializing services. |
ui::SetX11ErrorHandlers(NULL, NULL); |
} |
-void SetBrowserX11ErrorHandlersPostMainMessageLoopStart() { |
- // Set up error handlers to make sure profile gets written if X server |
- // goes away. |
+void ChromeBrowserMainExtraPartsX11::PostMainMessageLoopStart() { |
+ // Installs the X11 error handlers for the browser process after the |
+ // main message loop has started. This will allow us to exit cleanly |
+ // if X exits before us. |
ui::SetX11ErrorHandlers(BrowserX11ErrorHandler, BrowserX11IOErrorHandler); |
} |
-void UnsetBrowserX11ErrorHandlers() { |
+void ChromeBrowserMainExtraPartsX11::PostMainMessageLoopRun() { |
+ // Unset the X11 error handlers. The X11 error handlers log the errors using a |
+ // |PostTask()| on the message-loop. But since the message-loop is in the |
+ // process of terminating, this can cause errors. |
ui::SetX11ErrorHandlers(X11EmptyErrorHandler, X11EmptyIOErrorHandler); |
} |