Commit bcf1404d authored by tedchoc's avatar tedchoc Committed by Commit bot

Fix AccountManagerHelper assert access from FRE.

FRE was made to lazily load the libraries, but it attempts
to access the AccountManagerHelper before it has been
fully initialized.  To avoid this, use ChromeBrowserInitializer
to the pre native initialization early, which will call into:
ProcessInitializationHandler#handlePreNativeInitialization, which
does AccountManagerHelper.initializeAccountManagerHelper.

BUG=

Review-Url: https://codereview.chromium.org/2610173002
Cr-Commit-Position: refs/heads/master@{#441419}
parent 6613efc1
...@@ -24,6 +24,7 @@ import org.chromium.chrome.browser.customtabs.CustomTabActivity; ...@@ -24,6 +24,7 @@ import org.chromium.chrome.browser.customtabs.CustomTabActivity;
import org.chromium.chrome.browser.customtabs.CustomTabsConnection; import org.chromium.chrome.browser.customtabs.CustomTabsConnection;
import org.chromium.chrome.browser.document.ChromeLauncherActivity; import org.chromium.chrome.browser.document.ChromeLauncherActivity;
import org.chromium.chrome.browser.init.ChromeBrowserInitializer; import org.chromium.chrome.browser.init.ChromeBrowserInitializer;
import org.chromium.chrome.browser.init.EmptyBrowserParts;
import org.chromium.chrome.browser.metrics.UmaUtils; import org.chromium.chrome.browser.metrics.UmaUtils;
import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings; import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings;
import org.chromium.chrome.browser.preferences.datareduction.DataReductionPromoUtils; import org.chromium.chrome.browser.preferences.datareduction.DataReductionPromoUtils;
...@@ -173,6 +174,8 @@ public class FirstRunActivity extends AppCompatActivity implements FirstRunPageD ...@@ -173,6 +174,8 @@ public class FirstRunActivity extends AppCompatActivity implements FirstRunPageD
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
ChromeBrowserInitializer.getInstance(this).handlePreNativeStartup(new EmptyBrowserParts());
if (savedInstanceState != null) { if (savedInstanceState != null) {
mFreProperties = savedInstanceState; mFreProperties = savedInstanceState;
} else if (getIntent() != null) { } else if (getIntent() != null) {
...@@ -513,7 +516,8 @@ public class FirstRunActivity extends AppCompatActivity implements FirstRunPageD ...@@ -513,7 +516,8 @@ public class FirstRunActivity extends AppCompatActivity implements FirstRunPageD
private void ensureBrowserProcessInitialized() { private void ensureBrowserProcessInitialized() {
if (mNativeSideIsInitialized) return; if (mNativeSideIsInitialized) return;
try { try {
ChromeBrowserInitializer.getInstance(this).handleSynchronousStartup(); ChromeBrowserInitializer.getInstance(this).handlePostNativeStartup(
false, new EmptyBrowserParts());
mNativeSideIsInitialized = true; mNativeSideIsInitialized = true;
} catch (ProcessInitException e) { } catch (ProcessInitException e) {
Log.e(TAG, "Unable to load native library.", e); Log.e(TAG, "Unable to load native library.", e);
......
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