Commit 68c3034e authored by Jinsuk Kim's avatar Jinsuk Kim Committed by Commit Bot

Android: Add an option to the feature flag overscroll navigation

This CL modifies the feature flag overscroll navigation so that users
can enable/disable navigation sheet as an option.

Bug: 937946
Change-Id: Id7bf39054d561927be74262331226ce112ef7caf
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1694184
Commit-Queue: Jinsuk Kim <jinsukkim@chromium.org>
Reviewed-by: default avatarTheresa <twellington@chromium.org>
Cr-Commit-Position: refs/heads/master@{#676326}
parent 98b25bf9
...@@ -20,6 +20,7 @@ import android.view.animation.Transformation; ...@@ -20,6 +20,7 @@ import android.view.animation.Transformation;
import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.metrics.RecordHistogram;
import org.chromium.chrome.R; import org.chromium.chrome.R;
import org.chromium.chrome.browser.ChromeFeatureList;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
...@@ -34,6 +35,8 @@ import java.lang.annotation.RetentionPolicy; ...@@ -34,6 +35,8 @@ import java.lang.annotation.RetentionPolicy;
* and modified accordingly to support horizontal gesture. * and modified accordingly to support horizontal gesture.
*/ */
public class SideSlideLayout extends ViewGroup { public class SideSlideLayout extends ViewGroup {
private static final String NAVIGATION_SHEET_ENABLED_KEY =
"overscroll_history_navigation_bottom_sheet";
// Used to record the UMA histogram Overscroll.* This definition should be // Used to record the UMA histogram Overscroll.* This definition should be
// in sync with that in content/browser/web_contents/aura/types.h // in sync with that in content/browser/web_contents/aura/types.h
// TODO(jinsukkim): Generate java enum from the native header. // TODO(jinsukkim): Generate java enum from the native header.
...@@ -171,6 +174,12 @@ public class SideSlideLayout extends ViewGroup { ...@@ -171,6 +174,12 @@ public class SideSlideLayout extends ViewGroup {
mTotalDragDistance = TARGET_THRESHOLD_DP * density; mTotalDragDistance = TARGET_THRESHOLD_DP * density;
} }
private static boolean isBottomSheetEnabled() {
return ChromeFeatureList.getFieldTrialParamByFeatureAsBoolean(
ChromeFeatureList.OVERSCROLL_HISTORY_NAVIGATION, NAVIGATION_SHEET_ENABLED_KEY,
false);
}
/** /**
* Set the listener to be notified when the navigation is triggered. * Set the listener to be notified when the navigation is triggered.
*/ */
......
...@@ -876,6 +876,12 @@ const FeatureEntry::FeatureVariation ...@@ -876,6 +876,12 @@ const FeatureEntry::FeatureVariation
base::size(kTranslateForceTriggerOnEnglishGeo), nullptr}, base::size(kTranslateForceTriggerOnEnglishGeo), nullptr},
{"(Zero threshold)", kTranslateForceTriggerOnEnglishBackoff, {"(Zero threshold)", kTranslateForceTriggerOnEnglishBackoff,
base::size(kTranslateForceTriggerOnEnglishBackoff), nullptr}}; base::size(kTranslateForceTriggerOnEnglishBackoff), nullptr}};
const FeatureEntry::FeatureParam kOverscrollHistoryNavigationBottomSheet[] = {
{"overscroll_history_navigation_bottom_sheet", "true"}};
const FeatureEntry::FeatureVariation kOverscrollHistoryNavigationVariations[] =
{{"Navigation sheet", kOverscrollHistoryNavigationBottomSheet,
base::size(kOverscrollHistoryNavigationBottomSheet), nullptr}};
#endif // defined(OS_ANDROID) #endif // defined(OS_ANDROID)
#if !defined(OS_ANDROID) #if !defined(OS_ANDROID)
...@@ -1559,12 +1565,16 @@ const FeatureEntry kFeatureEntries[] = { ...@@ -1559,12 +1565,16 @@ const FeatureEntry kFeatureEntries[] = {
flag_descriptions::kOverscrollHistoryNavigationName, flag_descriptions::kOverscrollHistoryNavigationName,
flag_descriptions::kOverscrollHistoryNavigationDescription, flag_descriptions::kOverscrollHistoryNavigationDescription,
kOsAura | kOsAndroid, kOsAura | kOsAndroid,
#if defined(OS_ANDROID)
FEATURE_WITH_PARAMS_VALUE_TYPE(features::kOverscrollHistoryNavigation,
kOverscrollHistoryNavigationVariations,
"OverscrollNavigation")},
#else
FEATURE_VALUE_TYPE(features::kOverscrollHistoryNavigation)}, FEATURE_VALUE_TYPE(features::kOverscrollHistoryNavigation)},
#if !defined(OS_ANDROID)
{"pull-to-refresh", flag_descriptions::kPullToRefreshName, {"pull-to-refresh", flag_descriptions::kPullToRefreshName,
flag_descriptions::kPullToRefreshDescription, kOsAura, flag_descriptions::kPullToRefreshDescription, kOsAura,
MULTI_VALUE_TYPE(kPullToRefreshChoices)}, MULTI_VALUE_TYPE(kPullToRefreshChoices)},
#endif // !OS_ANDROID #endif // OS_ANDROID
#endif // USE_AURA || OS_ANDROID #endif // USE_AURA || OS_ANDROID
{"enable-touch-drag-drop", flag_descriptions::kTouchDragDropName, {"enable-touch-drag-drop", flag_descriptions::kTouchDragDropName,
flag_descriptions::kTouchDragDropDescription, kOsWin | kOsCrOS, flag_descriptions::kTouchDragDropDescription, kOsWin | kOsCrOS,
......
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