Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / android / password_ui_view_android.cc
index ec41f51..e26c552 100644 (file)
@@ -4,8 +4,8 @@
 
 #include "chrome/browser/android/password_ui_view_android.h"
 
-#include "base/android/jni_helper.h"
 #include "base/android/jni_string.h"
+#include "base/android/jni_weak_ref.h"
 #include "chrome/browser/profiles/profile_manager.h"
 #include "components/autofill/core/common/password_form.h"
 #include "jni/PasswordUIView_jni.h"
@@ -60,19 +60,27 @@ void PasswordUIViewAndroid::UpdatePasswordLists(JNIEnv* env, jobject) {
 
 ScopedJavaLocalRef<jobject>
 PasswordUIViewAndroid::GetSavedPasswordEntry(JNIEnv* env, jobject, int index) {
-  const autofill::PasswordForm& form =
+  const autofill::PasswordForm* form =
       password_manager_presenter_.GetPassword(index);
+  if (!form) {
+    return Java_PasswordUIView_createSavedPasswordEntry(
+        env,
+        ConvertUTF8ToJavaString(env, std::string()).obj(),
+        ConvertUTF16ToJavaString(env, base::string16()).obj());
+  }
   return Java_PasswordUIView_createSavedPasswordEntry(
       env,
-      ConvertUTF8ToJavaString(env, form.origin.spec()).obj(),
-      ConvertUTF16ToJavaString(env, form.username_value).obj());
+      ConvertUTF8ToJavaString(env, form->origin.spec()).obj(),
+      ConvertUTF16ToJavaString(env, form->username_value).obj());
 }
 
 ScopedJavaLocalRef<jstring> PasswordUIViewAndroid::GetSavedPasswordException(
     JNIEnv* env, jobject, int index) {
-  const autofill::PasswordForm& form =
+  const autofill::PasswordForm* form =
       password_manager_presenter_.GetPasswordException(index);
-  return ConvertUTF8ToJavaString(env, form.origin.spec());
+  if (!form)
+    return ConvertUTF8ToJavaString(env, std::string());
+  return ConvertUTF8ToJavaString(env, form->origin.spec());
 }
 
 void PasswordUIViewAndroid::HandleRemoveSavedPasswordEntry(