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

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_ = ConvertJavaStringToUTF8(Java_AutoLoginDelegate_initializeAccount(
45 Java_AutoLoginDelegate_initializeAccount(env, 48 env, delegate.obj(), reinterpret_cast<jint>(this), jrealm.obj(),
46 delegate.obj(), 49 jaccount.obj(), jargs.obj()));
47 reinterpret_cast<jint>(this),
48 jrealm.obj(),
49 jaccount.obj(),
50 jargs.obj()));
51 return !user_.empty(); 50 return !user_.empty();
52 } 51 }
53 52
54 string16 AutoLoginInfoBarDelegateAndroid::GetMessageText() const { 53 string16 AutoLoginInfoBarDelegateAndroid::GetMessageText() const {
55 return l10n_util::GetStringFUTF16(IDS_AUTOLOGIN_INFOBAR_MESSAGE, 54 return l10n_util::GetStringFUTF16(IDS_AUTOLOGIN_INFOBAR_MESSAGE,
56 UTF8ToUTF16(user_)); 55 UTF8ToUTF16(user_));
57 } 56 }
58 57
59 bool AutoLoginInfoBarDelegateAndroid::Accept() { 58 bool AutoLoginInfoBarDelegateAndroid::Accept() {
60 JNIEnv* env = AttachCurrentThread(); 59 JNIEnv* env = base::android::AttachCurrentThread();
Miguel Garcia 2013/09/25 23:23:48 curious on why the namespace shortcut is not ok f
Peter Kasting 2013/09/25 23:26:23 Why does the unqualified ConvertJavaStringToUTF8()
61 ScopedJavaLocalRef<jobject> delegate = 60 ScopedJavaLocalRef<jobject> delegate =
62 weak_java_auto_login_delegate_.get(env); 61 weak_java_auto_login_delegate_.get(env);
63 DCHECK(delegate.obj()); 62 DCHECK(delegate.obj());
64 63
65 Java_AutoLoginDelegate_logIn( 64 Java_AutoLoginDelegate_logIn(env, delegate.obj(),
66 env, delegate.obj(), reinterpret_cast<jint>(this)); 65 reinterpret_cast<jint>(this));
67 66
68 // Do not close the infobar on accept, it will be closed as part 67 // Do not close the infobar on accept, it will be closed as part
69 // of the log in callback. 68 // of the log in callback.
70 return false; 69 return false;
71 } 70 }
72 71
73 bool AutoLoginInfoBarDelegateAndroid::Cancel() { 72 bool AutoLoginInfoBarDelegateAndroid::Cancel() {
74 JNIEnv* env = AttachCurrentThread(); 73 JNIEnv* env = base::android::AttachCurrentThread();
75 ScopedJavaLocalRef<jobject> delegate = 74 ScopedJavaLocalRef<jobject> delegate =
76 weak_java_auto_login_delegate_.get(env); 75 weak_java_auto_login_delegate_.get(env);
77 DCHECK(delegate.obj()); 76 DCHECK(delegate.obj());
78 Java_AutoLoginDelegate_cancelLogIn( 77 Java_AutoLoginDelegate_cancelLogIn(env, delegate.obj(),
79 env, delegate.obj(), reinterpret_cast<jint>(this)); 78 reinterpret_cast<jint>(this));
80 return true; 79 return true;
81 } 80 }
82 81
83 void AutoLoginInfoBarDelegateAndroid::LoginSuccess(JNIEnv* env, 82 void AutoLoginInfoBarDelegateAndroid::LoginSuccess(JNIEnv* env,
84 jobject obj, 83 jobject obj,
85 jstring result) { 84 jstring result) {
86 if (owner()) { 85 if (owner()) {
87 content::WebContents* web_contents = owner()->web_contents(); 86 content::WebContents* web_contents = owner()->web_contents();
88 if (web_contents) { 87 if (web_contents) {
89 web_contents->Stop(); 88 web_contents->Stop();
90 web_contents->OpenURL(content::OpenURLParams( 89 web_contents->OpenURL(content::OpenURLParams(
91 GURL(base::android::ConvertJavaStringToUTF8(env, result)), 90 GURL(base::android::ConvertJavaStringToUTF8(env, result)),
92 content::Referrer(), 91 content::Referrer(),
93 CURRENT_TAB, 92 CURRENT_TAB,
94 content::PAGE_TRANSITION_AUTO_BOOKMARK, 93 content::PAGE_TRANSITION_AUTO_BOOKMARK,
95 false)); 94 false));
96 } 95 }
97 owner()->RemoveInfoBar(this); 96 owner()->RemoveInfoBar(this);
98 } 97 }
99 } 98 }
100 99
101 void AutoLoginInfoBarDelegateAndroid::LoginFailed(JNIEnv* env, jobject obj) { 100 void AutoLoginInfoBarDelegateAndroid::LoginFailed(JNIEnv* env, jobject obj) {
102 ScopedJavaLocalRef<jobject> delegate = 101 ScopedJavaLocalRef<jobject> delegate =
103 weak_java_auto_login_delegate_.get(env); 102 weak_java_auto_login_delegate_.get(env);
104 DCHECK(delegate.obj()); 103 DCHECK(delegate.obj());
105 if (owner()) { 104 if (owner()) {
106 SimpleAlertInfoBarDelegate::Create( 105 SimpleAlertInfoBarDelegate::Create(
107 owner(), 106 owner(), IDR_INFOBAR_WARNING,
108 IDR_INFOBAR_WARNING, 107 l10n_util::GetStringUTF16(IDS_AUTO_LOGIN_FAILED), false);
109 l10n_util::GetStringUTF16(IDS_AUTO_LOGIN_FAILED),
110 false);
111 owner()->RemoveInfoBar(this); 108 owner()->RemoveInfoBar(this);
112 } 109 }
113 } 110 }
114 111
115 void AutoLoginInfoBarDelegateAndroid::LoginDismiss(JNIEnv* env, jobject obj) { 112 void AutoLoginInfoBarDelegateAndroid::LoginDismiss(JNIEnv* env, jobject obj) {
116 if (owner()) 113 if (owner())
117 owner()->RemoveInfoBar(this); 114 owner()->RemoveInfoBar(this);
118 } 115 }
119 116
120 // Register Android JNI bindings.
121 bool AutoLoginInfoBarDelegateAndroid::Register(JNIEnv* env) { 117 bool AutoLoginInfoBarDelegateAndroid::Register(JNIEnv* env) {
122 return RegisterNativesImpl(env); 118 return RegisterNativesImpl(env);
123 } 119 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698