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

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/DeferredStartupHandler.java

Issue 2756463004: [Cleanup] Remove the ability to disable Crash Reporting from the command line. (Closed)
Patch Set: Created 3 years, 9 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 package org.chromium.chrome.browser; 5 package org.chromium.chrome.browser;
6 6
7 import android.content.Context; 7 import android.content.Context;
8 import android.content.SharedPreferences; 8 import android.content.SharedPreferences;
9 import android.os.AsyncTask; 9 import android.os.AsyncTask;
10 import android.os.Looper; 10 import android.os.Looper;
11 import android.os.MessageQueue; 11 import android.os.MessageQueue;
12 import android.os.SystemClock; 12 import android.os.SystemClock;
13 import android.support.annotation.UiThread; 13 import android.support.annotation.UiThread;
14 import android.support.annotation.WorkerThread; 14 import android.support.annotation.WorkerThread;
15 import android.view.inputmethod.InputMethodInfo; 15 import android.view.inputmethod.InputMethodInfo;
16 import android.view.inputmethod.InputMethodManager; 16 import android.view.inputmethod.InputMethodManager;
17 import android.view.inputmethod.InputMethodSubtype; 17 import android.view.inputmethod.InputMethodSubtype;
18 18
19 import org.chromium.base.CommandLine;
20 import org.chromium.base.ContextUtils; 19 import org.chromium.base.ContextUtils;
21 import org.chromium.base.FieldTrialList; 20 import org.chromium.base.FieldTrialList;
22 import org.chromium.base.Log; 21 import org.chromium.base.Log;
23 import org.chromium.base.PowerMonitor; 22 import org.chromium.base.PowerMonitor;
24 import org.chromium.base.SysUtils; 23 import org.chromium.base.SysUtils;
25 import org.chromium.base.ThreadUtils; 24 import org.chromium.base.ThreadUtils;
26 import org.chromium.base.TraceEvent; 25 import org.chromium.base.TraceEvent;
27 import org.chromium.base.VisibleForTesting; 26 import org.chromium.base.VisibleForTesting;
28 import org.chromium.base.metrics.RecordHistogram; 27 import org.chromium.base.metrics.RecordHistogram;
29 import org.chromium.chrome.browser.bookmarkswidget.BookmarkWidgetProvider; 28 import org.chromium.chrome.browser.bookmarkswidget.BookmarkWidgetProvider;
30 import org.chromium.chrome.browser.crash.LogcatExtractionRunnable; 29 import org.chromium.chrome.browser.crash.LogcatExtractionRunnable;
31 import org.chromium.chrome.browser.crash.MinidumpUploadService; 30 import org.chromium.chrome.browser.crash.MinidumpUploadService;
32 import org.chromium.chrome.browser.init.ProcessInitializationHandler; 31 import org.chromium.chrome.browser.init.ProcessInitializationHandler;
33 import org.chromium.chrome.browser.locale.LocaleManager; 32 import org.chromium.chrome.browser.locale.LocaleManager;
34 import org.chromium.chrome.browser.media.MediaCaptureNotificationService; 33 import org.chromium.chrome.browser.media.MediaCaptureNotificationService;
35 import org.chromium.chrome.browser.metrics.LaunchMetrics; 34 import org.chromium.chrome.browser.metrics.LaunchMetrics;
36 import org.chromium.chrome.browser.metrics.UmaUtils; 35 import org.chromium.chrome.browser.metrics.UmaUtils;
37 import org.chromium.chrome.browser.ntp.NewTabPage; 36 import org.chromium.chrome.browser.ntp.NewTabPage;
38 import org.chromium.chrome.browser.offlinepages.OfflinePageUtils; 37 import org.chromium.chrome.browser.offlinepages.OfflinePageUtils;
39 import org.chromium.chrome.browser.partnerbookmarks.PartnerBookmarksShim; 38 import org.chromium.chrome.browser.partnerbookmarks.PartnerBookmarksShim;
40 import org.chromium.chrome.browser.partnercustomizations.HomepageManager; 39 import org.chromium.chrome.browser.partnercustomizations.HomepageManager;
41 import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomiza tions; 40 import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomiza tions;
42 import org.chromium.chrome.browser.physicalweb.PhysicalWeb; 41 import org.chromium.chrome.browser.physicalweb.PhysicalWeb;
43 import org.chromium.chrome.browser.precache.PrecacheLauncher; 42 import org.chromium.chrome.browser.precache.PrecacheLauncher;
44 import org.chromium.chrome.browser.preferences.ChromePreferenceManager; 43 import org.chromium.chrome.browser.preferences.ChromePreferenceManager;
45 import org.chromium.chrome.browser.preferences.privacy.PrivacyPreferencesManager ;
46 import org.chromium.chrome.browser.share.ShareHelper; 44 import org.chromium.chrome.browser.share.ShareHelper;
47 import org.chromium.chrome.browser.webapps.ChromeWebApkHost; 45 import org.chromium.chrome.browser.webapps.ChromeWebApkHost;
48 import org.chromium.chrome.browser.webapps.WebApkVersionManager; 46 import org.chromium.chrome.browser.webapps.WebApkVersionManager;
49 import org.chromium.chrome.browser.webapps.WebappRegistry; 47 import org.chromium.chrome.browser.webapps.WebappRegistry;
50 import org.chromium.components.minidump_uploader.CrashFileManager; 48 import org.chromium.components.minidump_uploader.CrashFileManager;
51 import org.chromium.content.browser.ChildProcessLauncher; 49 import org.chromium.content.browser.ChildProcessLauncher;
52 50
53 import java.io.File; 51 import java.io.File;
54 import java.util.ArrayList; 52 import java.util.ArrayList;
55 import java.util.Arrays; 53 import java.util.Arrays;
(...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after
309 SystemClock.uptimeMillis() - mAsyncTaskStartTime, TimeUn it.MILLISECONDS); 307 SystemClock.uptimeMillis() - mAsyncTaskStartTime, TimeUn it.MILLISECONDS);
310 } 308 }
311 309
312 /** 310 /**
313 * Initializes the crash reporting system. More specifically, enable s the crash 311 * Initializes the crash reporting system. More specifically, enable s the crash
314 * reporting system if it is user-permitted, and initiates uploading of any pending 312 * reporting system if it is user-permitted, and initiates uploading of any pending
315 * crash reports. Also updates some UMA metrics and performs cleanup in the local crash 313 * crash reports. Also updates some UMA metrics and performs cleanup in the local crash
316 * minidump storage directory. 314 * minidump storage directory.
317 */ 315 */
318 private void initCrashReporting() { 316 private void initCrashReporting() {
319 // Perform cleanup prior to checking whether crash reporting is enabled, so that
320 // users who disable crash reporting are still able to eventuall y recover disk space
321 // dedicated to storing pending crash reports.
322 CrashFileManager crashFileManager = new CrashFileManager(mAppCon text.getCacheDir());
323 crashFileManager.cleanOutAllNonFreshMinidumpFiles();
324
325 // Likewise, there might be pending metrics from previous runs w hen crash reporting
326 // was enabled.
327 MinidumpUploadService.storeBreakpadUploadStatsInUma(
328 ChromePreferenceManager.getInstance());
329
330 // Now check whether crash reporting is enabled. If it is, broad cast the appropriate
331 // permission.
332 boolean crashReportingDisabled = CommandLine.getInstance().hasSw itch(
333 ChromeSwitches.DISABLE_CRASH_DUMP_UPLOAD);
334 if (crashReportingDisabled) return;
335 PrivacyPreferencesManager.getInstance().enablePotentialCrashUplo ading();
336
337 RecordHistogram.recordLongTimesHistogram("UMA.Debug.EnableCrashU pload.Uptime3", 317 RecordHistogram.recordLongTimesHistogram("UMA.Debug.EnableCrashU pload.Uptime3",
338 mAsyncTaskStartTime - UmaUtils.getForegroundStartTime(), 318 mAsyncTaskStartTime - UmaUtils.getForegroundStartTime(),
339 TimeUnit.MILLISECONDS); 319 TimeUnit.MILLISECONDS);
340 320
321 // Crash reports can be uploaded as part of a background service even while the main
322 // Chrome activity is not running, and hence regular metrics rep orting is not
323 // possible. Instead, metrics are temporarily written to prefs; export those prefs
324 // to UMA metrics here.
325 MinidumpUploadService.storeBreakpadUploadStatsInUma(
326 ChromePreferenceManager.getInstance());
327
328 // Likewise, this is a good time to process and clean up any pen ding or stale crash
329 // reports left behind by previous runs.
330 CrashFileManager crashFileManager = new CrashFileManager(mAppCon text.getCacheDir());
331 crashFileManager.cleanOutAllNonFreshMinidumpFiles();
332
341 // Finally, uploading any pending crash reports. 333 // Finally, uploading any pending crash reports.
342 File[] minidumps = crashFileManager.getAllMinidumpFiles( 334 File[] minidumps = crashFileManager.getAllMinidumpFiles(
343 MinidumpUploadService.MAX_TRIES_ALLOWED); 335 MinidumpUploadService.MAX_TRIES_ALLOWED);
344 int numMinidumpsSansLogcat = 0; 336 int numMinidumpsSansLogcat = 0;
345 for (File minidump : minidumps) { 337 for (File minidump : minidumps) {
346 if (CrashFileManager.isMinidumpMIMEFirstTry(minidump.getName ())) { 338 if (CrashFileManager.isMinidumpMIMEFirstTry(minidump.getName ())) {
347 ++numMinidumpsSansLogcat; 339 ++numMinidumpsSansLogcat;
348 } 340 }
349 } 341 }
350 // TODO(isherman): These two histograms are intended to be tempo rary, and can 342 // TODO(isherman): These two histograms are intended to be tempo rary, and can
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
462 } 454 }
463 455
464 /** 456 /**
465 * @return Whether deferred startup has been completed. 457 * @return Whether deferred startup has been completed.
466 */ 458 */
467 @VisibleForTesting 459 @VisibleForTesting
468 public boolean isDeferredStartupCompleteForApp() { 460 public boolean isDeferredStartupCompleteForApp() {
469 return mDeferredStartupCompletedForApp; 461 return mDeferredStartupCompletedForApp;
470 } 462 }
471 } 463 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698