Index: chrome/android/java/src/org/chromium/chrome/browser/ChromeApplication.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeApplication.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeApplication.java |
index 4b12c62147959447a43bc558850e985ad77e00ad..11b2a139c2e23f5ee690011d25466a6b5e9dbeb4 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeApplication.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeApplication.java |
@@ -25,6 +25,7 @@ import org.chromium.base.ApplicationState; |
import org.chromium.base.ApplicationStatus; |
import org.chromium.base.ApplicationStatus.ApplicationStateListener; |
import org.chromium.base.BuildInfo; |
+import org.chromium.base.CommandLine; |
import org.chromium.base.CommandLineInitUtil; |
import org.chromium.base.PathUtils; |
import org.chromium.base.ResourceExtractor; |
@@ -65,6 +66,7 @@ import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomiza |
import org.chromium.chrome.browser.physicalweb.PhysicalWebBleClient; |
import org.chromium.chrome.browser.policy.PolicyAuditor; |
import org.chromium.chrome.browser.preferences.AccessibilityPreferences; |
+import org.chromium.chrome.browser.preferences.ChromePreferenceManager; |
import org.chromium.chrome.browser.preferences.LocationSettings; |
import org.chromium.chrome.browser.preferences.PrefServiceBridge; |
import org.chromium.chrome.browser.preferences.Preferences; |
@@ -124,6 +126,7 @@ public class ChromeApplication extends ContentApplication { |
private static final String DEV_TOOLS_SERVER_SOCKET_PREFIX = "chrome"; |
private static final String SESSIONS_UUID_PREF_KEY = "chromium.sync.sessions.id"; |
+ private static boolean sIsFinishedCachingNativeFlags; |
private static DocumentTabModelSelector sDocumentTabModelSelector; |
/** |
@@ -248,6 +251,7 @@ public class ChromeApplication extends ContentApplication { |
assert mIsProcessInitialized; |
onForegroundSessionStart(); |
+ cacheNativeFlags(); |
} |
/** |
@@ -849,4 +853,18 @@ public class ChromeApplication extends ContentApplication { |
PrefServiceBridge.getInstance().setPasswordEchoEnabled(systemEnabled); |
} |
+ |
+ /** |
+ * Caches flags that are needed by Activities that launch before the native library is loaded |
+ * and stores them in SharedPreferences. Because of when this function is called, the browser |
Ian Wen
2016/02/02 01:24:37
Remove "of"?
gone
2016/02/02 01:59:42
Reworded it.
|
+ * will need to be restarted before they take effect. |
+ */ |
+ private void cacheNativeFlags() { |
+ if (sIsFinishedCachingNativeFlags) return; |
+ |
+ boolean isHerbEnabled = |
+ CommandLine.getInstance().hasSwitch(ChromeSwitches.ENABLE_HERB_PROTOTYPE); |
+ ChromePreferenceManager.getInstance(this).setIsHerbEnabled(isHerbEnabled); |
+ sIsFinishedCachingNativeFlags = true; |
+ } |
} |