Files
cromite/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch

146 lines
7.0 KiB
Diff

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 @@
+<?xml version="1.0" encoding="utf-8"?>
+<grit-part>
+ <message name="IDS_DISABLE_PULL_TO_REFRESH_TITLE" desc="Text for 'Disable pull to refresh' settings option.">
+ Disable pull to refresh
+ </message>
+ <message name="IDS_DISABLE_PULL_TO_REFRESH_SUMMARY" desc="Summary text for 'Disable pull to refresh' settings option.">
+ Page reloads triggered by vertically overscrolling content.
+ </message>
+</grit-part>
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" />
+ <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
+ android:title="@string/disable_pull_to_refresh_title"
+ android:summary="@string/disable_pull_to_refresh_summary"
+ app:featureName="disable-pull-to-refresh-effect"
+ app:needRestart="true" />
+
</PreferenceScreen>
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<OverscrollGlow> CreateGlowEffect(OverscrollGlowClient* client) {
std::unique_ptr<OverscrollRefresh> 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<OverscrollRefresh>(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.
--