Commit 0d185747 authored by Tibor Goldschwendt's avatar Tibor Goldschwendt Committed by Commit Bot

[crash report] Move CrashKeys to components for use in other components

Move CrashKeys class to //components/crash so that other components can
make use of it. This CL is a precursor for adding the installed feature
modules to crash reports.

Bug: 873719
Change-Id: I68d51a50cc9f239a94171ab7afec19b78224c53e
Reviewed-on: https://chromium-review.googlesource.com/c/1349729
Commit-Queue: Tibor Goldschwendt <tiborg@chromium.org>
Reviewed-by: default avatarYaron Friedman <yfriedman@chromium.org>
Reviewed-by: default avatarCait Phillips <caitkp@chromium.org>
Cr-Commit-Position: refs/heads/master@{#611494}
parent 33845c06
......@@ -423,7 +423,6 @@ action("chrome_android_java_google_api_keys_srcjar") {
java_cpp_enum("chrome_android_java_enums_srcjar") {
sources = [
"//chrome/browser/android/crash/crash_keys_android.h",
"//chrome/browser/android/customtabs/detached_resource_request.h",
"//chrome/browser/android/digital_asset_links/digital_asset_links_handler.h",
"//chrome/browser/android/explore_sites/explore_sites_feature.h",
......@@ -646,6 +645,7 @@ android_library("chrome_test_java") {
"//components/background_task_scheduler:background_task_scheduler_javatests",
"//components/background_task_scheduler:background_task_scheduler_task_ids_java",
"//components/bookmarks/common/android:bookmarks_java",
"//components/crash/android:java",
"//components/crash/android:javatests",
"//components/dom_distiller/core/android:dom_distiller_core_java",
"//components/download/internal/background_service:internal_java",
......@@ -1099,6 +1099,7 @@ chrome_shared_library("libchromefortest") {
"//base/test:test_support",
"//chrome:chrome_android_core",
"//chrome/browser/android/metrics:ukm_utils_for_test",
"//components/crash/android:crash_android",
"//components/heap_profiling:test_support",
"//components/minidump_uploader",
"//components/sync",
......
......@@ -7,6 +7,8 @@ package org.chromium.chrome.browser.crash;
import org.chromium.base.ApplicationState;
import org.chromium.base.ApplicationStatus;
import org.chromium.base.ThreadUtils;
import org.chromium.components.crash.CrashKeyIndex;
import org.chromium.components.crash.CrashKeys;
/**
* This class updates crash keys when the application state changes.
......
......@@ -6,6 +6,7 @@ package org.chromium.chrome.browser.crash;
import org.chromium.base.annotations.CalledByNative;
import org.chromium.base.annotations.MainDex;
import org.chromium.components.crash.CrashKeys;
/**
* This UncaughtExceptionHandler will upload the stacktrace when there is an uncaught exception.
......
......@@ -20,6 +20,7 @@ import org.chromium.base.StrictModeContext;
import org.chromium.base.VisibleForTesting;
import org.chromium.base.annotations.MainDex;
import org.chromium.chrome.browser.ChromeVersionInfo;
import org.chromium.components.crash.CrashKeys;
import java.io.File;
import java.io.FileNotFoundException;
......
......@@ -22,9 +22,9 @@ import org.chromium.base.VisibleForTesting;
import org.chromium.base.task.AsyncTask;
import org.chromium.chrome.browser.ChromeApplication;
import org.chromium.chrome.browser.ChromeFeatureList;
import org.chromium.chrome.browser.crash.CrashKeyIndex;
import org.chromium.chrome.browser.crash.CrashKeys;
import org.chromium.chrome.browser.customtabs.dynamicmodule.ModuleMetrics.DestructionReason;
import org.chromium.components.crash.CrashKeyIndex;
import org.chromium.components.crash.CrashKeys;
import java.util.ArrayList;
import java.util.List;
......
......@@ -404,7 +404,6 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/crash/ApplicationStatusTracker.java",
"java/src/org/chromium/chrome/browser/crash/ChromeMinidumpUploadJobService.java",
"java/src/org/chromium/chrome/browser/crash/ChromeMinidumpUploaderDelegate.java",
"java/src/org/chromium/chrome/browser/crash/CrashKeys.java",
"java/src/org/chromium/chrome/browser/crash/LogcatExtractionRunnable.java",
"java/src/org/chromium/chrome/browser/crash/MinidumpLogcatPrepender.java",
"java/src/org/chromium/chrome/browser/crash/MinidumpUploadRetry.java",
......
......@@ -3,6 +3,7 @@ include_rules = [
"+components/autofill/android/java/src/org/chromium/components/autofill",
"+components/background_task_scheduler/android/java",
"+components/bookmarks/common/android/java/src/org/chromium/components/bookmarks",
"+components/crash/android",
"+components/embedder_support/android",
"+components/feature_engagement/public/android/java/src/org/chromium/components/feature_engagement",
"+components/dom_distiller/core/android/java/src/org/chromium/components/dom_distiller/core",
......
......@@ -13,6 +13,8 @@ import org.junit.runner.RunWith;
import org.chromium.base.ThreadUtils;
import org.chromium.base.test.BaseJUnit4ClassRunner;
import org.chromium.components.crash.CrashKeyIndex;
import org.chromium.components.crash.CrashKeys;
import org.chromium.components.minidump_uploader.CrashTestRule;
import java.io.BufferedReader;
......
......@@ -2114,8 +2114,6 @@ jumbo_split_static_library("browser") {
"android/contextualsearch/unhandled_tap_web_contents_observer.cc",
"android/contextualsearch/unhandled_tap_web_contents_observer.h",
"android/cookies/cookies_fetcher_util.cc",
"android/crash/crash_keys_android.cc",
"android/crash/crash_keys_android.h",
"android/crash/pure_java_exception_handler.cc",
"android/crash/pure_java_exception_handler.h",
"android/customtabs/detached_resource_request.cc",
......@@ -2557,6 +2555,7 @@ jumbo_split_static_library("browser") {
"//chrome/services/media_gallery_util/public/cpp",
"//components/autofill_assistant/browser",
"//components/cdm/browser",
"//components/crash/android:crash_android",
"//components/embedder_support/android:web_contents_delegate",
"//components/feed:buildflags",
"//components/feed:feature_list",
......@@ -4687,7 +4686,6 @@ if (is_android) {
"../android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchTabHelper.java",
"../android/java/src/org/chromium/chrome/browser/contextualsearch/CtrSuppression.java",
"../android/java/src/org/chromium/chrome/browser/cookies/CookiesFetcher.java",
"../android/java/src/org/chromium/chrome/browser/crash/CrashKeys.java",
"../android/java/src/org/chromium/chrome/browser/crash/MinidumpUploadService.java",
"../android/java/src/org/chromium/chrome/browser/crash/PureJavaExceptionHandler.java",
"../android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java",
......
......@@ -2356,7 +2356,6 @@ test("unit_tests") {
# TODO(newt): move this to test_support_unit?
"../browser/android/chrome_backup_agent_unittest.cc",
"../browser/android/crash/crash_keys_android_unittest.cc",
"../browser/android/customtabs/detached_resource_request_unittest.cc",
"../browser/android/favicon_helper_unittest.cc",
"../browser/android/mock_location_settings.cc",
......
......@@ -279,6 +279,8 @@ test("components_unittests") {
"//base:base_java_unittest_support",
"//components/autofill_assistant/browser:unit_tests",
"//components/cdm/browser:unit_tests",
"//components/crash/android:java",
"//components/crash/android:unit_tests",
"//components/gcm_driver/instance_id:test_support",
"//components/gcm_driver/instance_id/android:instance_id_driver_java",
"//components/gcm_driver/instance_id/android:instance_id_driver_test_support_java",
......
......@@ -4,22 +4,43 @@
import("//build/config/android/rules.gni")
_jni_sources =
[ "java/src/org/chromium/components/crash/browser/ChildProcessCrashObserver.java",
"java/src/org/chromium/components/crash/browser/CrashDumpManager.java" ]
_jni_sources = [
"java/src/org/chromium/components/crash/browser/ChildProcessCrashObserver.java",
"java/src/org/chromium/components/crash/browser/CrashDumpManager.java",
"java/src/org/chromium/components/crash/CrashKeys.java",
]
generate_jni("jni_headers") {
sources = _jni_sources
jni_package = "crash"
}
java_cpp_enum("java_enums_srcjar") {
sources = [
"crash_keys_android.h",
]
}
android_library("java") {
deps = [
"//base:base_java",
]
srcjar_deps = [ ":java_enums_srcjar" ]
java_files = _jni_sources
}
source_set("crash_android") {
sources = [
"crash_keys_android.cc",
"crash_keys_android.h",
]
deps = [
":jni_headers",
"//base",
"//components/crash/core/common:crash_key",
]
}
android_library("javatests") {
testonly = true
deps = [
......@@ -31,3 +52,15 @@ android_library("javatests") {
]
java_files = [ "javatests/src/org/chromium/components/crash/browser/CrashDumpManagerTest.java" ]
}
source_set("unit_tests") {
testonly = true
sources = [
"crash_keys_android_unittest.cc",
]
deps = [
":crash_android",
"//components/crash/core/common:crash_key",
"//testing/gtest",
]
}
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/android/crash/crash_keys_android.h"
#include "components/crash/android/crash_keys_android.h"
#include "base/android/jni_android.h"
#include "base/android/jni_string.h"
......
......@@ -2,14 +2,14 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_ANDROID_CRASH_CRASH_KEYS_ANDROID_H_
#define CHROME_BROWSER_ANDROID_CRASH_CRASH_KEYS_ANDROID_H_
#ifndef COMPONENTS_CRASH_ANDROID_CRASH_KEYS_ANDROID_H_
#define COMPONENTS_CRASH_ANDROID_CRASH_KEYS_ANDROID_H_
#include <string>
// See CrashKeys.java for how to add a new crash key.
// A Java counterpart will be generated for this enum.
// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.chrome.browser.crash
// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.components.crash
enum class CrashKeyIndex {
LOADED_DYNAMIC_MODULE = 0,
ACTIVE_DYNAMIC_MODULE,
......@@ -23,4 +23,4 @@ void SetAndroidCrashKey(CrashKeyIndex index, const std::string& value);
void ClearAndroidCrashKey(CrashKeyIndex index);
void FlushAndroidCrashKeys();
#endif // CHROME_BROWSER_ANDROID_CRASH_CRASH_KEYS_ANDROID_H_
#endif // COMPONENTS_CRASH_ANDROID_CRASH_KEYS_ANDROID_H_
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/android/crash/crash_keys_android.h"
#include "components/crash/android/crash_keys_android.h"
#include "components/crash/core/common/crash_key.h"
#include "testing/gtest/include/gtest/gtest.h"
......
......@@ -2,7 +2,7 @@
// 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.crash;
import android.support.annotation.Nullable;
......@@ -19,6 +19,7 @@ import java.util.concurrent.atomic.AtomicReferenceArray;
* <li>The CrashKeyString array in {@code crash_keys_android.cc}</li>
* <li>The {@link #KEYS} array in this class.</li>
* </ol>
* The crash keys will only be included in browser process crash reports.
*/
public class CrashKeys {
private static final String[] KEYS =
......@@ -47,7 +48,7 @@ public class CrashKeys {
* @param keyIndex The index of a crash key.
* @return The key for the given index.
*/
static String getKey(@CrashKeyIndex int keyIndex) {
public static String getKey(@CrashKeyIndex int keyIndex) {
return KEYS[keyIndex];
}
......@@ -56,7 +57,7 @@ public class CrashKeys {
* the values have been flushed to the native side.
* @see #flushToNative
*/
AtomicReferenceArray<String> getValues() {
public AtomicReferenceArray<String> getValues() {
assert !mFlushed;
return mValues;
}
......@@ -75,7 +76,6 @@ public class CrashKeys {
nativeSet(keyIndex, value);
return;
}
mValues.set(keyIndex, value);
}
......@@ -84,7 +84,7 @@ public class CrashKeys {
* pure-Java exception handling is disabled in favor of native crash reporting.
*/
@CalledByNative
void flushToNative() {
public void flushToNative() {
ThreadUtils.assertOnUiThread();
assert !mFlushed;
......
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