// Copyright 2015 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; /** * Interface that any {@link AsyncInitializationActivity} can use to interact with this delegate * during start up. Functions called by * {@link ChromeBrowserInitializer#handlePreNativeStartup(BrowserParts)} are called in the order * they are listed. */ public interface BrowserParts { /** * Called during {@link ChromeBrowserInitializer#handlePreNativeStartup(BrowserParts)}. * This should consist of java only calls that will not take too much time. */ void preInflationStartup(); /** * Called during {@link ChromeBrowserInitializer#handlePreNativeStartup(BrowserParts)}. * It should include a call to setContentView and also should start loading libraries using * {@link NativeInitializationController#startBackgroundTasks()} */ void setContentViewAndLoadLibrary(); /** * Called during {@link ChromeBrowserInitializer#handlePreNativeStartup(BrowserParts)}. * Early setup after the view hierarchy has been inflated and the background tasks has been * initialized. No native calls. */ void postInflationStartup(); /** * Called during {@link ChromeBrowserInitializer#handlePostNativeStartup(BrowserParts)}. * Optionaly preconnect to the URL specified in the launch intent, if any. The * preconnection is done asynchronously in the native library. */ void maybePreconnect(); /** * Called during {@link ChromeBrowserInitializer#handlePostNativeStartup(BrowserParts)}. * Initialize the compositor related classes. */ void initializeCompositor(); /** * Called during {@link ChromeBrowserInitializer#handlePostNativeStartup(BrowserParts)}. * Initialize the tab state restoring tabs or creating new tabs. */ void initializeState(); /** * Called during {@link ChromeBrowserInitializer#handlePostNativeStartup(BrowserParts)}. * Carry out remaining activity specific tasks for initialization */ void finishNativeInitialization(); /** * Called during {@link ChromeBrowserInitializer#handlePostNativeStartup(BrowserParts)} if * there was an error during startup. */ void onStartupFailure(); /** * @return Whether the activity this delegate represents has been destoyed. */ boolean isActivityDestroyed(); /** * @return Whether the activity is marked itself to be closed. */ boolean isActivityFinishing(); /** * @return Whether GPU process needs to be started during the startup. */ boolean shouldStartGpuProcess(); }