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

Side by Side Diff: chrome/browser/ui/android/infobars/auto_login_infobar_delegate_android.cc

Issue 24562006: Cleanup upstreamed Android infobar code. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 7 years, 2 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "chrome/browser/ui/android/infobars/auto_login_infobar_delegate_android .h" 5 #include "chrome/browser/ui/android/infobars/auto_login_infobar_delegate_android .h"
6 6
7 #include "base/android/jni_android.h" 7 #include "base/android/jni_android.h"
8 #include "base/android/jni_helper.h" 8 #include "base/android/jni_helper.h"
9 #include "base/android/jni_string.h" 9 #include "base/android/jni_string.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
11 #include "chrome/browser/infobars/simple_alert_infobar_delegate.h" 11 #include "chrome/browser/infobars/simple_alert_infobar_delegate.h"
12 #include "chrome/browser/ui/auto_login_infobar_delegate.h" 12 #include "chrome/browser/ui/auto_login_infobar_delegate.h"
13 #include "content/public/browser/web_contents.h" 13 #include "content/public/browser/web_contents.h"
14 #include "grit/generated_resources.h" 14 #include "grit/generated_resources.h"
15 #include "grit/theme_resources.h" 15 #include "grit/theme_resources.h"
16 #include "jni/AutoLoginDelegate_jni.h" 16 #include "jni/AutoLoginDelegate_jni.h"
17 #include "ui/base/l10n/l10n_util.h" 17 #include "ui/base/l10n/l10n_util.h"
18 18
19 using base::android::AttachCurrentThread;
20 using base::android::ConvertUTF8ToJavaString; 19 using base::android::ConvertUTF8ToJavaString;
21 using base::android::ScopedJavaGlobalRef;
22 using base::android::ScopedJavaLocalRef; 20 using base::android::ScopedJavaLocalRef;
23 21
24 AutoLoginInfoBarDelegateAndroid::AutoLoginInfoBarDelegateAndroid( 22 AutoLoginInfoBarDelegateAndroid::AutoLoginInfoBarDelegateAndroid(
25 InfoBarService* owner, 23 InfoBarService* owner,
26 const Params& params) 24 const Params& params)
27 : AutoLoginInfoBarDelegate(owner, params), params_(params) {} 25 : AutoLoginInfoBarDelegate(owner, params),
26 params_(params) {
27 }
28 28
29 AutoLoginInfoBarDelegateAndroid::~AutoLoginInfoBarDelegateAndroid() {} 29 AutoLoginInfoBarDelegateAndroid::~AutoLoginInfoBarDelegateAndroid() {
30 }
30 31
31 bool AutoLoginInfoBarDelegateAndroid::AttachAccount( 32 bool AutoLoginInfoBarDelegateAndroid::AttachAccount(
32 JavaObjectWeakGlobalRef weak_java_auto_login_delegate) { 33 JavaObjectWeakGlobalRef weak_java_auto_login_delegate) {
33 weak_java_auto_login_delegate_ = weak_java_auto_login_delegate; 34 weak_java_auto_login_delegate_ = weak_java_auto_login_delegate;
34 JNIEnv* env = AttachCurrentThread(); 35 JNIEnv* env = base::android::AttachCurrentThread();
35 ScopedJavaLocalRef<jstring> jrealm = ConvertUTF8ToJavaString(env, realm()); 36 ScopedJavaLocalRef<jstring> jrealm = ConvertUTF8ToJavaString(env, realm());
36 ScopedJavaLocalRef<jstring> jaccount = 37 ScopedJavaLocalRef<jstring> jaccount =
37 ConvertUTF8ToJavaString(env, account()); 38 ConvertUTF8ToJavaString(env, account());
38 ScopedJavaLocalRef<jstring> jargs = ConvertUTF8ToJavaString(env, args()); 39 ScopedJavaLocalRef<jstring> jargs = ConvertUTF8ToJavaString(env, args());
39 DCHECK(!jrealm.is_null() && !jaccount.is_null() && !jargs.is_null()); 40 DCHECK(!jrealm.is_null());
41 DCHECK(!jaccount.is_null());
42 DCHECK(!jargs.is_null());
40 43
41 ScopedJavaLocalRef<jobject> delegate = 44 ScopedJavaLocalRef<jobject> delegate =
42 weak_java_auto_login_delegate_.get(env); 45 weak_java_auto_login_delegate_.get(env);
43 DCHECK(delegate.obj()); 46 DCHECK(delegate.obj());
44 user_ = ConvertJavaStringToUTF8( 47 user_ = base::android::ConvertJavaStringToUTF8(
45 Java_AutoLoginDelegate_initializeAccount(env, 48 Java_AutoLoginDelegate_initializeAccount(
46 delegate.obj(), 49 env, delegate.obj(), reinterpret_cast<jint>(this), jrealm.obj(),
47 reinterpret_cast<jint>(this), 50 jaccount.obj(), jargs.obj()));
48 jrealm.obj(),
49 jaccount.obj(),
50 jargs.obj()));
51 return !user_.empty(); 51 return !user_.empty();
52 } 52 }
53 53
54 string16 AutoLoginInfoBarDelegateAndroid::GetMessageText() const { 54 string16 AutoLoginInfoBarDelegateAndroid::GetMessageText() const {
55 return l10n_util::GetStringFUTF16(IDS_AUTOLOGIN_INFOBAR_MESSAGE, 55 return l10n_util::GetStringFUTF16(IDS_AUTOLOGIN_INFOBAR_MESSAGE,
56 UTF8ToUTF16(user_)); 56 UTF8ToUTF16(user_));
57 } 57 }
58 58
59 bool AutoLoginInfoBarDelegateAndroid::Accept() { 59 bool AutoLoginInfoBarDelegateAndroid::Accept() {
60 JNIEnv* env = AttachCurrentThread(); 60 JNIEnv* env = base::android::AttachCurrentThread();
61 ScopedJavaLocalRef<jobject> delegate = 61 ScopedJavaLocalRef<jobject> delegate =
62 weak_java_auto_login_delegate_.get(env); 62 weak_java_auto_login_delegate_.get(env);
63 DCHECK(delegate.obj()); 63 DCHECK(delegate.obj());
64 64
65 Java_AutoLoginDelegate_logIn( 65 Java_AutoLoginDelegate_logIn(env, delegate.obj(),
66 env, delegate.obj(), reinterpret_cast<jint>(this)); 66 reinterpret_cast<jint>(this));
67 67
68 // Do not close the infobar on accept, it will be closed as part 68 // Do not close the infobar on accept, it will be closed as part
69 // of the log in callback. 69 // of the log in callback.
70 return false; 70 return false;
71 } 71 }
72 72
73 bool AutoLoginInfoBarDelegateAndroid::Cancel() { 73 bool AutoLoginInfoBarDelegateAndroid::Cancel() {
74 JNIEnv* env = AttachCurrentThread(); 74 JNIEnv* env = base::android::AttachCurrentThread();
75 ScopedJavaLocalRef<jobject> delegate = 75 ScopedJavaLocalRef<jobject> delegate =
76 weak_java_auto_login_delegate_.get(env); 76 weak_java_auto_login_delegate_.get(env);
77 DCHECK(delegate.obj()); 77 DCHECK(delegate.obj());
78 Java_AutoLoginDelegate_cancelLogIn( 78 Java_AutoLoginDelegate_cancelLogIn(env, delegate.obj(),
79 env, delegate.obj(), reinterpret_cast<jint>(this)); 79 reinterpret_cast<jint>(this));
80 return true; 80 return true;
81 } 81 }
82 82
83 void AutoLoginInfoBarDelegateAndroid::LoginSuccess(JNIEnv* env, 83 void AutoLoginInfoBarDelegateAndroid::LoginSuccess(JNIEnv* env,
84 jobject obj, 84 jobject obj,
85 jstring result) { 85 jstring result) {
86 if (owner()) { 86 if (owner()) {
87 content::WebContents* web_contents = owner()->web_contents(); 87 content::WebContents* web_contents = owner()->web_contents();
88 if (web_contents) { 88 if (web_contents) {
89 web_contents->Stop(); 89 web_contents->Stop();
90 web_contents->OpenURL(content::OpenURLParams( 90 web_contents->OpenURL(content::OpenURLParams(
91 GURL(base::android::ConvertJavaStringToUTF8(env, result)), 91 GURL(base::android::ConvertJavaStringToUTF8(env, result)),
92 content::Referrer(), 92 content::Referrer(), CURRENT_TAB,
93 CURRENT_TAB, 93 content::PAGE_TRANSITION_AUTO_BOOKMARK, false));
94 content::PAGE_TRANSITION_AUTO_BOOKMARK,
95 false));
96 } 94 }
97 owner()->RemoveInfoBar(this); 95 owner()->RemoveInfoBar(this);
98 } 96 }
99 } 97 }
100 98
101 void AutoLoginInfoBarDelegateAndroid::LoginFailed(JNIEnv* env, jobject obj) { 99 void AutoLoginInfoBarDelegateAndroid::LoginFailed(JNIEnv* env, jobject obj) {
102 ScopedJavaLocalRef<jobject> delegate = 100 ScopedJavaLocalRef<jobject> delegate =
103 weak_java_auto_login_delegate_.get(env); 101 weak_java_auto_login_delegate_.get(env);
104 DCHECK(delegate.obj()); 102 DCHECK(delegate.obj());
105 if (owner()) { 103 if (owner()) {
106 SimpleAlertInfoBarDelegate::Create( 104 SimpleAlertInfoBarDelegate::Create(
107 owner(), 105 owner(), IDR_INFOBAR_WARNING,
108 IDR_INFOBAR_WARNING, 106 l10n_util::GetStringUTF16(IDS_AUTO_LOGIN_FAILED), false);
109 l10n_util::GetStringUTF16(IDS_AUTO_LOGIN_FAILED),
110 false);
111 owner()->RemoveInfoBar(this); 107 owner()->RemoveInfoBar(this);
112 } 108 }
113 } 109 }
114 110
115 void AutoLoginInfoBarDelegateAndroid::LoginDismiss(JNIEnv* env, jobject obj) { 111 void AutoLoginInfoBarDelegateAndroid::LoginDismiss(JNIEnv* env, jobject obj) {
116 if (owner()) 112 if (owner())
117 owner()->RemoveInfoBar(this); 113 owner()->RemoveInfoBar(this);
118 } 114 }
119 115
120 // Register Android JNI bindings.
121 bool AutoLoginInfoBarDelegateAndroid::Register(JNIEnv* env) { 116 bool AutoLoginInfoBarDelegateAndroid::Register(JNIEnv* env) {
122 return RegisterNativesImpl(env); 117 return RegisterNativesImpl(env);
123 } 118 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698