Commit ca99d581 authored by Boris Sazonov's avatar Boris Sazonov Committed by Commit Bot

[Signin][Android] Move part of GoogleServicesManager to SigninHelper

Moves GoogleServicesManager.onMainActivityStart and the corresponding
ApplicationStateListener to SigninHelper. The remaining part of
GoogleServicesManager will be merged into SigninManager in subsequent
CLs.

Bug: 1107942
Change-Id: Ia4acd5ff1cb9d466e34144f9d000b413324f0854
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2310491Reviewed-by: default avatarAlice Wang <aliceywang@chromium.org>
Commit-Queue: Boris Sazonov <bsazonov@chromium.org>
Cr-Commit-Position: refs/heads/master@{#791393}
parent 5d66d264
...@@ -35,7 +35,7 @@ import org.chromium.chrome.browser.app.flags.ChromeCachedFlags; ...@@ -35,7 +35,7 @@ import org.chromium.chrome.browser.app.flags.ChromeCachedFlags;
import org.chromium.chrome.browser.crash.LogcatExtractionRunnable; import org.chromium.chrome.browser.crash.LogcatExtractionRunnable;
import org.chromium.chrome.browser.download.DownloadManagerService; import org.chromium.chrome.browser.download.DownloadManagerService;
import org.chromium.chrome.browser.flags.ChromeSwitches; import org.chromium.chrome.browser.flags.ChromeSwitches;
import org.chromium.chrome.browser.services.GoogleServicesManager; import org.chromium.chrome.browser.signin.SigninHelper;
import org.chromium.chrome.browser.webapps.ChromeWebApkHost; import org.chromium.chrome.browser.webapps.ChromeWebApkHost;
import org.chromium.components.background_task_scheduler.BackgroundTaskSchedulerFactory; import org.chromium.components.background_task_scheduler.BackgroundTaskSchedulerFactory;
import org.chromium.components.crash.browser.ChildProcessCrashObserver; import org.chromium.components.crash.browser.ChildProcessCrashObserver;
...@@ -355,7 +355,7 @@ public class ChromeBrowserInitializer { ...@@ -355,7 +355,7 @@ public class ChromeBrowserInitializer {
LibraryPrefetcher.asyncPrefetchLibrariesToMemory(); LibraryPrefetcher.asyncPrefetchLibrariesToMemory();
getBrowserStartupController().startBrowserProcessesSync( getBrowserStartupController().startBrowserProcessesSync(
LibraryProcessType.PROCESS_BROWSER, /*singleProcess=*/false); LibraryProcessType.PROCESS_BROWSER, /*singleProcess=*/false);
GoogleServicesManager.get(); SigninHelper.get();
} finally { } finally {
TraceEvent.end("ChromeBrowserInitializer.startChromeBrowserProcessesSync"); TraceEvent.end("ChromeBrowserInitializer.startChromeBrowserProcessesSync");
} }
......
...@@ -70,9 +70,9 @@ import org.chromium.chrome.browser.preferences.SharedPreferencesManager; ...@@ -70,9 +70,9 @@ import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
import org.chromium.chrome.browser.profiles.ProfileManagerUtils; import org.chromium.chrome.browser.profiles.ProfileManagerUtils;
import org.chromium.chrome.browser.rlz.RevenueStats; import org.chromium.chrome.browser.rlz.RevenueStats;
import org.chromium.chrome.browser.searchwidget.SearchWidgetProvider; import org.chromium.chrome.browser.searchwidget.SearchWidgetProvider;
import org.chromium.chrome.browser.services.GoogleServicesManager;
import org.chromium.chrome.browser.share.clipboard.ClipboardImageFileProvider; import org.chromium.chrome.browser.share.clipboard.ClipboardImageFileProvider;
import org.chromium.chrome.browser.sharing.shared_clipboard.SharedClipboardShareActivity; import org.chromium.chrome.browser.sharing.shared_clipboard.SharedClipboardShareActivity;
import org.chromium.chrome.browser.signin.SigninHelper;
import org.chromium.chrome.browser.sync.SyncController; import org.chromium.chrome.browser.sync.SyncController;
import org.chromium.chrome.browser.webapps.WebApkVersionManager; import org.chromium.chrome.browser.webapps.WebApkVersionManager;
import org.chromium.chrome.browser.webapps.WebappRegistry; import org.chromium.chrome.browser.webapps.WebappRegistry;
...@@ -380,7 +380,7 @@ public class ProcessInitializationHandler { ...@@ -380,7 +380,7 @@ public class ProcessInitializationHandler {
deferredStartupHandler.addDeferredTask(new Runnable() { deferredStartupHandler.addDeferredTask(new Runnable() {
@Override @Override
public void run() { public void run() {
GoogleServicesManager.get().onMainActivityStart(); SigninHelper.get().onMainActivityStart();
RevenueStats.getInstance(); RevenueStats.getInstance();
} }
}); });
......
...@@ -9,16 +9,10 @@ import android.util.Log; ...@@ -9,16 +9,10 @@ import android.util.Log;
import androidx.annotation.VisibleForTesting; import androidx.annotation.VisibleForTesting;
import org.chromium.base.ApplicationState;
import org.chromium.base.ApplicationStatus;
import org.chromium.base.ApplicationStatus.ApplicationStateListener;
import org.chromium.base.ThreadUtils; import org.chromium.base.ThreadUtils;
import org.chromium.base.TraceEvent; import org.chromium.base.TraceEvent;
import org.chromium.chrome.browser.signin.IdentityServicesProvider; import org.chromium.chrome.browser.signin.IdentityServicesProvider;
import org.chromium.chrome.browser.signin.SigninHelper;
import org.chromium.chrome.browser.signin.SigninManager; import org.chromium.chrome.browser.signin.SigninManager;
import org.chromium.chrome.browser.signin.SigninPreferencesManager;
import org.chromium.chrome.browser.sync.SyncController;
import org.chromium.components.signin.ChromeSigninController; import org.chromium.components.signin.ChromeSigninController;
import org.chromium.components.signin.metrics.SignoutReason; import org.chromium.components.signin.metrics.SignoutReason;
...@@ -34,8 +28,7 @@ import org.chromium.components.signin.metrics.SignoutReason; ...@@ -34,8 +28,7 @@ import org.chromium.components.signin.metrics.SignoutReason;
* The object must be created on the main thread. * The object must be created on the main thread.
* <p/> * <p/>
*/ */
public class GoogleServicesManager implements ApplicationStateListener { public class GoogleServicesManager {
private static final String TAG = "GoogleServicesManager"; private static final String TAG = "GoogleServicesManager";
@VisibleForTesting @VisibleForTesting
...@@ -76,31 +69,6 @@ public class GoogleServicesManager implements ApplicationStateListener { ...@@ -76,31 +69,6 @@ public class GoogleServicesManager implements ApplicationStateListener {
// 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);
} }
// Initialize sync.
SyncController.get();
ApplicationStatus.registerApplicationStateListener(this);
}
}
/**
* Called once during initialization and then again for every start (warm-start).
* Responsible for checking if configuration has changed since Chrome was last launched
* and updates state accordingly.
*/
public void onMainActivityStart() {
try (TraceEvent ignored = TraceEvent.scoped("GoogleServicesManager.onMainActivityStart")) {
boolean accountsChanged =
SigninPreferencesManager.getInstance().checkAndClearAccountsChangedPref();
SigninHelper.get().validateAccountSettings(accountsChanged);
}
}
@Override
public void onApplicationStateChange(int newState) {
if (newState == ApplicationState.HAS_RUNNING_ACTIVITIES) {
onMainActivityStart();
} }
} }
} }
...@@ -8,19 +8,22 @@ import android.accounts.Account; ...@@ -8,19 +8,22 @@ import android.accounts.Account;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.content.Context; import android.content.Context;
import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting; import androidx.annotation.VisibleForTesting;
import com.google.android.gms.auth.AccountChangeEvent; import com.google.android.gms.auth.AccountChangeEvent;
import com.google.android.gms.auth.GoogleAuthException; import com.google.android.gms.auth.GoogleAuthException;
import com.google.android.gms.auth.GoogleAuthUtil; import com.google.android.gms.auth.GoogleAuthUtil;
import org.chromium.base.ApplicationState;
import org.chromium.base.ApplicationStatus;
import org.chromium.base.ContextUtils; import org.chromium.base.ContextUtils;
import org.chromium.base.Log; import org.chromium.base.Log;
import org.chromium.base.TraceEvent;
import org.chromium.base.task.AsyncTask; import org.chromium.base.task.AsyncTask;
import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.services.GoogleServicesManager;
import org.chromium.chrome.browser.signin.SigninManager.SignInCallback; import org.chromium.chrome.browser.signin.SigninManager.SignInCallback;
import org.chromium.chrome.browser.sync.ProfileSyncService; import org.chromium.chrome.browser.sync.SyncController;
import org.chromium.components.signin.AccountManagerFacadeProvider; import org.chromium.components.signin.AccountManagerFacadeProvider;
import org.chromium.components.signin.AccountTrackerService; import org.chromium.components.signin.AccountTrackerService;
import org.chromium.components.signin.AccountUtils; import org.chromium.components.signin.AccountUtils;
...@@ -38,8 +41,7 @@ import java.util.List; ...@@ -38,8 +41,7 @@ import java.util.List;
* *
* This should be merged into SigninManager when it is upstreamed. * This should be merged into SigninManager when it is upstreamed.
*/ */
public class SigninHelper { public class SigninHelper implements ApplicationStatus.ApplicationStateListener {
private static final String TAG = "SigninHelper"; private static final String TAG = "SigninHelper";
private static final Object LOCK = new Object(); private static final Object LOCK = new Object();
...@@ -84,8 +86,6 @@ public class SigninHelper { ...@@ -84,8 +86,6 @@ public class SigninHelper {
} }
} }
@Nullable private final ProfileSyncService mProfileSyncService;
private final SigninManager mSigninManager; private final SigninManager mSigninManager;
private final AccountTrackerService mAccountTrackerService; private final AccountTrackerService mAccountTrackerService;
...@@ -102,11 +102,18 @@ public class SigninHelper { ...@@ -102,11 +102,18 @@ public class SigninHelper {
} }
private SigninHelper() { private SigninHelper() {
mProfileSyncService = ProfileSyncService.get(); // Initialize sync.
SyncController.get();
Profile profile = Profile.getLastUsedRegularProfile(); Profile profile = Profile.getLastUsedRegularProfile();
mSigninManager = IdentityServicesProvider.get().getSigninManager(profile); mSigninManager = IdentityServicesProvider.get().getSigninManager(profile);
mAccountTrackerService = IdentityServicesProvider.get().getAccountTrackerService(profile); mAccountTrackerService = IdentityServicesProvider.get().getAccountTrackerService(profile);
mPrefsManager = SigninPreferencesManager.getInstance(); mPrefsManager = SigninPreferencesManager.getInstance();
// TODO(https://crbug.com/1107942): Remove this after removing GoogleServicesManager.
GoogleServicesManager.get();
ApplicationStatus.registerApplicationStateListener(this);
} }
public void validateAccountSettings(boolean accountsChanged) { public void validateAccountSettings(boolean accountsChanged) {
...@@ -273,4 +280,24 @@ public class SigninHelper { ...@@ -273,4 +280,24 @@ public class SigninHelper {
prefsManager.setLastAccountChangedEventIndex(newIndex); prefsManager.setLastAccountChangedEventIndex(newIndex);
} }
} }
/**
* Called once during initialization and then again for every start (warm-start).
* Responsible for checking if configuration has changed since Chrome was last launched
* and updates state accordingly.
*/
public void onMainActivityStart() {
try (TraceEvent ignored = TraceEvent.scoped("SigninHelper.onMainActivityStart")) {
boolean accountsChanged =
SigninPreferencesManager.getInstance().checkAndClearAccountsChangedPref();
validateAccountSettings(accountsChanged);
}
}
@Override
public void onApplicationStateChange(int newState) {
if (newState == ApplicationState.HAS_RUNNING_ACTIVITIES) {
onMainActivityStart();
}
}
} }
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