Commit 9444ce26 authored by Xi Han's avatar Xi Han Committed by Commit Bot

[Instant Start] Cache more features used before native is initialized.

In this CL, we cache more tab switcher related features in the
CachedFeatureFlags, so they can be checked before native is initialized.

Bug: 1041865
Change-Id: I93f196e722964d712a102831bb5cf6ea9b2b54a6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2038717Reviewed-by: default avatarWei-Yin Chen (陳威尹) <wychen@chromium.org>
Reviewed-by: default avatarTheresa  <twellington@chromium.org>
Reviewed-by: default avatarHenrique Nakashima <hnakashima@chromium.org>
Commit-Queue: Xi Han <hanxi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#749393}
parent 6f3e5562
...@@ -12,7 +12,6 @@ import android.graphics.Rect; ...@@ -12,7 +12,6 @@ import android.graphics.Rect;
import android.graphics.RectF; import android.graphics.RectF;
import android.os.Handler; import android.os.Handler;
import android.os.SystemClock; import android.os.SystemClock;
import android.text.TextUtils;
import androidx.annotation.VisibleForTesting; import androidx.annotation.VisibleForTesting;
...@@ -33,6 +32,7 @@ import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager; ...@@ -33,6 +32,7 @@ import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager;
import org.chromium.chrome.browser.compositor.layouts.eventfilter.EventFilter; import org.chromium.chrome.browser.compositor.layouts.eventfilter.EventFilter;
import org.chromium.chrome.browser.compositor.scene_layer.SceneLayer; import org.chromium.chrome.browser.compositor.scene_layer.SceneLayer;
import org.chromium.chrome.browser.compositor.scene_layer.TabListSceneLayer; import org.chromium.chrome.browser.compositor.scene_layer.TabListSceneLayer;
import org.chromium.chrome.browser.flags.CachedFeatureFlags;
import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.fullscreen.ChromeFullscreenManager; import org.chromium.chrome.browser.fullscreen.ChromeFullscreenManager;
import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.Tab;
...@@ -60,10 +60,6 @@ public class StartSurfaceLayout extends Layout implements StartSurface.OverviewM ...@@ -60,10 +60,6 @@ public class StartSurfaceLayout extends Layout implements StartSurface.OverviewM
public static final long ZOOMING_DURATION = 300; public static final long ZOOMING_DURATION = 300;
private static final int BACKGROUND_FADING_DURATION_MS = 150; private static final int BACKGROUND_FADING_DURATION_MS = 150;
// Field trial parameter for whether skipping slow zooming animation.
private static final String SKIP_SLOW_ZOOMING_PARAM = "skip-slow-zooming";
private static final boolean DEFAULT_SKIP_SLOW_ZOOMING = true;
// The transition animation from a tab to the tab switcher. // The transition animation from a tab to the tab switcher.
private AnimatorSet mTabToSwitcherAnimation; private AnimatorSet mTabToSwitcherAnimation;
private boolean mIsAnimating; private boolean mIsAnimating;
...@@ -176,8 +172,10 @@ public class StartSurfaceLayout extends Layout implements StartSurface.OverviewM ...@@ -176,8 +172,10 @@ public class StartSurfaceLayout extends Layout implements StartSurface.OverviewM
boolean showShrinkingAnimation = animate && TabFeatureUtilities.isTabToGtsAnimationEnabled() boolean showShrinkingAnimation = animate && TabFeatureUtilities.isTabToGtsAnimationEnabled()
&& !isCurrentTabModelEmpty; && !isCurrentTabModelEmpty;
boolean quick = mTabListDelegate.prepareOverview(); boolean quick = mTabListDelegate.prepareOverview();
Log.d(TAG, "SkipSlowZooming = " + getSkipSlowZooming()); boolean skipSlowZooming =
if (getSkipSlowZooming()) { CachedFeatureFlags.getValue(TabUiFeatureUtilities.SKIP_SLOW_ZOOMING);
Log.d(TAG, "SkipSlowZooming = " + skipSlowZooming);
if (skipSlowZooming) {
showShrinkingAnimation &= quick; showShrinkingAnimation &= quick;
} }
...@@ -448,13 +446,6 @@ public class StartSurfaceLayout extends Layout implements StartSurface.OverviewM ...@@ -448,13 +446,6 @@ public class StartSurfaceLayout extends Layout implements StartSurface.OverviewM
} }
} }
private boolean getSkipSlowZooming() {
String skip = ChromeFeatureList.getFieldTrialParamByFeature(
ChromeFeatureList.TAB_TO_GTS_ANIMATION, SKIP_SLOW_ZOOMING_PARAM);
if (TextUtils.equals(skip, "")) return DEFAULT_SKIP_SLOW_ZOOMING;
return Boolean.valueOf(skip);
}
@Override @Override
protected void updateSceneLayer(RectF viewport, RectF contentViewport, protected void updateSceneLayer(RectF viewport, RectF contentViewport,
LayerTitleCache layerTitleCache, TabContentManager tabContentManager, LayerTitleCache layerTitleCache, TabContentManager tabContentManager,
......
...@@ -16,6 +16,7 @@ import static org.chromium.chrome.browser.tasks.tab_management.TabListContainerP ...@@ -16,6 +16,7 @@ import static org.chromium.chrome.browser.tasks.tab_management.TabListContainerP
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.os.Handler; import android.os.Handler;
import android.os.SystemClock; import android.os.SystemClock;
import android.text.TextUtils;
import android.view.ViewGroup; import android.view.ViewGroup;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
...@@ -30,6 +31,7 @@ import org.chromium.base.metrics.RecordUserAction; ...@@ -30,6 +31,7 @@ import org.chromium.base.metrics.RecordUserAction;
import org.chromium.base.task.PostTask; import org.chromium.base.task.PostTask;
import org.chromium.chrome.browser.compositor.layouts.LayoutManager; import org.chromium.chrome.browser.compositor.layouts.LayoutManager;
import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager; import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager;
import org.chromium.chrome.browser.flags.CachedFeatureFlags;
import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.fullscreen.ChromeFullscreenManager; import org.chromium.chrome.browser.fullscreen.ChromeFullscreenManager;
import org.chromium.chrome.browser.fullscreen.FullscreenManager; import org.chromium.chrome.browser.fullscreen.FullscreenManager;
...@@ -614,9 +616,9 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView ...@@ -614,9 +616,9 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView
* @return whether tabs should show in MRU order * @return whether tabs should show in MRU order
*/ */
static boolean isShowingTabsInMRUOrder() { static boolean isShowingTabsInMRUOrder() {
String feature = ChromeFeatureList.getFieldTrialParamByFeature( String feature =
ChromeFeatureList.START_SURFACE_ANDROID, "start_surface_variation"); CachedFeatureFlags.getValue(StartSurfaceConfiguration.START_SURFACE_VARIATION);
return feature.equals("twopanes"); return TextUtils.equals(feature, "twopanes");
} }
/** /**
......
...@@ -4,13 +4,18 @@ ...@@ -4,13 +4,18 @@
package org.chromium.chrome.browser.tasks.tab_management; package org.chromium.chrome.browser.tasks.tab_management;
import android.text.TextUtils;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting; import androidx.annotation.VisibleForTesting;
import org.chromium.base.ContextUtils; import org.chromium.base.ContextUtils;
import org.chromium.chrome.browser.device.DeviceClassManager; import org.chromium.chrome.browser.device.DeviceClassManager;
import org.chromium.chrome.browser.flags.BooleanCachedFieldTrialParameter;
import org.chromium.chrome.browser.flags.CachedFeatureFlags; import org.chromium.chrome.browser.flags.CachedFeatureFlags;
import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.flags.DoubleCachedFieldTrialParameter;
import org.chromium.chrome.browser.flags.StringCachedFieldTrialParameter;
import org.chromium.chrome.features.start_surface.StartSurfaceConfiguration; import org.chromium.chrome.features.start_surface.StartSurfaceConfiguration;
import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.base.DeviceFormFactor;
...@@ -22,6 +27,23 @@ import java.util.List; ...@@ -22,6 +27,23 @@ import java.util.List;
* A class to handle the state of flags for tab_management. * A class to handle the state of flags for tab_management.
*/ */
public class TabUiFeatureUtilities { public class TabUiFeatureUtilities {
// Field trial parameters:
public static final String SKIP_SLOW_ZOOMING_PARAM = "skip-slow-zooming";
public static final BooleanCachedFieldTrialParameter SKIP_SLOW_ZOOMING =
new BooleanCachedFieldTrialParameter(
ChromeFeatureList.TAB_TO_GTS_ANIMATION, SKIP_SLOW_ZOOMING_PARAM, true);
public static final String TAB_GRID_LAYOUT_ANDROID_NEW_TAB_TILE_PARAM =
"tab_grid_layout_android_new_tab_tile";
public static final StringCachedFieldTrialParameter TAB_GRID_LAYOUT_ANDROID_NEW_TAB_TILE =
new StringCachedFieldTrialParameter(ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID,
TAB_GRID_LAYOUT_ANDROID_NEW_TAB_TILE_PARAM, "");
public static final String THUMBNAIL_ASPECT_RATIO_PARAM = "thumbnail_aspect_ratio";
public static final DoubleCachedFieldTrialParameter THUMBNAIL_ASPECT_RATIO =
new DoubleCachedFieldTrialParameter(
ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID, THUMBNAIL_ASPECT_RATIO_PARAM, 1.0);
private static Boolean sSearchTermChipEnabledForTesting; private static Boolean sSearchTermChipEnabledForTesting;
private static Boolean sTabManagementModuleSupportedForTesting; private static Boolean sTabManagementModuleSupportedForTesting;
private static Double sTabThumbnailAspectRatioForTesting; private static Double sTabThumbnailAspectRatioForTesting;
...@@ -123,13 +145,17 @@ public class TabUiFeatureUtilities { ...@@ -123,13 +145,17 @@ public class TabUiFeatureUtilities {
if (sTabThumbnailAspectRatioForTesting != null) { if (sTabThumbnailAspectRatioForTesting != null) {
aspectRatio = sTabThumbnailAspectRatioForTesting; aspectRatio = sTabThumbnailAspectRatioForTesting;
} else { } else {
aspectRatio = ChromeFeatureList.getFieldTrialParamByFeatureAsDouble( aspectRatio = CachedFeatureFlags.getValue(THUMBNAIL_ASPECT_RATIO);
ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID, "thumbnail_aspect_ratio", 1.0);
} }
return Double.compare(1.0, aspectRatio) != 0; return Double.compare(1.0, aspectRatio) != 0;
} }
public static boolean isTabGridLayoutAndroidNewTabTileEnabled() {
return TextUtils.equals(
CachedFeatureFlags.getValue(TAB_GRID_LAYOUT_ANDROID_NEW_TAB_TILE), "NewTabTile");
}
@VisibleForTesting @VisibleForTesting
public static void setTabThumbnailAspectRatioForTesting(Double value) { public static void setTabThumbnailAspectRatioForTesting(Double value) {
sTabThumbnailAspectRatioForTesting = value; sTabThumbnailAspectRatioForTesting = value;
......
...@@ -9,6 +9,7 @@ import org.chromium.chrome.browser.firstrun.FirstRunUtils; ...@@ -9,6 +9,7 @@ import org.chromium.chrome.browser.firstrun.FirstRunUtils;
import org.chromium.chrome.browser.flags.CachedFeatureFlags; import org.chromium.chrome.browser.flags.CachedFeatureFlags;
import org.chromium.chrome.browser.flags.CachedFieldTrialParameter; import org.chromium.chrome.browser.flags.CachedFieldTrialParameter;
import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.tab.TabFeatureUtilities;
import org.chromium.chrome.browser.tasks.tab_management.TabUiFeatureUtilities; import org.chromium.chrome.browser.tasks.tab_management.TabUiFeatureUtilities;
import org.chromium.chrome.browser.toolbar.bottom.BottomToolbarVariationManager; import org.chromium.chrome.browser.toolbar.bottom.BottomToolbarVariationManager;
import org.chromium.chrome.features.start_surface.StartSurfaceConfiguration; import org.chromium.chrome.features.start_surface.StartSurfaceConfiguration;
...@@ -40,24 +41,41 @@ public class ChromeCachedFlags { ...@@ -40,24 +41,41 @@ public class ChromeCachedFlags {
if (mIsFinishedCachingNativeFlags) return; if (mIsFinishedCachingNativeFlags) return;
FirstRunUtils.cacheFirstRunPrefs(); FirstRunUtils.cacheFirstRunPrefs();
List<String> featuresToCache = Arrays.asList(ChromeFeatureList.HOMEPAGE_LOCATION_POLICY, // clang-format off
ChromeFeatureList.COMMAND_LINE_ON_NON_ROOTED, ChromeFeatureList.CHROME_DUET, List<String> featuresToCache = Arrays.asList(
ChromeFeatureList.CHROME_DUET_ADAPTIVE, ChromeFeatureList.CHROME_DUET_LABELED,
ChromeFeatureList.COMMAND_LINE_ON_NON_ROOTED,
ChromeFeatureList.CHROME_DUET,
ChromeFeatureList.CHROME_DUET_ADAPTIVE,
ChromeFeatureList.CHROME_DUET_LABELED,
ChromeFeatureList.CLOSE_TAB_SUGGESTIONS,
ChromeFeatureList.DOWNLOADS_AUTO_RESUMPTION_NATIVE, ChromeFeatureList.DOWNLOADS_AUTO_RESUMPTION_NATIVE,
ChromeFeatureList.PRIORITIZE_BOOTSTRAP_TASKS, ChromeFeatureList.HOMEPAGE_LOCATION_POLICY,
ChromeFeatureList.INTEREST_FEED_CONTENT_SUGGESTIONS, ChromeFeatureList.INTEREST_FEED_CONTENT_SUGGESTIONS,
ChromeFeatureList.IMMERSIVE_UI_MODE, ChromeFeatureList.IMMERSIVE_UI_MODE,
ChromeFeatureList.PAINT_PREVIEW_TEST,
ChromeFeatureList.PRIORITIZE_BOOTSTRAP_TASKS,
ChromeFeatureList.SHARE_BUTTON_IN_TOP_TOOLBAR,
ChromeFeatureList.START_SURFACE_ANDROID,
ChromeFeatureList.SWAP_PIXEL_FORMAT_TO_FIX_CONVERT_FROM_TRANSLUCENT, ChromeFeatureList.SWAP_PIXEL_FORMAT_TO_FIX_CONVERT_FROM_TRANSLUCENT,
ChromeFeatureList.START_SURFACE_ANDROID, ChromeFeatureList.PAINT_PREVIEW_TEST, ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID,
ChromeFeatureList.SHARE_BUTTON_IN_TOP_TOOLBAR); ChromeFeatureList.TAB_TO_GTS_ANIMATION);
// clang-format on
CachedFeatureFlags.cacheNativeFlags(featuresToCache); CachedFeatureFlags.cacheNativeFlags(featuresToCache);
CachedFeatureFlags.cacheNativeFlags(TabUiFeatureUtilities.getFeaturesToCache()); CachedFeatureFlags.cacheNativeFlags(TabUiFeatureUtilities.getFeaturesToCache());
CachedFeatureFlags.cacheAdditionalNativeFlags(); CachedFeatureFlags.cacheAdditionalNativeFlags();
List<CachedFieldTrialParameter> fieldTrialsToCache = // clang-format off
Arrays.asList(BottomToolbarVariationManager.BOTTOM_TOOLBAR_VARIATION, List<CachedFieldTrialParameter> fieldTrialsToCache = Arrays.asList(
StartSurfaceConfiguration.START_SURFACE_VARIATION, BottomToolbarVariationManager.BOTTOM_TOOLBAR_VARIATION,
TabContentManager.ALLOW_TO_REFETCH_TAB_THUMBNAIL_VARIATION); StartSurfaceConfiguration.START_SURFACE_VARIATION,
TabContentManager.ALLOW_TO_REFETCH_TAB_THUMBNAIL_VARIATION,
TabFeatureUtilities.ZOOMING_MIN_MEMORY,
TabFeatureUtilities.ZOOMING_MIN_SDK,
TabUiFeatureUtilities.SKIP_SLOW_ZOOMING,
TabUiFeatureUtilities.TAB_GRID_LAYOUT_ANDROID_NEW_TAB_TILE,
TabUiFeatureUtilities.THUMBNAIL_ASPECT_RATIO);
// clang-format on
CachedFeatureFlags.cacheFieldTrialParameters(fieldTrialsToCache); CachedFeatureFlags.cacheFieldTrialParameters(fieldTrialsToCache);
mIsFinishedCachingNativeFlags = true; mIsFinishedCachingNativeFlags = true;
......
...@@ -3,7 +3,6 @@ include_rules = [ ...@@ -3,7 +3,6 @@ include_rules = [
"+chrome/android/java/src/org/chromium/chrome/browser/ActivityTabProvider.java", "+chrome/android/java/src/org/chromium/chrome/browser/ActivityTabProvider.java",
"+chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java", "+chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java",
"+chrome/android/java/src/org/chromium/chrome/browser/TabHidingType.java", "+chrome/android/java/src/org/chromium/chrome/browser/TabHidingType.java",
"+chrome/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java",
"+chrome/android/java/src/org/chromium/chrome/browser/incognito/IncognitoUtils.java", "+chrome/android/java/src/org/chromium/chrome/browser/incognito/IncognitoUtils.java",
"+chrome/android/java/src/org/chromium/chrome/browser/paint_preview/PaintPreviewTabHelper.java", "+chrome/android/java/src/org/chromium/chrome/browser/paint_preview/PaintPreviewTabHelper.java",
"+chrome/android/java/src/org/chromium/chrome/browser/previews/Previews.java", "+chrome/android/java/src/org/chromium/chrome/browser/previews/Previews.java",
......
...@@ -11,13 +11,29 @@ import androidx.annotation.VisibleForTesting; ...@@ -11,13 +11,29 @@ import androidx.annotation.VisibleForTesting;
import org.chromium.base.Log; import org.chromium.base.Log;
import org.chromium.base.SysUtils; import org.chromium.base.SysUtils;
import org.chromium.chrome.browser.flags.CachedFeatureFlags;
import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.flags.IntCachedFieldTrialParameter;
/** /**
* Contains logic that decides whether to enable features related to tabs. * Contains logic that decides whether to enable features related to tabs.
*/ */
public class TabFeatureUtilities { public class TabFeatureUtilities {
private static final String TAG = "TabFeatureUtilities"; private static final String TAG = "TabFeatureUtilities";
private static final int DEFAULT_MIN_SDK = Build.VERSION_CODES.O;
private static final int DEFAULT_MIN_MEMORY_MB = 2048;
// Field trial parameter for the minimum Android SDK version to enable zooming animation.
public static final String MIN_SDK_PARAM = "zooming-min-sdk-version";
public static final IntCachedFieldTrialParameter ZOOMING_MIN_SDK =
new IntCachedFieldTrialParameter(
ChromeFeatureList.TAB_TO_GTS_ANIMATION, MIN_SDK_PARAM, DEFAULT_MIN_SDK);
// Field trial parameter for the minimum physical memory size to enable zooming animation.
public static final String MIN_MEMORY_MB_PARAM = "zooming-min-memory-mb";
public static final IntCachedFieldTrialParameter ZOOMING_MIN_MEMORY =
new IntCachedFieldTrialParameter(ChromeFeatureList.TAB_TO_GTS_ANIMATION,
MIN_MEMORY_MB_PARAM, DEFAULT_MIN_MEMORY_MB);
private static Boolean sIsTabToGtsAnimationEnabled; private static Boolean sIsTabToGtsAnimationEnabled;
...@@ -40,39 +56,19 @@ public class TabFeatureUtilities { ...@@ -40,39 +56,19 @@ public class TabFeatureUtilities {
} }
Log.d(TAG, "GTS.MinSdkVersion = " + GridTabSwitcherUtil.getMinSdkVersion()); Log.d(TAG, "GTS.MinSdkVersion = " + GridTabSwitcherUtil.getMinSdkVersion());
Log.d(TAG, "GTS.MinMemoryMB = " + GridTabSwitcherUtil.getMinMemoryMB()); Log.d(TAG, "GTS.MinMemoryMB = " + GridTabSwitcherUtil.getMinMemoryMB());
return ChromeFeatureList.isEnabled(ChromeFeatureList.TAB_TO_GTS_ANIMATION) return CachedFeatureFlags.isEnabled(ChromeFeatureList.TAB_TO_GTS_ANIMATION)
&& Build.VERSION.SDK_INT >= GridTabSwitcherUtil.getMinSdkVersion() && Build.VERSION.SDK_INT >= GridTabSwitcherUtil.getMinSdkVersion()
&& SysUtils.amountOfPhysicalMemoryKB() / 1024 && SysUtils.amountOfPhysicalMemoryKB() / 1024
>= GridTabSwitcherUtil.getMinMemoryMB(); >= GridTabSwitcherUtil.getMinMemoryMB();
} }
private static class GridTabSwitcherUtil { private static class GridTabSwitcherUtil {
// Field trial parameter for the minimum Android SDK version to enable zooming animation.
private static final String MIN_SDK_PARAM = "zooming-min-sdk-version";
private static final int DEFAULT_MIN_SDK = Build.VERSION_CODES.O;
// Field trial parameter for the minimum physical memory size to enable zooming animation.
private static final String MIN_MEMORY_MB_PARAM = "zooming-min-memory-mb";
private static final int DEFAULT_MIN_MEMORY_MB = 2048;
private static int getMinSdkVersion() { private static int getMinSdkVersion() {
String sdkVersion = ChromeFeatureList.getFieldTrialParamByFeature( return CachedFeatureFlags.getValue(TabFeatureUtilities.ZOOMING_MIN_SDK);
ChromeFeatureList.TAB_TO_GTS_ANIMATION, MIN_SDK_PARAM);
try {
return Integer.valueOf(sdkVersion);
} catch (NumberFormatException e) {
return DEFAULT_MIN_SDK;
}
} }
private static int getMinMemoryMB() { private static int getMinMemoryMB() {
String sdkVersion = ChromeFeatureList.getFieldTrialParamByFeature( return CachedFeatureFlags.getValue(TabFeatureUtilities.ZOOMING_MIN_MEMORY);
ChromeFeatureList.TAB_TO_GTS_ANIMATION, MIN_MEMORY_MB_PARAM);
try {
return Integer.valueOf(sdkVersion);
} catch (NumberFormatException e) {
return DEFAULT_MIN_MEMORY_MB;
}
} }
} }
} }
...@@ -66,6 +66,9 @@ public class CachedFeatureFlags { ...@@ -66,6 +66,9 @@ public class CachedFeatureFlags {
put(ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID, false); put(ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID, false);
put(ChromeFeatureList.DUET_TABSTRIP_INTEGRATION_ANDROID, false); put(ChromeFeatureList.DUET_TABSTRIP_INTEGRATION_ANDROID, false);
put(ChromeFeatureList.SHARE_BUTTON_IN_TOP_TOOLBAR, false); put(ChromeFeatureList.SHARE_BUTTON_IN_TOP_TOOLBAR, false);
put(ChromeFeatureList.CLOSE_TAB_SUGGESTIONS, false);
put(ChromeFeatureList.TAB_GROUPS_CONTINUATION_ANDROID, false);
put(ChromeFeatureList.TAB_TO_GTS_ANIMATION, false);
put(ChromeFeatureList.TEST_DEFAULT_DISABLED, false); put(ChromeFeatureList.TEST_DEFAULT_DISABLED, false);
put(ChromeFeatureList.TEST_DEFAULT_ENABLED, true); put(ChromeFeatureList.TEST_DEFAULT_ENABLED, true);
} }
...@@ -348,6 +351,7 @@ public class CachedFeatureFlags { ...@@ -348,6 +351,7 @@ public class CachedFeatureFlags {
if (value != null) { if (value != null) {
return Boolean.valueOf(value); return Boolean.valueOf(value);
} }
return defaultValue;
} }
Boolean flag = sBoolValuesReturned.get(preferenceName); Boolean flag = sBoolValuesReturned.get(preferenceName);
...@@ -364,6 +368,7 @@ public class CachedFeatureFlags { ...@@ -364,6 +368,7 @@ public class CachedFeatureFlags {
if (stringValue != null) { if (stringValue != null) {
return stringValue; return stringValue;
} }
return defaultValue;
} }
String value = sStringValuesReturned.get(preferenceName); String value = sStringValuesReturned.get(preferenceName);
...@@ -380,6 +385,7 @@ public class CachedFeatureFlags { ...@@ -380,6 +385,7 @@ public class CachedFeatureFlags {
if (stringValue != null) { if (stringValue != null) {
return Integer.valueOf(stringValue); return Integer.valueOf(stringValue);
} }
return defaultValue;
} }
Integer value = sIntValuesReturned.get(preferenceName); Integer value = sIntValuesReturned.get(preferenceName);
...@@ -396,6 +402,7 @@ public class CachedFeatureFlags { ...@@ -396,6 +402,7 @@ public class CachedFeatureFlags {
if (stringValue != null) { if (stringValue != null) {
return Double.valueOf(stringValue); return Double.valueOf(stringValue);
} }
return defaultValue;
} }
Double value = sDoubleValuesReturned.get(preferenceName); Double value = sDoubleValuesReturned.get(preferenceName);
......
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