| Index: chrome/browser/ui/android/infobars/infobar_android.cc
|
| diff --git a/chrome/browser/ui/android/infobars/infobar_android.cc b/chrome/browser/ui/android/infobars/infobar_android.cc
|
| index 137eb7469bc87493e0afabe8db2469e7024d41ca..27de34566c1917239084cc49e4c9e297550bd3ab 100644
|
| --- a/chrome/browser/ui/android/infobars/infobar_android.cc
|
| +++ b/chrome/browser/ui/android/infobars/infobar_android.cc
|
| @@ -21,20 +21,31 @@ InfoBarAndroid::InfoBarAndroid(scoped_ptr<infobars::InfoBarDelegate> delegate)
|
| }
|
|
|
| InfoBarAndroid::~InfoBarAndroid() {
|
| + if (!java_info_bar_.is_null()) {
|
| + JNIEnv* env = base::android::AttachCurrentThread();
|
| + Java_InfoBar_onNativeDestroyed(env, java_info_bar_.obj());
|
| + }
|
| }
|
|
|
| void InfoBarAndroid::ReassignJavaInfoBar(InfoBarAndroid* replacement) {
|
| DCHECK(replacement);
|
| if (!java_info_bar_.is_null()) {
|
| - replacement->set_java_infobar(java_info_bar_);
|
| + replacement->SetJavaInfoBar(java_info_bar_);
|
| java_info_bar_.Reset();
|
| }
|
| }
|
|
|
| -void InfoBarAndroid::set_java_infobar(
|
| +void InfoBarAndroid::SetJavaInfoBar(
|
| const base::android::JavaRef<jobject>& java_info_bar) {
|
| DCHECK(java_info_bar_.is_null());
|
| java_info_bar_.Reset(java_info_bar);
|
| + JNIEnv* env = base::android::AttachCurrentThread();
|
| + Java_InfoBar_setNativeInfoBar(env, java_info_bar.obj(),
|
| + reinterpret_cast<intptr_t>(this));
|
| +}
|
| +
|
| +jobject InfoBarAndroid::GetJavaInfoBar() {
|
| + return java_info_bar_.obj();
|
| }
|
|
|
| bool InfoBarAndroid::HasSetJavaInfoBar() const {
|
|
|