package us.costan.chrome.impl; import org.chromium.android_webview.AwBrowserProcess; import org.chromium.android_webview.AwResource; import org.chromium.content.browser.ResourceExtractor; import org.chromium.content.common.CommandLine; import us.costan.chrome.ChromeView; import android.content.Context; /** * Chromium setup chores. */ public class ChromeInitializer { private static final String[] MANDATORY_PAKS = { "webviewchromium.pak" }; /** * The entry point to the initialization process. * * This is called by {@link ChromeView#initialize(Context)}. * * @param context Android context for the application using ChromeView */ public static void initialize(Context context) { if (initializeCalled_) { return; } initializeCalled_ = true; // Initialization lifted from // chromium/src/android_webview/test/shell/src/org/chromium/android_webview/shell/AwShellResourceProvider AwResource.setResources(context.getResources()); AwResource.RAW_LOAD_ERROR = us.costan.chrome.R.raw.blank_html; AwResource.RAW_NO_DOMAIN = us.costan.chrome.R.raw.blank_html; AwResource.STRING_DEFAULT_TEXT_ENCODING = us.costan.chrome.R.string.default_encoding; // Initialization lifted from // chromium/src/android_webview/test/shell/src/org/chromium/android_webview/shell/AwShellApplication CommandLine.initFromFile("/data/local/chrome-command-line"); ResourceExtractor.setMandatoryPaksToExtract(MANDATORY_PAKS); ResourceExtractor.setExtractImplicitLocaleForTesting(false); AwBrowserProcess.loadLibrary(); AwBrowserProcess.start(context); } /** Ensures that initialize() is only called once. */ private static boolean initializeCalled_ = false; }