Commit 1e754ca5 authored by Pâris MEULEMAN's avatar Pâris MEULEMAN Committed by Commit Bot

Use IdentityManager - hasPrimaryAccount in java

This moves clients of SigninManager.isSignedOnNative to
IdentityManager.hasPrimaryAccount.

Bug: 934688
Change-Id: Ifbcc4c5647f4d2ea1dfd4197e35e136cf1d94fd5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1742346Reviewed-by: default avatarTheresa  <twellington@chromium.org>
Reviewed-by: default avatarBoris Sazonov <bsazonov@chromium.org>
Reviewed-by: default avatarSylvain Defresne <sdefresne@chromium.org>
Commit-Queue: Pâris Meuleman <pmeuleman@chromium.org>
Auto-Submit: Pâris Meuleman <pmeuleman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#694793}
parent 807217d5
......@@ -853,6 +853,7 @@ android_library("chrome_test_java") {
"//components/signin/core/browser/android:java",
"//components/signin/core/browser/android:signin_java_test_support",
"//components/signin/core/browser/android:signin_javatests",
"//components/signin/public/identity_manager/android:java",
"//components/sync:sync_java_test_support",
"//components/sync/android:sync_java",
"//components/sync/android:sync_javatests",
......
......@@ -65,7 +65,9 @@ public class SignInPromo extends OptionalLeaf {
protected SignInPromo(SigninManager signinManager) {
Context context = ContextUtils.getApplicationContext();
mCanSignIn = signinManager.isSignInAllowed() && !signinManager.isSignedInOnNative();
// TODO(bsazonov): Signin manager should check for native status in isSignInAllowed
mCanSignIn = signinManager.isSignInAllowed()
&& !signinManager.getIdentityManager().hasPrimaryAccount();
mAccountsReady = AccountManagerFacade.get().isCachePopulated();
updateVisibility();
......
......@@ -74,8 +74,10 @@ public class GoogleServicesManager implements ApplicationStateListener {
// crash on the native side then the signin state may get out of sync. Make sure that
// the native side is signed out if the Java side doesn't have a currently signed in
// user.
// TODO(bsazonov): Move this to SigninManager.
SigninManager signinManager = IdentityServicesProvider.getSigninManager();
if (!mChromeSigninController.isSignedIn() && signinManager.isSignedInOnNative()) {
if (!mChromeSigninController.isSignedIn()
&& signinManager.getIdentityManager().hasPrimaryAccount()) {
Log.w(TAG, "Signed in state got out of sync, forcing native sign out");
// TODO(https://crbug.com/873116): Pass the correct reason for the signout.
signinManager.signOut(SignoutReason.USER_CLICKED_SIGNOUT_SETTINGS);
......
......@@ -278,6 +278,13 @@ public class SigninManager
sSignInAccessPoint = SigninAccessPoint.UNKNOWN;
}
/**
* Returns the IdentityManager used by SigninManager.
*/
public IdentityManager getIdentityManager() {
return mIdentityManager;
}
/**
* Notifies the SigninManager that the First Run check has completed.
*
......@@ -691,13 +698,6 @@ public class SigninManager
}
}
/**
* @return Whether there is a signed in account on the native side.
*/
public boolean isSignedInOnNative() {
return SigninManagerJni.get().isSignedInOnNative(mNativeSigninManagerAndroid);
}
@CalledByNative
private void onSigninAllowedByPolicyChanged(boolean newSigninAllowedByPolicy) {
mSigninAllowedByPolicy = newSigninAllowedByPolicy;
......@@ -773,8 +773,6 @@ public class SigninManager
void logInSignedInUser(long nativeSigninManagerAndroid);
boolean isSignedInOnNative(long nativeSigninManagerAndroid);
String extractDomainName(String email);
boolean isMobileIdentityConsistencyEnabled();
......
......@@ -81,10 +81,10 @@ public class SyncTest {
public void testStopAndClear() {
mSyncTestRule.setUpTestAccountAndSignIn();
CriteriaHelper.pollUiThread(
new Criteria("Timed out checking that isSignedInOnNative() == true") {
new Criteria("Timed out checking that hasPrimaryAccount() == true") {
@Override
public boolean isSatisfied() {
return IdentityServicesProvider.getSigninManager().isSignedInOnNative();
return IdentityServicesProvider.getIdentityManager().hasPrimaryAccount();
}
},
SyncTestUtil.TIMEOUT_MS, SyncTestUtil.INTERVAL_MS);
......@@ -95,10 +95,10 @@ public class SyncTest {
Assert.assertNull(SigninTestUtil.getCurrentAccount());
Assert.assertFalse(SyncTestUtil.isSyncRequested());
CriteriaHelper.pollUiThread(
new Criteria("Timed out checking that isSignedInOnNative() == false") {
new Criteria("Timed out checking that hasPrimaryAccount() == false") {
@Override
public boolean isSatisfied() {
return !IdentityServicesProvider.getSigninManager().isSignedInOnNative();
return !IdentityServicesProvider.getIdentityManager().hasPrimaryAccount();
}
},
SyncTestUtil.TIMEOUT_MS, SyncTestUtil.INTERVAL_MS);
......
......@@ -85,6 +85,7 @@ import org.chromium.chrome.test.util.browser.Features.DisableFeatures;
import org.chromium.chrome.test.util.browser.suggestions.ContentSuggestionsTestUtils.CategoryInfoBuilder;
import org.chromium.chrome.test.util.browser.suggestions.FakeSuggestionsSource;
import org.chromium.components.signin.AccountManagerFacade;
import org.chromium.components.signin.identitymanager.IdentityManager;
import org.chromium.net.NetworkChangeNotifier;
import org.chromium.ui.modelutil.RecyclerViewAdapter;
......@@ -121,6 +122,8 @@ public class NewTabPageAdapterTest {
private FakeSuggestionsSource mSource;
private NewTabPageAdapter mAdapter;
@Mock
private IdentityManager mMockIdentityManager;
@Mock
private SigninManager mMockSigninManager;
@Mock
private OfflinePageBridge mOfflinePageBridge;
......@@ -316,7 +319,8 @@ public class NewTabPageAdapterTest {
// Set up test account and initialize the sign in state. We will be signed in by default
// in the tests.
NewTabPageTestUtils.setUpTestAccount();
when(mMockSigninManager.isSignedInOnNative()).thenReturn(true);
when(mMockSigninManager.getIdentityManager()).thenReturn(mMockIdentityManager);
when(mMockIdentityManager.hasPrimaryAccount()).thenReturn(true);
when(mMockSigninManager.isSignInAllowed()).thenReturn(true);
mSource = new FakeSuggestionsSource();
......@@ -958,7 +962,7 @@ public class NewTabPageAdapterTest {
useArticleCategory();
when(mMockSigninManager.isSignInAllowed()).thenReturn(true);
when(mMockSigninManager.isSignedInOnNative()).thenReturn(false);
when(mMockIdentityManager.hasPrimaryAccount()).thenReturn(false);
resetUiDelegate();
reloadNtp();
......@@ -997,7 +1001,7 @@ public class NewTabPageAdapterTest {
@Feature({"Ntp"})
public void testSigninPromoSuppressionActive() {
when(mMockSigninManager.isSignInAllowed()).thenReturn(true);
when(mMockSigninManager.isSignedInOnNative()).thenReturn(false);
when(mMockIdentityManager.hasPrimaryAccount()).thenReturn(false);
useArticleCategory();
// Suppress promo.
......@@ -1013,7 +1017,7 @@ public class NewTabPageAdapterTest {
@Feature({"Ntp"})
public void testSigninPromoSuppressionExpired() {
when(mMockSigninManager.isSignInAllowed()).thenReturn(true);
when(mMockSigninManager.isSignedInOnNative()).thenReturn(false);
when(mMockIdentityManager.hasPrimaryAccount()).thenReturn(false);
useArticleCategory();
// Suppress promo.
......@@ -1039,7 +1043,7 @@ public class NewTabPageAdapterTest {
.thenReturn(signInPromoText);
when(mMockSigninManager.isSignInAllowed()).thenReturn(true);
when(mMockSigninManager.isSignedInOnNative()).thenReturn(false);
when(mMockIdentityManager.hasPrimaryAccount()).thenReturn(false);
ChromePreferenceManager.getInstance().writeBoolean(
ChromePreferenceManager.NTP_SIGNIN_PROMO_DISMISSED, false);
useArticleCategory();
......@@ -1064,7 +1068,7 @@ public class NewTabPageAdapterTest {
public void testSigninPromoAccountsNotReady() {
useArticleCategory();
when(mMockSigninManager.isSignInAllowed()).thenReturn(true);
when(mMockSigninManager.isSignedInOnNative()).thenReturn(false);
when(mMockIdentityManager.hasPrimaryAccount()).thenReturn(false);
resetUiDelegate();
reloadNtp();
assertFalse(isSignInPromoVisible());
......@@ -1087,7 +1091,7 @@ public class NewTabPageAdapterTest {
Callback<String> itemDismissedCallback = mock(Callback.class);
// On signed out, the promo should be shown.
when(mMockSigninManager.isSignedInOnNative()).thenReturn(false);
when(mMockIdentityManager.hasPrimaryAccount()).thenReturn(false);
signinObserver.onSignedOut();
// By default, there is no All Dismissed item.
......
......@@ -69,6 +69,7 @@ import org.chromium.chrome.test.util.browser.Features;
import org.chromium.chrome.test.util.browser.offlinepages.FakeOfflinePageBridge;
import org.chromium.chrome.test.util.browser.suggestions.ContentSuggestionsTestUtils.CategoryInfoBuilder;
import org.chromium.chrome.test.util.browser.suggestions.FakeSuggestionsSource;
import org.chromium.components.signin.identitymanager.IdentityManager;
import org.chromium.ui.modelutil.ListObservable;
import org.chromium.ui.modelutil.ListObservable.ListObserver;
......@@ -110,6 +111,8 @@ public class SuggestionsSectionTest {
private PrefServiceBridge mPrefServiceBridge;
@Mock
private SigninManager mSigninManager;
@Mock
private IdentityManager mIdentityManager;
private FakeSuggestionsSource mSuggestionsSource;
private FakeOfflinePageBridge mBridge;
......@@ -139,7 +142,8 @@ public class SuggestionsSectionTest {
// Set up a test account and initialize to the signed in state.
NewTabPageTestUtils.setUpTestAccount();
when(mSigninManager.isSignedInOnNative()).thenReturn(false);
when(mSigninManager.getIdentityManager()).thenReturn(mIdentityManager);
when(mIdentityManager.hasPrimaryAccount()).thenReturn(false);
when(mSigninManager.isSignInAllowed()).thenReturn(true);
}
......
......@@ -213,10 +213,6 @@ jboolean SigninManagerAndroid::IsForceSigninEnabled(JNIEnv* env) {
return force_browser_signin_.GetValue();
}
jboolean SigninManagerAndroid::IsSignedInOnNative(JNIEnv* env) {
return identity_manager_->HasPrimaryAccount();
}
void SigninManagerAndroid::OnSigninAllowedPrefChanged() const {
Java_SigninManager_onSigninAllowedByPolicyChanged(
base::android::AttachCurrentThread(), java_signin_manager_,
......
......@@ -62,8 +62,6 @@ class SigninManagerAndroid : public KeyedService {
jboolean IsForceSigninEnabled(JNIEnv* env);
jboolean IsSignedInOnNative(JNIEnv* env);
// Registers a CloudPolicyClient for fetching policy for a user and fetches
// the policy if necessary.
void FetchAndApplyCloudPolicy(
......
......@@ -98,7 +98,7 @@ public class IdentityManager {
/**
* Returns whether the user's primary account is available.
*/
boolean hasPrimaryAccount() {
public boolean hasPrimaryAccount() {
return IdentityManagerJni.get().hasPrimaryAccount(mNativeIdentityManager);
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment