Chromium Code Reviews| Index: chrome/browser/chrome_browser_main_android.cc |
| diff --git a/chrome/browser/chrome_browser_main_android.cc b/chrome/browser/chrome_browser_main_android.cc |
| index dbb1287b135041a08702e99bcad0a6df5b2e89fe..dd19a631e420dbdc202c55d262124b08b758868a 100644 |
| --- a/chrome/browser/chrome_browser_main_android.cc |
| +++ b/chrome/browser/chrome_browser_main_android.cc |
| @@ -8,12 +8,14 @@ |
| #include "base/command_line.h" |
| #include "base/files/file_path.h" |
| #include "base/files/file_util.h" |
| +#include "base/memory/ptr_util.h" |
| #include "base/path_service.h" |
| #include "base/trace_event/trace_event.h" |
| #include "chrome/browser/android/mojo/chrome_interface_registrar_android.h" |
| #include "chrome/browser/android/seccomp_support_detector.h" |
| #include "chrome/browser/signin/signin_manager_factory.h" |
| #include "chrome/common/chrome_paths.h" |
| +#include "chrome/common/descriptors_android.h" |
| #include "components/crash/content/app/breakpad_linux.h" |
| #include "components/crash/content/browser/crash_dump_manager_android.h" |
| #include "components/signin/core/browser/signin_manager.h" |
| @@ -41,15 +43,20 @@ ChromeBrowserMainPartsAndroid::ChromeBrowserMainPartsAndroid( |
| } |
| ChromeBrowserMainPartsAndroid::~ChromeBrowserMainPartsAndroid() { |
| + breakpad::CrashDumpObserver::GetInstance()->UnregisterClient( |
| + crash_dump_manager_); |
| } |
| int ChromeBrowserMainPartsAndroid::PreCreateThreads() { |
| TRACE_EVENT0("startup", "ChromeBrowserMainPartsAndroid::PreCreateThreads") |
| - // The CrashDumpManager must be initialized before any child process is |
| - // created (as they need to access it during creation). Such processes |
| - // are created on the PROCESS_LAUNCHER thread, and so the manager is |
| - // initialized before that thread is created. |
| + // The CrashDumpManager must be registered before any child process is |
| + // created (as it needs to be notified during child process |
| + // creation). Such processes are created on the PROCESS_LAUNCHER |
| + // thread, and so the observer is initialized and the manager |
| + // registered before that thread is created. |
| + breakpad::CrashDumpObserver::Create(); |
| + |
| #if defined(GOOGLE_CHROME_BUILD) |
| // TODO(jcivelli): we should not initialize the crash-reporter when it was not |
| // enabled. Right now if it is disabled we still generate the minidumps but we |
| @@ -67,7 +74,9 @@ int ChromeBrowserMainPartsAndroid::PreCreateThreads() { |
| if (breakpad_enabled) { |
| base::FilePath crash_dump_dir; |
| PathService::Get(chrome::DIR_CRASH_DUMPS, &crash_dump_dir); |
| - crash_dump_manager_.reset(new breakpad::CrashDumpManager(crash_dump_dir)); |
| + breakpad::CrashDumpObserver::GetInstance()->RegisterClient( |
| + crash_dump_manager_ = new breakpad::CrashDumpManager( |
|
boliu
2016/10/13 21:07:18
ditto
Tobias Sargeant
2016/12/08 16:41:41
Done.
|
| + crash_dump_dir, kAndroidMinidumpDescriptor)); |
| } |
| ui::SetLocalePaksStoredInApk(false); |