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

Unified Diff: chrome/browser/ui/auto_login_infobar_delegate.cc

Issue 208393015: Revert "Remove desktop auto-login since we don't plan on shipping it there. Refactor the base and … (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/ui/auto_login_infobar_delegate.h ('k') | chrome/browser/ui/auto_login_prompter.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/auto_login_infobar_delegate.cc
diff --git a/chrome/browser/ui/android/infobars/auto_login_infobar_delegate.cc b/chrome/browser/ui/auto_login_infobar_delegate.cc
similarity index 67%
rename from chrome/browser/ui/android/infobars/auto_login_infobar_delegate.cc
rename to chrome/browser/ui/auto_login_infobar_delegate.cc
index fa76f2604b9a797b92a1214aa0daa28a6a2114f9..5afb12438b94806726ca1f33e5778d41ac0fed6a 100644
--- a/chrome/browser/ui/android/infobars/auto_login_infobar_delegate.cc
+++ b/chrome/browser/ui/auto_login_infobar_delegate.cc
@@ -1,12 +1,9 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "chrome/browser/ui/android/infobars/auto_login_infobar_delegate.h"
+#include "chrome/browser/ui/auto_login_infobar_delegate.h"
-#include "base/android/jni_android.h"
-#include "base/android/jni_helper.h"
-#include "base/android/jni_string.h"
#include "base/bind.h"
#include "base/logging.h"
#include "base/message_loop/message_loop.h"
@@ -17,7 +14,6 @@
#include "chrome/browser/google/google_util.h"
#include "chrome/browser/infobars/infobar.h"
#include "chrome/browser/infobars/infobar_service.h"
-#include "chrome/browser/infobars/simple_alert_infobar_delegate.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/signin/profile_oauth2_token_service_factory.h"
#include "chrome/browser/signin/signin_manager_factory.h"
@@ -37,13 +33,13 @@
#include "grit/chromium_strings.h"
#include "grit/generated_resources.h"
#include "grit/theme_resources.h"
-#include "jni/AutoLoginDelegate_jni.h"
#include "net/base/escape.h"
#include "net/url_request/url_request.h"
#include "ui/base/l10n/l10n_util.h"
-using base::android::ConvertUTF8ToJavaString;
-using base::android::ScopedJavaLocalRef;
+#if defined(OS_ANDROID)
+#include "chrome/browser/ui/android/infobars/auto_login_infobar_delegate_android.h"
+#endif
// AutoLoginRedirector --------------------------------------------------------
@@ -146,9 +142,13 @@ bool AutoLoginInfoBarDelegate::Create(content::WebContents* web_contents,
Profile* profile =
Profile::FromBrowserContext(web_contents->GetBrowserContext());
+#if defined(OS_ANDROID)
+ typedef AutoLoginInfoBarDelegateAndroid Delegate;
+#else
+ typedef AutoLoginInfoBarDelegate Delegate;
+#endif
return !!infobar_service->AddInfoBar(ConfirmInfoBarDelegate::CreateInfoBar(
- scoped_ptr<ConfirmInfoBarDelegate>(
- new AutoLoginInfoBarDelegate(params, profile))));
+ scoped_ptr<ConfirmInfoBarDelegate>(new Delegate(params, profile))));
}
AutoLoginInfoBarDelegate::AutoLoginInfoBarDelegate(const Params& params,
@@ -179,67 +179,6 @@ AutoLoginInfoBarDelegate::~AutoLoginInfoBarDelegate() {
RecordHistogramAction(IGNORED);
}
-bool AutoLoginInfoBarDelegate::AttachAccount(
- JavaObjectWeakGlobalRef weak_java_auto_login_delegate) {
- weak_java_auto_login_delegate_ = weak_java_auto_login_delegate;
- JNIEnv* env = base::android::AttachCurrentThread();
- ScopedJavaLocalRef<jstring> jrealm = ConvertUTF8ToJavaString(env, realm());
- ScopedJavaLocalRef<jstring> jaccount =
- ConvertUTF8ToJavaString(env, account());
- ScopedJavaLocalRef<jstring> jargs = ConvertUTF8ToJavaString(env, args());
- DCHECK(!jrealm.is_null());
- DCHECK(!jaccount.is_null());
- DCHECK(!jargs.is_null());
-
- ScopedJavaLocalRef<jobject> delegate =
- weak_java_auto_login_delegate_.get(env);
- DCHECK(delegate.obj());
- user_ = base::android::ConvertJavaStringToUTF8(
- Java_AutoLoginDelegate_initializeAccount(
- env, delegate.obj(), reinterpret_cast<intptr_t>(this), jrealm.obj(),
- jaccount.obj(), jargs.obj()));
- return !user_.empty();
-}
-
-void AutoLoginInfoBarDelegate::LoginSuccess(JNIEnv* env,
- jobject obj,
- jstring result) {
- if (!infobar()->owner())
- return; // We're closing; don't call anything, it might access the owner.
-
- // TODO(miguelg): Test whether the Stop() and RemoveInfoBar() calls here are
- // necessary, or whether OpenURL() will do this for us.
- content::WebContents* contents = web_contents();
- contents->Stop();
- infobar()->RemoveSelf();
- // WARNING: |this| may be deleted at this point! Do not access any members!
- contents->OpenURL(content::OpenURLParams(
- GURL(base::android::ConvertJavaStringToUTF8(env, result)),
- content::Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_AUTO_BOOKMARK,
- false));
-}
-
-void AutoLoginInfoBarDelegate::LoginFailed(JNIEnv* env, jobject obj) {
- if (!infobar()->owner())
- return; // We're closing; don't call anything, it might access the owner.
-
- // TODO(miguelg): Using SimpleAlertInfoBarDelegate::Create() animates in a new
- // infobar while we animate the current one closed. It would be better to use
- // ReplaceInfoBar().
- SimpleAlertInfoBarDelegate::Create(
- infobar()->owner(), IDR_INFOBAR_WARNING,
- l10n_util::GetStringUTF16(IDS_AUTO_LOGIN_FAILED), false);
- infobar()->RemoveSelf();
-}
-
-void AutoLoginInfoBarDelegate::LoginDismiss(JNIEnv* env, jobject obj) {
- infobar()->RemoveSelf();
-}
-
-bool AutoLoginInfoBarDelegate::Register(JNIEnv* env) {
- return RegisterNativesImpl(env);
-}
-
void AutoLoginInfoBarDelegate::InfoBarDismissed() {
RecordHistogramAction(DISMISSED);
button_pressed_ = true;
@@ -260,7 +199,7 @@ AutoLoginInfoBarDelegate*
base::string16 AutoLoginInfoBarDelegate::GetMessageText() const {
return l10n_util::GetStringFUTF16(IDS_AUTOLOGIN_INFOBAR_MESSAGE,
- base::UTF8ToUTF16(user_));
+ base::UTF8ToUTF16(params_.username));
}
base::string16 AutoLoginInfoBarDelegate::GetButtonLabel(
@@ -270,24 +209,19 @@ base::string16 AutoLoginInfoBarDelegate::GetButtonLabel(
}
bool AutoLoginInfoBarDelegate::Accept() {
- JNIEnv* env = base::android::AttachCurrentThread();
- ScopedJavaLocalRef<jobject> delegate =
- weak_java_auto_login_delegate_.get(env);
- DCHECK(delegate.obj());
- Java_AutoLoginDelegate_logIn(env, delegate.obj(),
- reinterpret_cast<intptr_t>(this));
- // Do not close the infobar on accept, it will be closed as part
- // of the log in callback.
- return false;
+ // AutoLoginRedirector deletes itself.
+ new AutoLoginRedirector(web_contents(), params_.header.args);
+ RecordHistogramAction(ACCEPTED);
+ button_pressed_ = true;
+ return true;
}
bool AutoLoginInfoBarDelegate::Cancel() {
- JNIEnv* env = base::android::AttachCurrentThread();
- ScopedJavaLocalRef<jobject> delegate =
- weak_java_auto_login_delegate_.get(env);
- DCHECK(delegate.obj());
- Java_AutoLoginDelegate_cancelLogIn(env, delegate.obj(),
- reinterpret_cast<intptr_t>(this));
+ PrefService* pref_service = Profile::FromBrowserContext(
+ web_contents()->GetBrowserContext())->GetPrefs();
+ pref_service->SetBoolean(prefs::kAutologinEnabled, false);
+ RecordHistogramAction(REJECTED);
+ button_pressed_ = true;
return true;
}
« no previous file with comments | « chrome/browser/ui/auto_login_infobar_delegate.h ('k') | chrome/browser/ui/auto_login_prompter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698