| Index: chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java
|
| index 37c0bb4a3805ff46e45fa4aa3842d3f1adb32376..6c4ee7bea3ba86702d11e5004098ee0e3de394ad 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java
|
| @@ -6,7 +6,6 @@ package org.chromium.chrome.browser.signin;
|
|
|
| import android.accounts.Account;
|
| import android.app.Activity;
|
| -import android.app.DialogFragment;
|
| import android.content.Context;
|
| import android.os.Handler;
|
|
|
| @@ -144,11 +143,6 @@ public class SigninManager implements AccountTrackerService.OnSystemAccountsSeed
|
| public final SignInCallback callback;
|
|
|
| /**
|
| - * The dialog currently being displayed to the user, if any.
|
| - */
|
| - public DialogFragment displayedDialog = null;
|
| -
|
| - /**
|
| * If the system accounts need to be seeded, the sign in flow will block for that to occur.
|
| * This boolean should be set to true during that time and then reset back to false
|
| * afterwards. This allows the manager to know if it should progress the flow when the
|
| @@ -397,7 +391,7 @@ public class SigninManager implements AccountTrackerService.OnSystemAccountsSeed
|
| return;
|
| }
|
|
|
| - if (!nativeShouldLoadPolicyForUser(mSignInState.account.name)) {
|
| + if (!couldUserBeManaged(mSignInState.account.name)) {
|
| // Proceed with the sign-in flow without checking for policy if it can be determined
|
| // that this account can't have management enabled based on the username.
|
| finishSignIn();
|
| @@ -424,30 +418,7 @@ public class SigninManager implements AccountTrackerService.OnSystemAccountsSeed
|
| return;
|
| }
|
|
|
| - if (!mSignInState.isInteractive()) {
|
| - // If this is a forced sign-in then don't show the confirmation dialog.
|
| - // This will call back to onPolicyFetchedBeforeSignIn.
|
| - nativeFetchPolicyBeforeSignIn(mNativeSigninManagerAndroid);
|
| - return;
|
| - }
|
| -
|
| - // TODO(peconn): Move this and other UI interactions into AccountSigninView.
|
| - Log.d(TAG, "Account has policy management");
|
| - mSignInState.displayedDialog = ConfirmManagedSigninFragment.newInstance(managementDomain);
|
| - mSignInState.displayedDialog.show(
|
| - mSignInState.activity.getFragmentManager(), CONFIRM_MANAGED_SIGNIN_DIALOG_TAG);
|
| - }
|
| -
|
| - /**
|
| - * Called from ConfirmManagedSigninFragment if the managed account was confirmed.
|
| - */
|
| - void progressInteractiveSignInFlowManagedConfirmed() {
|
| - if (mSignInState == null || mSignInState.displayedDialog == null) {
|
| - // Stop if sign-in was cancelled or this is a duplicate click event.
|
| - return;
|
| - }
|
| - mSignInState.displayedDialog = null;
|
| -
|
| + // The user has already been notified that they are signing into a managed account.
|
| // This will call back to onPolicyFetchedBeforeSignIn.
|
| nativeFetchPolicyBeforeSignIn(mNativeSigninManagerAndroid);
|
| }
|
| @@ -566,10 +537,6 @@ public class SigninManager implements AccountTrackerService.OnSystemAccountsSeed
|
| assert signInState != null;
|
| mSignInState = null;
|
|
|
| - if (signInState.displayedDialog != null) {
|
| - signInState.displayedDialog.dismiss();
|
| - }
|
| -
|
| if (signInState.callback != null) {
|
| signInState.callback.onSignInAborted();
|
| }
|
| @@ -639,10 +606,32 @@ public class SigninManager implements AccountTrackerService.OnSystemAccountsSeed
|
| notifySignInAllowedChanged();
|
| }
|
|
|
| + /**
|
| + * Performs a synchronous check to see if the user could be a managed user. We know some email
|
| + * domains (eg gmail) will never be managed so can quickly return a false in some cases.
|
| + * @return true if the account could be managed, you'll need to add a further check, false if
|
| + * the user is definitely not managed.
|
| + */
|
| + public static boolean couldUserBeManaged(String email) {
|
| + return nativeShouldLoadPolicyForUser(email);
|
| + }
|
| +
|
| + /**
|
| + * Performs an asynchronous check to see if the user is a managed user.
|
| + * @param callback A callback that takes the management domain. This will be empty if the user
|
| + * is not managed.
|
| + */
|
| + public static void fetchManagementDomain(String email, Callback<String> callback) {
|
| + nativeFetchUserManagementDomain(email, callback);
|
| + }
|
| +
|
| + private static native boolean nativeShouldLoadPolicyForUser(String username);
|
| + private static native void nativeFetchUserManagementDomain(String username,
|
| + Callback<String> callback);
|
| +
|
| // Native methods.
|
| private native long nativeInit();
|
| private native boolean nativeIsSigninAllowedByPolicy(long nativeSigninManagerAndroid);
|
| - private native boolean nativeShouldLoadPolicyForUser(String username);
|
| private native void nativeCheckPolicyBeforeSignIn(
|
| long nativeSigninManagerAndroid, String username);
|
| private native void nativeFetchPolicyBeforeSignIn(long nativeSigninManagerAndroid);
|
|
|