Index: chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java |
index 4a69a8cf4b466b3258ae907582762c8b6d0f0e00..f7ac127984446f742f65dd2ff52c21e3419cc879 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java |
@@ -37,12 +37,13 @@ import org.chromium.chrome.browser.ChromeApplication; |
import org.chromium.chrome.browser.ChromeStrictMode; |
import org.chromium.chrome.browser.ChromeSwitches; |
import org.chromium.chrome.browser.FileProviderHelper; |
-import org.chromium.chrome.browser.crash.MinidumpDirectoryObserver; |
+import org.chromium.chrome.browser.crash.LogcatExtractionRunnable; |
import org.chromium.chrome.browser.download.DownloadManagerService; |
import org.chromium.chrome.browser.services.GoogleServicesManager; |
import org.chromium.chrome.browser.tabmodel.document.DocumentTabModelImpl; |
import org.chromium.chrome.browser.webapps.ActivityAssigner; |
import org.chromium.chrome.browser.webapps.ChromeWebApkHost; |
+import org.chromium.components.crash.browser.CrashDumpManager; |
import org.chromium.content.app.ContentApplication; |
import org.chromium.content.browser.BrowserStartupController; |
import org.chromium.content.browser.DeviceUtils; |
@@ -51,6 +52,7 @@ import org.chromium.net.NetworkChangeNotifier; |
import org.chromium.policy.CombinedPolicyProvider; |
import org.chromium.ui.base.DeviceFormFactor; |
+import java.io.File; |
import java.util.LinkedList; |
import java.util.Locale; |
@@ -71,8 +73,6 @@ public class ChromeBrowserInitializer { |
private boolean mPostInflationStartupComplete; |
private boolean mNativeInitializationComplete; |
- private MinidumpDirectoryObserver mMinidumpDirectoryObserver; |
- |
// Public to allow use in ChromeBackupAgent |
public static final String PRIVATE_DATA_DIRECTORY_SUFFIX = "chrome"; |
@@ -406,19 +406,15 @@ public class ChromeBrowserInitializer { |
mNativeInitializationComplete = true; |
ContentUriUtils.setFileProviderUtil(new FileProviderHelper()); |
- // Start the file observer to watch the minidump directory. |
- new AsyncTask<Void, Void, MinidumpDirectoryObserver>() { |
+ // When a minidump is detected, extract and append a logcat to it, then upload it to the |
+ // crash server. Note that the logcat extraction might fail. This is ok; in that case, the |
+ // minidump will be found and uploaded upon the next browser launch. |
+ CrashDumpManager.registerUploadCallback(new CrashDumpManager.UploadMinidumpCallback() { |
@Override |
- protected MinidumpDirectoryObserver doInBackground(Void... params) { |
- return new MinidumpDirectoryObserver(); |
+ public void tryToUploadMinidump(File minidump) { |
+ AsyncTask.THREAD_POOL_EXECUTOR.execute(new LogcatExtractionRunnable(minidump)); |
} |
- |
- @Override |
- protected void onPostExecute(MinidumpDirectoryObserver minidumpDirectoryObserver) { |
- mMinidumpDirectoryObserver = minidumpDirectoryObserver; |
- mMinidumpDirectoryObserver.startWatching(); |
- } |
- }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); |
+ }); |
} |
private void waitForDebuggerIfNeeded() { |