Commit 4149f24d authored by gsennton's avatar gsennton Committed by Commit bot

Componentize CrashFileManager and MinidumpUploadCallable.

And their respective test classes.

BUG=652719

Review-Url: https://codereview.chromium.org/2464943002
Cr-Commit-Position: refs/heads/master@{#430167}
parent 495bfff1
......@@ -387,6 +387,7 @@ android_library("chrome_test_java") {
"//components/invalidation/impl:javatests",
"//components/location/android:location_java",
"//components/minidump_uploader:minidump_uploader_java",
"//components/minidump_uploader:minidump_uploader_javatests",
"//components/navigation_interception/android:navigation_interception_java",
"//components/payments:payment_request_java",
"//components/policy/android:policy_java",
......
......@@ -29,7 +29,6 @@ import org.chromium.base.TraceEvent;
import org.chromium.base.VisibleForTesting;
import org.chromium.base.metrics.RecordHistogram;
import org.chromium.chrome.browser.bookmarkswidget.BookmarkWidgetProvider;
import org.chromium.chrome.browser.crash.CrashFileManager;
import org.chromium.chrome.browser.crash.MinidumpUploadService;
import org.chromium.chrome.browser.init.ProcessInitializationHandler;
import org.chromium.chrome.browser.locale.LocaleManager;
......@@ -49,6 +48,7 @@ import org.chromium.chrome.browser.share.ShareHelper;
import org.chromium.chrome.browser.webapps.ChromeWebApkHost;
import org.chromium.chrome.browser.webapps.WebApkVersionManager;
import org.chromium.chrome.browser.webapps.WebappRegistry;
import org.chromium.components.minidump_uploader.CrashFileManager;
import org.chromium.content.browser.ChildProcessLauncher;
import java.util.ArrayList;
......
......@@ -10,6 +10,7 @@ import android.util.Patterns;
import org.chromium.base.Log;
import org.chromium.base.VisibleForTesting;
import org.chromium.components.minidump_uploader.CrashFileManager;
import java.io.BufferedReader;
import java.io.File;
......
......@@ -13,6 +13,7 @@ import org.chromium.base.ContextUtils;
import org.chromium.base.Log;
import org.chromium.base.PathUtils;
import org.chromium.base.metrics.RecordUserAction;
import org.chromium.components.minidump_uploader.CrashFileManager;
import java.io.File;
......
......@@ -8,6 +8,7 @@ import android.content.Context;
import android.content.Intent;
import org.chromium.base.Log;
import org.chromium.components.minidump_uploader.CrashFileManager;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
......
......@@ -9,6 +9,7 @@ import android.content.Context;
import android.content.Intent;
import org.chromium.base.Log;
import org.chromium.components.minidump_uploader.CrashFileManager;
import java.io.File;
import java.util.concurrent.Callable;
......
......@@ -16,6 +16,8 @@ import org.chromium.base.annotations.CalledByNative;
import org.chromium.base.metrics.RecordHistogram;
import org.chromium.chrome.browser.preferences.ChromePreferenceManager;
import org.chromium.chrome.browser.preferences.privacy.PrivacyPreferencesManager;
import org.chromium.components.minidump_uploader.CrashFileManager;
import org.chromium.components.minidump_uploader.MinidumpUploadCallable;
import java.io.BufferedReader;
import java.io.File;
......
......@@ -252,13 +252,11 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/contextualsearch/TapSuppressionHeuristics.java",
"java/src/org/chromium/chrome/browser/cookies/CanonicalCookie.java",
"java/src/org/chromium/chrome/browser/cookies/CookiesFetcher.java",
"java/src/org/chromium/chrome/browser/crash/CrashFileManager.java",
"java/src/org/chromium/chrome/browser/crash/LogcatExtractionCallable.java",
"java/src/org/chromium/chrome/browser/crash/LogcatExtractionService.java",
"java/src/org/chromium/chrome/browser/crash/MinidumpDirectoryObserver.java",
"java/src/org/chromium/chrome/browser/crash/MinidumpPreparationCallable.java",
"java/src/org/chromium/chrome/browser/crash/MinidumpPreparationService.java",
"java/src/org/chromium/chrome/browser/crash/MinidumpUploadCallable.java",
"java/src/org/chromium/chrome/browser/crash/MinidumpUploadRetry.java",
"java/src/org/chromium/chrome/browser/crash/MinidumpUploadService.java",
"java/src/org/chromium/chrome/browser/customtabs/ClientManager.java",
......@@ -1187,10 +1185,7 @@ chrome_test_java_sources = [
"javatests/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchRequestTest.java",
"javatests/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchTapEventTest.java",
"javatests/src/org/chromium/chrome/browser/contextualsearch/MockContextualSearchPolicy.java",
"javatests/src/org/chromium/chrome/browser/crash/CrashFileManagerTest.java",
"javatests/src/org/chromium/chrome/browser/crash/CrashTestCase.java",
"javatests/src/org/chromium/chrome/browser/crash/LogcatExtractionCallableTest.java",
"javatests/src/org/chromium/chrome/browser/crash/MinidumpUploadCallableTest.java",
"javatests/src/org/chromium/chrome/browser/crash/MinidumpUploadServiceTest.java",
"javatests/src/org/chromium/chrome/browser/customtabs/ClientManagerTest.java",
"javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTest.java",
......
......@@ -10,6 +10,8 @@ import android.content.Intent;
import android.test.suitebuilder.annotation.MediumTest;
import org.chromium.base.test.util.AdvancedMockContext;
import org.chromium.components.minidump_uploader.CrashFileManager;
import org.chromium.components.minidump_uploader.CrashTestCase;
import java.io.BufferedReader;
import java.io.File;
......
......@@ -19,6 +19,9 @@ import android.test.suitebuilder.annotation.SmallTest;
import org.chromium.base.annotations.SuppressFBWarnings;
import org.chromium.base.test.util.AdvancedMockContext;
import org.chromium.base.test.util.Feature;
import org.chromium.components.minidump_uploader.CrashFileManager;
import org.chromium.components.minidump_uploader.CrashTestCase;
import org.chromium.components.minidump_uploader.MinidumpUploadCallable;
import org.chromium.content.browser.test.util.Criteria;
import org.chromium.content.browser.test.util.CriteriaHelper;
import org.chromium.net.NetworkChangeNotifier;
......
......@@ -11,8 +11,24 @@ android_library("minidump_uploader_java") {
]
java_files = [
"android/java/src/org/chromium/components/minidump_uploader/CrashFileManager.java",
"android/java/src/org/chromium/components/minidump_uploader/MinidumpUploadCallable.java",
"android/java/src/org/chromium/components/minidump_uploader/util/CrashReportingPermissionManager.java",
"android/java/src/org/chromium/components/minidump_uploader/util/HttpURLConnectionFactory.java",
"android/java/src/org/chromium/components/minidump_uploader/util/HttpURLConnectionFactoryImpl.java",
]
}
android_library("minidump_uploader_javatests") {
testonly = true
deps = [
":minidump_uploader_java",
"//base:base_java",
"//base:base_java_test_support",
]
java_files = [
"android/javatests/src/org/chromium/components/minidump_uploader/CrashFileManagerTest.java",
"android/javatests/src/org/chromium/components/minidump_uploader/CrashTestCase.java",
"android/javatests/src/org/chromium/components/minidump_uploader/MinidumpUploadCallableTest.java",
]
}
// Copyright 2015 The Chromium Authors. All rights reserved.
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.crash;
package org.chromium.components.minidump_uploader;
import android.support.annotation.Nullable;
......@@ -32,12 +32,14 @@ import java.util.regex.Pattern;
public class CrashFileManager {
private static final String TAG = "CrashFileManager";
@VisibleForTesting
static final String CRASH_DUMP_DIR = "Crash Reports";
/**
* The name of the crash directory.
*/
public static final String CRASH_DUMP_DIR = "Crash Reports";
// This should mirror the C++ CrashUploadList::kReporterLogFilename variable.
@VisibleForTesting
static final String CRASH_DUMP_LOGFILE = "uploads.log";
public static final String CRASH_DUMP_LOGFILE = "uploads.log";
private static final Pattern MINIDUMP_FIRST_TRY_PATTERN =
Pattern.compile("\\.dmp([0-9]*)$\\z");
......@@ -94,8 +96,10 @@ public class CrashFileManager {
}
};
@VisibleForTesting
static boolean deleteFile(File fileToDelete) {
/**
* Delete the file {@param fileToDelete}.
*/
public static boolean deleteFile(File fileToDelete) {
boolean isSuccess = fileToDelete.delete();
if (!isSuccess) {
Log.w(TAG, "Unable to delete " + fileToDelete.getAbsolutePath());
......@@ -332,7 +336,7 @@ public class CrashFileManager {
}
@VisibleForTesting
File getCrashDirectory() {
public File getCrashDirectory() {
return new File(mCacheDir, CRASH_DUMP_DIR);
}
......@@ -349,7 +353,10 @@ public class CrashFileManager {
return f;
}
File getCrashFile(String filename) {
/**
* @return the crash file named {@param filename}.
*/
public File getCrashFile(String filename) {
return new File(getCrashDirectory(), filename);
}
......@@ -361,7 +368,7 @@ public class CrashFileManager {
* @param localId The local ID of the crash report.
* @return The matching File, or null if no matching file is found.
*/
File getCrashFileWithLocalId(String localId) {
public File getCrashFileWithLocalId(String localId) {
for (File f : listCrashFiles(null)) {
// Only match non-uploaded or previously skipped files. In particular, do not match
// successfully uploaded files; nor files which are not minidump files, such as logcat
......@@ -380,7 +387,10 @@ public class CrashFileManager {
return null;
}
File getCrashUploadLogFile() {
/**
* @return the file used for logging crash upload events.
*/
public File getCrashUploadLogFile() {
return new File(getCrashDirectory(), CRASH_DUMP_LOGFILE);
}
......
// Copyright 2015 The Chromium Authors. All rights reserved.
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.crash;
package org.chromium.components.minidump_uploader;
import android.content.SharedPreferences;
import android.support.annotation.IntDef;
......
// Copyright 2015 The Chromium Authors. All rights reserved.
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.crash;
package org.chromium.components.minidump_uploader;
import android.test.MoreAsserts;
import android.test.suitebuilder.annotation.MediumTest;
......
// Copyright 2015 The Chromium Authors. All rights reserved.
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.crash;
package org.chromium.components.minidump_uploader;
import android.test.InstrumentationTestCase;
import android.util.Log;
import org.chromium.base.Log;
import java.io.File;
import java.io.FileWriter;
......
// Copyright 2015 The Chromium Authors. All rights reserved.
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.crash;
package org.chromium.components.minidump_uploader;
import android.test.suitebuilder.annotation.SmallTest;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment