From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Mon, 2 Dec 2019 21:15:32 +0100 Subject: Revert "flags: remove disable-pull-to-refresh-effect" This reverts commit 4e598f38a0e6dd3dbede009c6a99b2a520a94e1f. Original License: BSD-3-Clause - https://spdx.org/licenses/BSD-3-Clause.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- chrome/browser/flag-metadata.json | 4 ++++ .../disable-pull-to-refresh-effect.grdp | 9 +++++++++ .../java/res/xml/accessibility_preferences.xml | 6 ++++++ .../browser/android/overscroll_controller_android.cc | 5 +++-- ...t-flags-remove-disable-pull-to-refresh-effect.inc | 12 ++++++++++++ ui/android/overscroll_refresh.cc | 5 +++-- ui/android/overscroll_refresh.h | 3 ++- 7 files changed, 39 insertions(+), 5 deletions(-) create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/disable-pull-to-refresh-effect.grdp create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Revert-flags-remove-disable-pull-to-refresh-effect.inc diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json @@ -2367,6 +2367,10 @@ "alexmos@google.com", "creis@google.com" ], "expiry_milestone": 150 }, + { + "name": "disable-pull-to-refresh-effect", + "expiry_milestone": -1 + }, { "name": "disable-u18-feedback-desktop", "owners": [ "chrome-signin-team@google.com" ], diff --git a/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/disable-pull-to-refresh-effect.grdp b/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/disable-pull-to-refresh-effect.grdp new file mode 100644 --- /dev/null +++ b/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/disable-pull-to-refresh-effect.grdp @@ -0,0 +1,9 @@ + + + + Disable pull to refresh + + + Page reloads triggered by vertically overscrolling content. + + diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml --- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml +++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml @@ -60,4 +60,10 @@ found in the LICENSE file. android:summary="@string/touchpad_overscroll_history_navigation_summary" android:title="@string/touchpad_overscroll_history_navigation_title" /> + + diff --git a/content/browser/android/overscroll_controller_android.cc b/content/browser/android/overscroll_controller_android.cc --- a/content/browser/android/overscroll_controller_android.cc +++ b/content/browser/android/overscroll_controller_android.cc @@ -67,14 +67,15 @@ std::unique_ptr CreateGlowEffect(OverscrollGlowClient* client) { std::unique_ptr CreateRefreshEffect( ui::OverscrollRefreshHandler* overscroll_refresh_handler, float dpi_scale) { + bool disable_pull_to_refresh = false; if (base::CommandLine::ForCurrentProcess()->HasSwitch( switches::kDisablePullToRefreshEffect)) { - return nullptr; + disable_pull_to_refresh = true; } float edge_width = OverscrollRefresh::kDefaultNavigationEdgeWidth * dpi_scale; return std::make_unique(overscroll_refresh_handler, - edge_width); + edge_width, disable_pull_to_refresh); } } // namespace diff --git a/cromite_flags/chrome/browser/about_flags_cc/Revert-flags-remove-disable-pull-to-refresh-effect.inc b/cromite_flags/chrome/browser/about_flags_cc/Revert-flags-remove-disable-pull-to-refresh-effect.inc new file mode 100644 --- /dev/null +++ b/cromite_flags/chrome/browser/about_flags_cc/Revert-flags-remove-disable-pull-to-refresh-effect.inc @@ -0,0 +1,12 @@ +#if BUILDFLAG(IS_ANDROID) + +#ifdef FLAG_SECTION + + {switches::kDisablePullToRefreshEffect, + "The pull-to-refresh effect", + "Page reloads triggered by vertically overscrolling content.", kOsAndroid, + SINGLE_DISABLE_VALUE_TYPE(switches::kDisablePullToRefreshEffect)}, + +#endif + +#endif diff --git a/ui/android/overscroll_refresh.cc b/ui/android/overscroll_refresh.cc --- a/ui/android/overscroll_refresh.cc +++ b/ui/android/overscroll_refresh.cc @@ -31,9 +31,10 @@ const float kWeightAngle30 = 1.73f; } // namespace OverscrollRefresh::OverscrollRefresh(OverscrollRefreshHandler* handler, - float edge_width) + float edge_width, bool disable_pull_to_refresh) : scrolled_to_top_(true), scrolled_to_bottom_(false), + disable_pull_to_refresh_(disable_pull_to_refresh), top_at_scroll_start_(true), bottom_at_scroll_start_(false), overflow_y_hidden_(false), @@ -100,7 +101,7 @@ void OverscrollRefresh::OnOverscrolled(const cc::OverscrollBehavior& behavior, } // Pull-to-refresh if (ydelta > 0) { - type = OverscrollAction::kPullToRefresh; + if (!disable_pull_to_refresh_) type = OverscrollAction::kPullToRefresh; } else if (scrolled_to_bottom_) { // ydelta < 0 type = OverscrollAction::kPullFromBottomEdge; } diff --git a/ui/android/overscroll_refresh.h b/ui/android/overscroll_refresh.h --- a/ui/android/overscroll_refresh.h +++ b/ui/android/overscroll_refresh.h @@ -48,7 +48,7 @@ class UI_ANDROID_EXPORT OverscrollRefresh { static constexpr int kDefaultNavigationEdgeWidth = 24; // LINT.ThenChange(//ui/android/java/src/org/chromium/ui/OverscrollRefreshHandler.java:kDefaultNavigationEdgeWidth) - OverscrollRefresh(OverscrollRefreshHandler* handler, float edge_width); + OverscrollRefresh(OverscrollRefreshHandler* handler, float edge_width, bool disable_pull_to_refresh); OverscrollRefresh(const OverscrollRefresh&) = delete; OverscrollRefresh& operator=(const OverscrollRefresh&) = delete; @@ -109,6 +109,7 @@ class UI_ANDROID_EXPORT OverscrollRefresh { bool scrolled_to_top_; bool scrolled_to_bottom_; + bool disable_pull_to_refresh_; // True if the content y offset was zero before scroll began. Overscroll // should not be triggered for the scroll that started from non-zero offset. --