Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: cherry-pick cc20b36a5845 from chromium #29997

Merged
merged 2 commits into from Jul 4, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions patches/chromium/.patches
Expand Up @@ -114,3 +114,4 @@ cherry-pick-3299d70b7d0f.patch
support_runtime_configurable_key_storage_on_linux_os_crypto.patch
make_keychain_service_account_optionally_configurable_at_runtime.patch
don_t_run_pcscan_notifythreadcreated_if_pcscan_is_disabled.patch
cherry-pick-cc20b36a5845.patch
41 changes: 41 additions & 0 deletions patches/chromium/cherry-pick-cc20b36a5845.patch
@@ -0,0 +1,41 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Philip Rogers <pdr@chromium.org>
Date: Wed, 19 May 2021 16:11:29 +0000
Subject: Use a 100ms timer in
MacScrollbarAnimatorImpl::StartScrollbarPaintTimer

MacScrollbarAnimatorImpl::StartScrollbarPaintTimer has a timer that
runs while ShouldSuspendScrollAnimations is true. The timer was changed
from 100ms to 1ms in https://crrev.com/376453. This was later changed to
0ms in https://crrev.com/434428 which caused a performance regression
(https://crbug.com/713669). The timer was then changed back to 1ms in
https://crrev.com/470823 with a comment about giving other tasks time to
cancel the timer. This patch restores the 100ms timer. The comment has
been removed because this timer is more of a polling mechanism.

Bug: 1090000
Change-Id: I4041d9ba5869abbe4ff7d55d56d921c7d90a72ad
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2903830
Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org>
Commit-Queue: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#884506}

diff --git a/third_party/blink/renderer/core/scroll/mac_scrollbar_animator_impl.mm b/third_party/blink/renderer/core/scroll/mac_scrollbar_animator_impl.mm
index cb3c5b0493410a1cb8d099ec3349e8cbb8dd629d..b7257f954d4f7f85128b5fd24651c27d2ce8bd85 100644
--- a/third_party/blink/renderer/core/scroll/mac_scrollbar_animator_impl.mm
+++ b/third_party/blink/renderer/core/scroll/mac_scrollbar_animator_impl.mm
@@ -814,13 +814,11 @@ - (void)invalidate {
}

void MacScrollbarAnimatorImpl::StartScrollbarPaintTimer() {
- // Post a task with 1 ms delay to give a chance to run other immediate tasks
- // that may cancel this.
initial_scrollbar_paint_task_handle_ = PostDelayedCancellableTask(
*task_runner_, FROM_HERE,
WTF::Bind(&MacScrollbarAnimatorImpl::InitialScrollbarPaintTask,
WrapWeakPersistent(this)),
- base::TimeDelta::FromMilliseconds(1));
+ base::TimeDelta::FromMilliseconds(100));
}

bool MacScrollbarAnimatorImpl::ScrollbarPaintTimerIsActive() const {