| Index: chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
|
| deleted file mode 100644
|
| index a8e29abae58639bc3763efa8bf4032e475a4c155..0000000000000000000000000000000000000000
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
|
| +++ /dev/null
|
| @@ -1,226 +0,0 @@
|
| -// Copyright 2016 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.
|
| -
|
| -package org.chromium.chrome.browser.init;
|
| -
|
| -import android.app.Activity;
|
| -import android.content.Context;
|
| -import android.content.Intent;
|
| -import android.view.View;
|
| -
|
| -import com.google.ipc.invalidation.external.client.android.service.AndroidLogger;
|
| -
|
| -import org.chromium.base.CommandLine;
|
| -import org.chromium.base.ContextUtils;
|
| -import org.chromium.base.Log;
|
| -import org.chromium.base.ThreadUtils;
|
| -import org.chromium.chrome.browser.ChromeApplication;
|
| -import org.chromium.chrome.browser.DeferredStartupHandler;
|
| -import org.chromium.chrome.browser.DevToolsServer;
|
| -import org.chromium.chrome.browser.download.DownloadController;
|
| -import org.chromium.chrome.browser.download.DownloadManagerService;
|
| -import org.chromium.chrome.browser.firstrun.ForcedSigninProcessor;
|
| -import org.chromium.chrome.browser.identity.UniqueIdentificationGeneratorFactory;
|
| -import org.chromium.chrome.browser.identity.UuidBasedUniqueIdentificationGenerator;
|
| -import org.chromium.chrome.browser.invalidation.UniqueIdInvalidationClientNameGenerator;
|
| -import org.chromium.chrome.browser.multiwindow.MultiWindowUtils;
|
| -import org.chromium.chrome.browser.rlz.RevenueStats;
|
| -import org.chromium.chrome.browser.services.AccountsChangedReceiver;
|
| -import org.chromium.chrome.browser.services.GoogleServicesManager;
|
| -import org.chromium.chrome.browser.sync.SyncController;
|
| -import org.chromium.components.sync.signin.AccountManagerHelper;
|
| -import org.chromium.content.common.ContentSwitches;
|
| -import org.chromium.ui.UiUtils;
|
| -
|
| -/**
|
| - * Handles the initialization dependences of the browser process. This is meant to handle the
|
| - * initialization that is not tied to any particular Activity, and the logic that should only be
|
| - * triggered a single time for the lifetime of the browser process.
|
| - */
|
| -public class ProcessInitializationHandler {
|
| -
|
| - private static final String SESSIONS_UUID_PREF_KEY = "chromium.sync.sessions.id";
|
| - private static final String DEV_TOOLS_SERVER_SOCKET_PREFIX = "chrome";
|
| -
|
| - private static Class<? extends ProcessInitializationHandler> sHandlerClassOverride;
|
| - private static ProcessInitializationHandler sInstance;
|
| -
|
| - private boolean mInitializedPreNative;
|
| - private boolean mInitializedDeferredStartupTasks;
|
| - private DevToolsServer mDevToolsServer;
|
| -
|
| - /**
|
| - * Overrides the type of ProcessInitializationHandler to be created.
|
| - * <p>
|
| - * This must be called before {@link #getInstance()} is triggered.
|
| - *
|
| - * @param classOverride The ProcessInitializationHandler class type to be created instead of
|
| - * the default.
|
| - */
|
| - public static void setProcessInitializationHandlerType(
|
| - Class<? extends ProcessInitializationHandler> classOverride) {
|
| - if (sInstance != null) {
|
| - throw new IllegalStateException("Browser delegate override set after initialized");
|
| - }
|
| - sHandlerClassOverride = classOverride;
|
| - }
|
| -
|
| - /**
|
| - * @return The ProcessInitializationHandler for use during the lifetime of the browser process.
|
| - */
|
| - public static ProcessInitializationHandler getInstance() {
|
| - ThreadUtils.assertOnUiThread();
|
| - if (sInstance == null) {
|
| - if (sHandlerClassOverride != null) {
|
| - try {
|
| - sInstance = sHandlerClassOverride.newInstance();
|
| - } catch (InstantiationException | IllegalAccessException e) {
|
| - assert false : "Unable to instantiate ProcessInitializationHandler override.";
|
| - }
|
| - }
|
| - if (sInstance == null) sInstance = new ProcessInitializationHandler();
|
| - }
|
| - return sInstance;
|
| - }
|
| -
|
| - /**
|
| - * Constructor exposed to allow overriding.
|
| - */
|
| - protected ProcessInitializationHandler() {}
|
| -
|
| - /**
|
| - * Initializes the any dependencies that must occur before native library has been loaded.
|
| - * <p>
|
| - * Adding anything expensive to this must be avoided as it would delay the Chrome startup path.
|
| - * <p>
|
| - * All entry points that do not rely on {@link ChromeBrowserInitializer} must call this on
|
| - * startup.
|
| - */
|
| - public final void initializePreNative() {
|
| - ThreadUtils.assertOnUiThread();
|
| - if (mInitializedPreNative) return;
|
| - mInitializedPreNative = true;
|
| - handlePreNativeInitialization();
|
| - }
|
| -
|
| - /**
|
| - * Performs the shared class initialization.
|
| - */
|
| - protected void handlePreNativeInitialization() {
|
| - ChromeApplication application = (ChromeApplication) ContextUtils.getApplicationContext();
|
| -
|
| - UiUtils.setKeyboardShowingDelegate(new UiUtils.KeyboardShowingDelegate() {
|
| - @Override
|
| - public boolean disableKeyboardCheck(Context context, View view) {
|
| - Activity activity = null;
|
| - if (context instanceof Activity) {
|
| - activity = (Activity) context;
|
| - } else if (view != null && view.getContext() instanceof Activity) {
|
| - activity = (Activity) view.getContext();
|
| - }
|
| -
|
| - // For multiwindow mode we do not track keyboard visibility.
|
| - return activity != null
|
| - && MultiWindowUtils.getInstance().isLegacyMultiWindow(activity);
|
| - }
|
| - });
|
| -
|
| - // Initialize the AccountManagerHelper with the correct AccountManagerDelegate. Must be done
|
| - // only once and before AccountMangerHelper.get(...) is called to avoid using the
|
| - // default AccountManagerDelegate.
|
| - AccountManagerHelper.initializeAccountManagerHelper(
|
| - application, application.createAccountManagerDelegate());
|
| -
|
| - // Set the unique identification generator for invalidations. The
|
| - // invalidations system can start and attempt to fetch the client ID
|
| - // very early. We need this generator to be ready before that happens.
|
| - UniqueIdInvalidationClientNameGenerator.doInitializeAndInstallGenerator(application);
|
| -
|
| - // Set minimum Tango log level. This sets an in-memory static field, and needs to be
|
| - // set in the ApplicationContext instead of an activity, since Tango can be woken up
|
| - // by the system directly though messages from GCM.
|
| - AndroidLogger.setMinimumAndroidLogLevel(Log.WARN);
|
| -
|
| - // Set up the identification generator for sync. The ID is actually generated
|
| - // in the SyncController constructor.
|
| - UniqueIdentificationGeneratorFactory.registerGenerator(SyncController.GENERATOR_ID,
|
| - new UuidBasedUniqueIdentificationGenerator(
|
| - application, SESSIONS_UUID_PREF_KEY), false);
|
| - }
|
| -
|
| - /**
|
| - * Initializes the deferred startup tasks that should only be triggered once per browser process
|
| - * lifetime.
|
| - */
|
| - public final void initializeDeferredStartupTasks() {
|
| - ThreadUtils.assertOnUiThread();
|
| - if (mInitializedDeferredStartupTasks) return;
|
| - mInitializedDeferredStartupTasks = true;
|
| - handleDeferredStartupTasksInitialization();
|
| - }
|
| -
|
| - /**
|
| - * Performs the deferred startup task initialization.
|
| - */
|
| - protected void handleDeferredStartupTasksInitialization() {
|
| - final ChromeApplication application =
|
| - (ChromeApplication) ContextUtils.getApplicationContext();
|
| -
|
| - DeferredStartupHandler.getInstance().addDeferredTask(new Runnable() {
|
| - @Override
|
| - public void run() {
|
| - ForcedSigninProcessor.start(application);
|
| - AccountsChangedReceiver.addObserver(
|
| - new AccountsChangedReceiver.AccountsChangedObserver() {
|
| - @Override
|
| - public void onAccountsChanged(Context context, Intent intent) {
|
| - ThreadUtils.runOnUiThread(new Runnable() {
|
| - @Override
|
| - public void run() {
|
| - ForcedSigninProcessor.start(application);
|
| - }
|
| - });
|
| - }
|
| - });
|
| - }
|
| - });
|
| -
|
| - DeferredStartupHandler.getInstance().addDeferredTask(new Runnable() {
|
| - @Override
|
| - public void run() {
|
| - GoogleServicesManager.get(application).onMainActivityStart();
|
| - RevenueStats.getInstance();
|
| - }
|
| - });
|
| -
|
| - DeferredStartupHandler.getInstance().addDeferredTask(new Runnable() {
|
| - @Override
|
| - public void run() {
|
| - mDevToolsServer = new DevToolsServer(DEV_TOOLS_SERVER_SOCKET_PREFIX);
|
| - mDevToolsServer.setRemoteDebuggingEnabled(
|
| - true, DevToolsServer.Security.ALLOW_DEBUG_PERMISSION);
|
| -
|
| - startApplicationActivityTracker();
|
| - }
|
| - });
|
| -
|
| - DeferredStartupHandler.getInstance().addDeferredTask(new Runnable() {
|
| - @Override
|
| - public void run() {
|
| - // Add process check to diagnose http://crbug.com/606309. Remove this after the bug
|
| - // is fixed.
|
| - assert !CommandLine.getInstance().hasSwitch(ContentSwitches.SWITCH_PROCESS_TYPE);
|
| - if (!CommandLine.getInstance().hasSwitch(ContentSwitches.SWITCH_PROCESS_TYPE)) {
|
| - DownloadController.setDownloadNotificationService(
|
| - DownloadManagerService.getDownloadManagerService(application));
|
| - }
|
| - }
|
| - });
|
| - }
|
| -
|
| - /**
|
| - * Initializes activity logging.
|
| - */
|
| - protected void startApplicationActivityTracker() {}
|
| -}
|
|
|