Skip to content
This repository was archived by the owner on Jul 22, 2024. It is now read-only.

Commit 79098ed

Browse files
authored
Add application notes to crash report (#3106)
1 parent 34f07c6 commit 79098ed

4 files changed

Lines changed: 29 additions & 0 deletions

File tree

app/src/common/shared/org/mozilla/vrbrowser/VRBrowserActivity.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
import org.mozilla.vrbrowser.browser.Accounts;
5050
import org.mozilla.vrbrowser.browser.PermissionDelegate;
5151
import org.mozilla.vrbrowser.browser.SettingsStore;
52+
import org.mozilla.vrbrowser.browser.engine.EngineProvider;
5253
import org.mozilla.vrbrowser.browser.engine.Session;
5354
import org.mozilla.vrbrowser.browser.engine.SessionStore;
5455
import org.mozilla.vrbrowser.crashreporting.CrashReporterService;
@@ -252,6 +253,8 @@ protected void onCreate(Bundle savedInstanceState) {
252253
SessionStore.get().initializeStores(this);
253254
SessionStore.get().setLocales(LocaleUtils.getPreferredLanguageTags(this));
254255

256+
EngineProvider.INSTANCE.getOrCreateRuntime(this).appendAppNotesToCrashReport("Firefox Reality " + BuildConfig.VERSION_NAME + "-" + BuildConfig.VERSION_CODE + "-" + BuildConfig.FLAVOR + "-" + BuildConfig.BUILD_TYPE + " (" + BuildConfig.GIT_HASH + ")");
257+
255258
// Create broadcast receiver for getting crash messages from crash process
256259
IntentFilter intentFilter = new IntentFilter();
257260
intentFilter.addAction(CrashReporterService.CRASH_ACTION);
@@ -1209,6 +1212,12 @@ private void disableLayers() {
12091212
});
12101213
}
12111214

1215+
@Keep
1216+
@SuppressWarnings("unused")
1217+
private void appendAppNotesToCrashReport(String aNotes) {
1218+
runOnUiThread(() -> EngineProvider.INSTANCE.getOrCreateRuntime(VRBrowserActivity.this).appendAppNotesToCrashReport(aNotes));
1219+
}
1220+
12121221
private SurfaceTexture createSurfaceTexture() {
12131222
int[] ids = new int[1];
12141223
GLES20.glGenTextures(1, ids, 0);

app/src/main/cpp/VRBrowser.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,8 @@ const char* kOnAppLink = "onAppLink";
5858
const char* kOnAppLinkSignature = "(Ljava/lang/String;)V";
5959
const char* kDisableLayers = "disableLayers";
6060
const char* kDisableLayersSignature = "()V";
61+
const char* kAppendAppNotesToCrashReport = "appendAppNotesToCrashReport";
62+
const char* kAppendAppNotesToCrashReportSignature = "(Ljava/lang/String;)V";
6163

6264
JNIEnv* sEnv = nullptr;
6365
jclass sBrowserClass = nullptr;
@@ -86,6 +88,7 @@ jmethodID sHaltActivity = nullptr;
8688
jmethodID sHandlePoorPerformance = nullptr;
8789
jmethodID sOnAppLink = nullptr;
8890
jmethodID sDisableLayers = nullptr;
91+
jmethodID sAppendAppNotesToCrashReport = nullptr;
8992
}
9093

9194
namespace crow {
@@ -129,6 +132,7 @@ VRBrowser::InitializeJava(JNIEnv* aEnv, jobject aActivity) {
129132
sHandlePoorPerformance = FindJNIMethodID(sEnv, sBrowserClass, kHandlePoorPerformance, kHandlePoorPerformanceSignature);
130133
sOnAppLink = FindJNIMethodID(sEnv, sBrowserClass, kOnAppLink, kOnAppLinkSignature);
131134
sDisableLayers = FindJNIMethodID(sEnv, sBrowserClass, kDisableLayers, kDisableLayersSignature);
135+
sAppendAppNotesToCrashReport = FindJNIMethodID(sEnv, sBrowserClass, kAppendAppNotesToCrashReport, kAppendAppNotesToCrashReportSignature);
132136
}
133137

134138
void
@@ -167,6 +171,7 @@ VRBrowser::ShutdownJava() {
167171
sOnAppLink = nullptr;
168172
sDisableLayers = nullptr;
169173
sEnv = nullptr;
174+
kAppendAppNotesToCrashReport = nullptr;
170175
}
171176

172177
void
@@ -376,4 +381,13 @@ VRBrowser::DisableLayers() {
376381
CheckJNIException(sEnv, __FUNCTION__);
377382
}
378383

384+
void
385+
VRBrowser::AppendAppNotesToCrashLog(const std::string& aNotes) {
386+
if (!ValidateMethodID(sEnv, sActivity, sAppendAppNotesToCrashReport, __FUNCTION__)) { return; }
387+
jstring notes = sEnv->NewStringUTF(aNotes.c_str());
388+
sEnv->CallVoidMethod(sActivity, sAppendAppNotesToCrashReport, notes);
389+
sEnv->DeleteLocalRef(notes);
390+
CheckJNIException(sEnv, __FUNCTION__);
391+
}
392+
379393
} // namespace crow

app/src/main/cpp/VRBrowser.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ void HaltActivity(const jint aReason);
4242
void HandlePoorPerformance();
4343
void OnAppLink(const std::string& aJSON);
4444
void DisableLayers();
45+
void AppendAppNotesToCrashLog(const std::string& aNotes);
4546
} // namespace VRBrowser;
4647

4748
} // namespace crow

app/src/oculusvr/cpp/DeviceDelegateOculusVR.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,11 @@ struct DeviceDelegateOculusVR::State {
148148
}
149149
initialized = true;
150150

151+
std::string version = vrapi_GetVersionString();
152+
std::string notes = "Oculus Driver Version: ";
153+
notes += version;
154+
VRBrowser::AppendAppNotesToCrashLog(notes);
155+
151156
layersEnabled = VRBrowser::AreLayersEnabled();
152157
SetRenderSize(device::RenderMode::StandAlone);
153158

0 commit comments

Comments
 (0)