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

Side by Side Diff: android_webview/native/aw_debug.cc

Issue 2717223003: Add WebView-specific whitelist for crash keys. (Closed)
Patch Set: Remove unnecessary imports/includes. 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 #include "android_webview/native/aw_debug.h" 5 #include "android_webview/native/aw_debug.h"
6 6
7 #include "android_webview/common/crash_reporter/aw_microdump_crash_reporter.h" 7 #include "android_webview/common/crash_reporter/aw_microdump_crash_reporter.h"
8 #include "base/android/jni_android.h" 8 #include "base/android/jni_android.h"
9 #include "base/android/jni_string.h" 9 #include "base/android/jni_string.h"
10 #include "base/debug/crash_logging.h"
10 #include "base/debug/dump_without_crashing.h" 11 #include "base/debug/dump_without_crashing.h"
11 #include "base/files/file.h" 12 #include "base/files/file.h"
12 #include "base/files/file_path.h" 13 #include "base/files/file_path.h"
13 #include "base/threading/thread_restrictions.h" 14 #include "base/threading/thread_restrictions.h"
15 #include "components/crash/content/app/breakpad_linux.h"
14 #include "jni/AwDebug_jni.h" 16 #include "jni/AwDebug_jni.h"
15 17
16 using base::android::ConvertJavaStringToUTF16; 18 using base::android::ConvertJavaStringToUTF16;
17 using base::android::ConvertUTF8ToJavaString; 19 using base::android::ConvertUTF8ToJavaString;
18 using base::android::JavaParamRef; 20 using base::android::JavaParamRef;
19 using base::android::ScopedJavaLocalRef; 21 using base::android::ScopedJavaLocalRef;
20 22
21 namespace android_webview { 23 namespace android_webview {
22 24
23 static jboolean DumpWithoutCrashing(JNIEnv* env, 25 static jboolean DumpWithoutCrashing(JNIEnv* env,
24 const JavaParamRef<jclass>& clazz, 26 const JavaParamRef<jclass>& clazz,
25 const JavaParamRef<jstring>& dump_path) { 27 const JavaParamRef<jstring>& dump_path) {
26 // This may be called from any thread, and we might be in a state 28 // This may be called from any thread, and we might be in a state
27 // where it is impossible to post tasks, so we have to be prepared 29 // where it is impossible to post tasks, so we have to be prepared
28 // to do IO from this thread. 30 // to do IO from this thread.
29 base::ThreadRestrictions::ScopedAllowIO allow_io; 31 base::ThreadRestrictions::ScopedAllowIO allow_io;
30 base::File target(base::FilePath(ConvertJavaStringToUTF8(env, dump_path)), 32 base::File target(base::FilePath(ConvertJavaStringToUTF8(env, dump_path)),
31 base::File::FLAG_OPEN_TRUNCATED | base::File::FLAG_READ | 33 base::File::FLAG_OPEN_TRUNCATED | base::File::FLAG_READ |
32 base::File::FLAG_WRITE); 34 base::File::FLAG_WRITE);
33 if (!target.IsValid()) 35 if (!target.IsValid())
34 return false; 36 return false;
35 // breakpad_linux::HandleCrashDump will close this fd once it is done. 37 // breakpad_linux::HandleCrashDump will close this fd once it is done.
36 return crash_reporter::DumpWithoutCrashingToFd(target.TakePlatformFile()); 38 return crash_reporter::DumpWithoutCrashingToFd(target.TakePlatformFile());
37 } 39 }
38 40
41 static void InitCrashKeysForWebViewTesting(JNIEnv* env,
42 const JavaParamRef<jclass>& clazz) {
43 breakpad::InitCrashKeysForTesting();
Tobias Sargeant 2017/03/02 16:36:48 Could you move this to aw/common/crash_reporter/cr
gsennton 2017/03/02 17:35:37 Done.
44 }
45
46 static void SetCrashKeyValue(JNIEnv* env,
47 const JavaParamRef<jclass>& clazz,
48 const JavaParamRef<jstring>& key,
49 const JavaParamRef<jstring>& value) {
50 base::debug::SetCrashKeyValue(ConvertJavaStringToUTF8(env, key),
51 ConvertJavaStringToUTF8(env, value));
52 }
53
39 bool RegisterAwDebug(JNIEnv* env) { 54 bool RegisterAwDebug(JNIEnv* env) {
40 return RegisterNativesImpl(env); 55 return RegisterNativesImpl(env);
41 } 56 }
42 57
43 } // namespace android_webview 58 } // namespace android_webview
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698