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") { ...@@ -853,6 +853,7 @@ android_library("chrome_test_java") {
"//components/signin/core/browser/android:java", "//components/signin/core/browser/android:java",
"//components/signin/core/browser/android:signin_java_test_support", "//components/signin/core/browser/android:signin_java_test_support",
"//components/signin/core/browser/android:signin_javatests", "//components/signin/core/browser/android:signin_javatests",
"//components/signin/public/identity_manager/android:java",
"//components/sync:sync_java_test_support", "//components/sync:sync_java_test_support",
"//components/sync/android:sync_java", "//components/sync/android:sync_java",
"//components/sync/android:sync_javatests", "//components/sync/android:sync_javatests",
......
...@@ -65,7 +65,9 @@ public class SignInPromo extends OptionalLeaf { ...@@ -65,7 +65,9 @@ public class SignInPromo extends OptionalLeaf {
protected SignInPromo(SigninManager signinManager) { protected SignInPromo(SigninManager signinManager) {
Context context = ContextUtils.getApplicationContext(); 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(); mAccountsReady = AccountManagerFacade.get().isCachePopulated();
updateVisibility(); updateVisibility();
......
...@@ -74,8 +74,10 @@ public class GoogleServicesManager implements ApplicationStateListener { ...@@ -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 // 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 // the native side is signed out if the Java side doesn't have a currently signed in
// user. // user.
// TODO(bsazonov): Move this to SigninManager.
SigninManager signinManager = IdentityServicesProvider.getSigninManager(); 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"); 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. // TODO(https://crbug.com/873116): Pass the correct reason for the signout.
signinManager.signOut(SignoutReason.USER_CLICKED_SIGNOUT_SETTINGS); signinManager.signOut(SignoutReason.USER_CLICKED_SIGNOUT_SETTINGS);
......
...@@ -278,6 +278,13 @@ public class SigninManager ...@@ -278,6 +278,13 @@ public class SigninManager
sSignInAccessPoint = SigninAccessPoint.UNKNOWN; sSignInAccessPoint = SigninAccessPoint.UNKNOWN;
} }
/**
* Returns the IdentityManager used by SigninManager.
*/
public IdentityManager getIdentityManager() {
return mIdentityManager;
}
/** /**
* Notifies the SigninManager that the First Run check has completed. * Notifies the SigninManager that the First Run check has completed.
* *
...@@ -691,13 +698,6 @@ public class SigninManager ...@@ -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 @CalledByNative
private void onSigninAllowedByPolicyChanged(boolean newSigninAllowedByPolicy) { private void onSigninAllowedByPolicyChanged(boolean newSigninAllowedByPolicy) {
mSigninAllowedByPolicy = newSigninAllowedByPolicy; mSigninAllowedByPolicy = newSigninAllowedByPolicy;
...@@ -773,8 +773,6 @@ public class SigninManager ...@@ -773,8 +773,6 @@ public class SigninManager
void logInSignedInUser(long nativeSigninManagerAndroid); void logInSignedInUser(long nativeSigninManagerAndroid);
boolean isSignedInOnNative(long nativeSigninManagerAndroid);
String extractDomainName(String email); String extractDomainName(String email);
boolean isMobileIdentityConsistencyEnabled(); boolean isMobileIdentityConsistencyEnabled();
......
...@@ -81,10 +81,10 @@ public class SyncTest { ...@@ -81,10 +81,10 @@ public class SyncTest {
public void testStopAndClear() { public void testStopAndClear() {
mSyncTestRule.setUpTestAccountAndSignIn(); mSyncTestRule.setUpTestAccountAndSignIn();
CriteriaHelper.pollUiThread( CriteriaHelper.pollUiThread(
new Criteria("Timed out checking that isSignedInOnNative() == true") { new Criteria("Timed out checking that hasPrimaryAccount() == true") {
@Override @Override
public boolean isSatisfied() { public boolean isSatisfied() {
return IdentityServicesProvider.getSigninManager().isSignedInOnNative(); return IdentityServicesProvider.getIdentityManager().hasPrimaryAccount();
} }
}, },
SyncTestUtil.TIMEOUT_MS, SyncTestUtil.INTERVAL_MS); SyncTestUtil.TIMEOUT_MS, SyncTestUtil.INTERVAL_MS);
...@@ -95,10 +95,10 @@ public class SyncTest { ...@@ -95,10 +95,10 @@ public class SyncTest {
Assert.assertNull(SigninTestUtil.getCurrentAccount()); Assert.assertNull(SigninTestUtil.getCurrentAccount());
Assert.assertFalse(SyncTestUtil.isSyncRequested()); Assert.assertFalse(SyncTestUtil.isSyncRequested());
CriteriaHelper.pollUiThread( CriteriaHelper.pollUiThread(
new Criteria("Timed out checking that isSignedInOnNative() == false") { new Criteria("Timed out checking that hasPrimaryAccount() == false") {
@Override @Override
public boolean isSatisfied() { public boolean isSatisfied() {
return !IdentityServicesProvider.getSigninManager().isSignedInOnNative(); return !IdentityServicesProvider.getIdentityManager().hasPrimaryAccount();
} }
}, },
SyncTestUtil.TIMEOUT_MS, SyncTestUtil.INTERVAL_MS); SyncTestUtil.TIMEOUT_MS, SyncTestUtil.INTERVAL_MS);
......
...@@ -85,6 +85,7 @@ import org.chromium.chrome.test.util.browser.Features.DisableFeatures; ...@@ -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.ContentSuggestionsTestUtils.CategoryInfoBuilder;
import org.chromium.chrome.test.util.browser.suggestions.FakeSuggestionsSource; import org.chromium.chrome.test.util.browser.suggestions.FakeSuggestionsSource;
import org.chromium.components.signin.AccountManagerFacade; import org.chromium.components.signin.AccountManagerFacade;
import org.chromium.components.signin.identitymanager.IdentityManager;
import org.chromium.net.NetworkChangeNotifier; import org.chromium.net.NetworkChangeNotifier;
import org.chromium.ui.modelutil.RecyclerViewAdapter; import org.chromium.ui.modelutil.RecyclerViewAdapter;
...@@ -121,6 +122,8 @@ public class NewTabPageAdapterTest { ...@@ -121,6 +122,8 @@ public class NewTabPageAdapterTest {
private FakeSuggestionsSource mSource; private FakeSuggestionsSource mSource;
private NewTabPageAdapter mAdapter; private NewTabPageAdapter mAdapter;
@Mock @Mock
private IdentityManager mMockIdentityManager;
@Mock
private SigninManager mMockSigninManager; private SigninManager mMockSigninManager;
@Mock @Mock
private OfflinePageBridge mOfflinePageBridge; private OfflinePageBridge mOfflinePageBridge;
...@@ -316,7 +319,8 @@ public class NewTabPageAdapterTest { ...@@ -316,7 +319,8 @@ public class NewTabPageAdapterTest {
// Set up test account and initialize the sign in state. We will be signed in by default // Set up test account and initialize the sign in state. We will be signed in by default
// in the tests. // in the tests.
NewTabPageTestUtils.setUpTestAccount(); NewTabPageTestUtils.setUpTestAccount();
when(mMockSigninManager.isSignedInOnNative()).thenReturn(true); when(mMockSigninManager.getIdentityManager()).thenReturn(mMockIdentityManager);
when(mMockIdentityManager.hasPrimaryAccount()).thenReturn(true);
when(mMockSigninManager.isSignInAllowed()).thenReturn(true); when(mMockSigninManager.isSignInAllowed()).thenReturn(true);
mSource = new FakeSuggestionsSource(); mSource = new FakeSuggestionsSource();
...@@ -958,7 +962,7 @@ public class NewTabPageAdapterTest { ...@@ -958,7 +962,7 @@ public class NewTabPageAdapterTest {
useArticleCategory(); useArticleCategory();
when(mMockSigninManager.isSignInAllowed()).thenReturn(true); when(mMockSigninManager.isSignInAllowed()).thenReturn(true);
when(mMockSigninManager.isSignedInOnNative()).thenReturn(false); when(mMockIdentityManager.hasPrimaryAccount()).thenReturn(false);
resetUiDelegate(); resetUiDelegate();
reloadNtp(); reloadNtp();
...@@ -997,7 +1001,7 @@ public class NewTabPageAdapterTest { ...@@ -997,7 +1001,7 @@ public class NewTabPageAdapterTest {
@Feature({"Ntp"}) @Feature({"Ntp"})
public void testSigninPromoSuppressionActive() { public void testSigninPromoSuppressionActive() {
when(mMockSigninManager.isSignInAllowed()).thenReturn(true); when(mMockSigninManager.isSignInAllowed()).thenReturn(true);
when(mMockSigninManager.isSignedInOnNative()).thenReturn(false); when(mMockIdentityManager.hasPrimaryAccount()).thenReturn(false);
useArticleCategory(); useArticleCategory();
// Suppress promo. // Suppress promo.
...@@ -1013,7 +1017,7 @@ public class NewTabPageAdapterTest { ...@@ -1013,7 +1017,7 @@ public class NewTabPageAdapterTest {
@Feature({"Ntp"}) @Feature({"Ntp"})
public void testSigninPromoSuppressionExpired() { public void testSigninPromoSuppressionExpired() {
when(mMockSigninManager.isSignInAllowed()).thenReturn(true); when(mMockSigninManager.isSignInAllowed()).thenReturn(true);
when(mMockSigninManager.isSignedInOnNative()).thenReturn(false); when(mMockIdentityManager.hasPrimaryAccount()).thenReturn(false);
useArticleCategory(); useArticleCategory();
// Suppress promo. // Suppress promo.
...@@ -1039,7 +1043,7 @@ public class NewTabPageAdapterTest { ...@@ -1039,7 +1043,7 @@ public class NewTabPageAdapterTest {
.thenReturn(signInPromoText); .thenReturn(signInPromoText);
when(mMockSigninManager.isSignInAllowed()).thenReturn(true); when(mMockSigninManager.isSignInAllowed()).thenReturn(true);
when(mMockSigninManager.isSignedInOnNative()).thenReturn(false); when(mMockIdentityManager.hasPrimaryAccount()).thenReturn(false);
ChromePreferenceManager.getInstance().writeBoolean( ChromePreferenceManager.getInstance().writeBoolean(
ChromePreferenceManager.NTP_SIGNIN_PROMO_DISMISSED, false); ChromePreferenceManager.NTP_SIGNIN_PROMO_DISMISSED, false);
useArticleCategory(); useArticleCategory();
...@@ -1064,7 +1068,7 @@ public class NewTabPageAdapterTest { ...@@ -1064,7 +1068,7 @@ public class NewTabPageAdapterTest {
public void testSigninPromoAccountsNotReady() { public void testSigninPromoAccountsNotReady() {
useArticleCategory(); useArticleCategory();
when(mMockSigninManager.isSignInAllowed()).thenReturn(true); when(mMockSigninManager.isSignInAllowed()).thenReturn(true);
when(mMockSigninManager.isSignedInOnNative()).thenReturn(false); when(mMockIdentityManager.hasPrimaryAccount()).thenReturn(false);
resetUiDelegate(); resetUiDelegate();
reloadNtp(); reloadNtp();
assertFalse(isSignInPromoVisible()); assertFalse(isSignInPromoVisible());
...@@ -1087,7 +1091,7 @@ public class NewTabPageAdapterTest { ...@@ -1087,7 +1091,7 @@ public class NewTabPageAdapterTest {
Callback<String> itemDismissedCallback = mock(Callback.class); Callback<String> itemDismissedCallback = mock(Callback.class);
// On signed out, the promo should be shown. // On signed out, the promo should be shown.
when(mMockSigninManager.isSignedInOnNative()).thenReturn(false); when(mMockIdentityManager.hasPrimaryAccount()).thenReturn(false);
signinObserver.onSignedOut(); signinObserver.onSignedOut();
// By default, there is no All Dismissed item. // By default, there is no All Dismissed item.
......
...@@ -69,6 +69,7 @@ import org.chromium.chrome.test.util.browser.Features; ...@@ -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.offlinepages.FakeOfflinePageBridge;
import org.chromium.chrome.test.util.browser.suggestions.ContentSuggestionsTestUtils.CategoryInfoBuilder; import org.chromium.chrome.test.util.browser.suggestions.ContentSuggestionsTestUtils.CategoryInfoBuilder;
import org.chromium.chrome.test.util.browser.suggestions.FakeSuggestionsSource; 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;
import org.chromium.ui.modelutil.ListObservable.ListObserver; import org.chromium.ui.modelutil.ListObservable.ListObserver;
...@@ -110,6 +111,8 @@ public class SuggestionsSectionTest { ...@@ -110,6 +111,8 @@ public class SuggestionsSectionTest {
private PrefServiceBridge mPrefServiceBridge; private PrefServiceBridge mPrefServiceBridge;
@Mock @Mock
private SigninManager mSigninManager; private SigninManager mSigninManager;
@Mock
private IdentityManager mIdentityManager;
private FakeSuggestionsSource mSuggestionsSource; private FakeSuggestionsSource mSuggestionsSource;
private FakeOfflinePageBridge mBridge; private FakeOfflinePageBridge mBridge;
...@@ -139,7 +142,8 @@ public class SuggestionsSectionTest { ...@@ -139,7 +142,8 @@ public class SuggestionsSectionTest {
// Set up a test account and initialize to the signed in state. // Set up a test account and initialize to the signed in state.
NewTabPageTestUtils.setUpTestAccount(); NewTabPageTestUtils.setUpTestAccount();
when(mSigninManager.isSignedInOnNative()).thenReturn(false); when(mSigninManager.getIdentityManager()).thenReturn(mIdentityManager);
when(mIdentityManager.hasPrimaryAccount()).thenReturn(false);
when(mSigninManager.isSignInAllowed()).thenReturn(true); when(mSigninManager.isSignInAllowed()).thenReturn(true);
} }
......
...@@ -213,10 +213,6 @@ jboolean SigninManagerAndroid::IsForceSigninEnabled(JNIEnv* env) { ...@@ -213,10 +213,6 @@ jboolean SigninManagerAndroid::IsForceSigninEnabled(JNIEnv* env) {
return force_browser_signin_.GetValue(); return force_browser_signin_.GetValue();
} }
jboolean SigninManagerAndroid::IsSignedInOnNative(JNIEnv* env) {
return identity_manager_->HasPrimaryAccount();
}
void SigninManagerAndroid::OnSigninAllowedPrefChanged() const { void SigninManagerAndroid::OnSigninAllowedPrefChanged() const {
Java_SigninManager_onSigninAllowedByPolicyChanged( Java_SigninManager_onSigninAllowedByPolicyChanged(
base::android::AttachCurrentThread(), java_signin_manager_, base::android::AttachCurrentThread(), java_signin_manager_,
......
...@@ -62,8 +62,6 @@ class SigninManagerAndroid : public KeyedService { ...@@ -62,8 +62,6 @@ class SigninManagerAndroid : public KeyedService {
jboolean IsForceSigninEnabled(JNIEnv* env); jboolean IsForceSigninEnabled(JNIEnv* env);
jboolean IsSignedInOnNative(JNIEnv* env);
// Registers a CloudPolicyClient for fetching policy for a user and fetches // Registers a CloudPolicyClient for fetching policy for a user and fetches
// the policy if necessary. // the policy if necessary.
void FetchAndApplyCloudPolicy( void FetchAndApplyCloudPolicy(
......
...@@ -98,7 +98,7 @@ public class IdentityManager { ...@@ -98,7 +98,7 @@ public class IdentityManager {
/** /**
* Returns whether the user's primary account is available. * Returns whether the user's primary account is available.
*/ */
boolean hasPrimaryAccount() { public boolean hasPrimaryAccount() {
return IdentityManagerJni.get().hasPrimaryAccount(mNativeIdentityManager); 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