Commit e7422432 authored by Yaron Friedman's avatar Yaron Friedman Committed by Commit Bot

Fix crash if VR opened with too many tabs.

If you have too many open, we'd crash from exhausing all JNI references.
Shouldn't be an issue in practice but saw it from 726426
BUG=726426

Change-Id: I30ac884275154068a0232b62dae7b22e00d9e5e3
Reviewed-on: https://chromium-review.googlesource.com/893532Reviewed-by: default avatarMichael Thiessen <mthiesse@chromium.org>
Commit-Queue: Yaron Friedman <yfriedman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#533010}
parent 5d8740ec
...@@ -71,6 +71,7 @@ ...@@ -71,6 +71,7 @@
#include "url/gurl.h" #include "url/gurl.h"
using base::android::JavaParamRef; using base::android::JavaParamRef;
using base::android::ScopedJavaLocalRef;
namespace vr_shell { namespace vr_shell {
...@@ -457,9 +458,8 @@ void VrShell::OnTabListCreated(JNIEnv* env, ...@@ -457,9 +458,8 @@ void VrShell::OnTabListCreated(JNIEnv* env,
void VrShell::ProcessTabArray(JNIEnv* env, jobjectArray tabs, bool incognito) { void VrShell::ProcessTabArray(JNIEnv* env, jobjectArray tabs, bool incognito) {
size_t len = env->GetArrayLength(tabs); size_t len = env->GetArrayLength(tabs);
for (size_t i = 0; i < len; ++i) { for (size_t i = 0; i < len; ++i) {
jobject jtab = env->GetObjectArrayElement(tabs, i); ScopedJavaLocalRef<jobject> j_tab(env, env->GetObjectArrayElement(tabs, i));
TabAndroid* tab = TabAndroid* tab = TabAndroid::GetNativeTab(env, j_tab);
TabAndroid::GetNativeTab(env, JavaParamRef<jobject>(env, jtab));
ui_->AppendToTabList(incognito, tab->GetAndroidId(), tab->GetTitle()); ui_->AppendToTabList(incognito, tab->GetAndroidId(), tab->GetTitle());
} }
} }
......
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