Commit b9cde5ca authored by Peter Kasting's avatar Peter Kasting Committed by Commit Bot

Revert "Make programmatic scrolls respect smooth scroll flag"

This reverts commit 95d1a35e.

Reason for revert: Lots of scroll tests are broken, see e.g. https://ci.chromium.org/p/chromium/builders/ci/Mac10.11%20Tests/35520

Original change's description:
> Make programmatic scrolls respect smooth scroll flag
> 
> Programmatic smooth scrolls should also be instant if the smooth scroll
> flag is explicitly disabled.
> 
> Bug: 944583
> Change-Id: I2ea2ec972a9a232644350eb994b55f04522a4ca1
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1536759
> Reviewed-by: Stephen McGruer <smcgruer@chromium.org>
> Commit-Queue: David Bokan <bokan@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#644051}

TBR=bokan@chromium.org,smcgruer@chromium.org

Change-Id: I0af76ee378d5212c124f81cb50a9f494450015de
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 944583
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1539140Reviewed-by: default avatarPeter Kasting <pkasting@chromium.org>
Commit-Queue: Peter Kasting <pkasting@chromium.org>
Cr-Commit-Position: refs/heads/master@{#644124}
parent b1d0428b
...@@ -255,7 +255,7 @@ void ScrollableArea::ProgrammaticScrollHelper(const ScrollOffset& offset, ...@@ -255,7 +255,7 @@ void ScrollableArea::ProgrammaticScrollHelper(const ScrollOffset& offset,
bool is_sequenced_scroll) { bool is_sequenced_scroll) {
CancelScrollAnimation(); CancelScrollAnimation();
if (scroll_behavior == kScrollBehaviorSmooth && ScrollAnimatorEnabled()) { if (scroll_behavior == kScrollBehaviorSmooth) {
GetProgrammaticScrollAnimator().AnimateToOffset(offset, GetProgrammaticScrollAnimator().AnimateToOffset(offset,
is_sequenced_scroll); is_sequenced_scroll);
} else { } else {
......
...@@ -24,26 +24,8 @@ namespace blink { ...@@ -24,26 +24,8 @@ namespace blink {
namespace { namespace {
using testing::_; using testing::_;
using testing::Mock;
using testing::Return; using testing::Return;
class MockAnimatingScrollableArea : public MockScrollableArea {
public:
static MockAnimatingScrollableArea* Create() {
return MakeGarbageCollected<MockAnimatingScrollableArea>();
}
static MockAnimatingScrollableArea* Create(
const ScrollOffset& maximum_scroll_offset) {
MockAnimatingScrollableArea* mock = Create();
mock->SetMaximumScrollOffset(maximum_scroll_offset);
return mock;
}
Scrollbar* HorizontalScrollbar() const override { return nullptr; }
Scrollbar* VerticalScrollbar() const override { return nullptr; }
MOCK_CONST_METHOD0(ScrollAnimatorEnabled, bool());
MOCK_METHOD0(ScheduleAnimation, bool());
};
class ScrollbarThemeWithMockInvalidation : public ScrollbarThemeMock { class ScrollbarThemeWithMockInvalidation : public ScrollbarThemeMock {
public: public:
MOCK_CONST_METHOD0(ShouldRepaintAllPartsOnInvalidation, bool()); MOCK_CONST_METHOD0(ShouldRepaintAllPartsOnInvalidation, bool());
...@@ -287,43 +269,6 @@ TEST_F(ScrollableAreaTest, ScrollableAreaDidScroll) { ...@@ -287,43 +269,6 @@ TEST_F(ScrollableAreaTest, ScrollableAreaDidScroll) {
EXPECT_EQ(51, scrollable_area->ScrollOffsetInt().Height()); EXPECT_EQ(51, scrollable_area->ScrollOffsetInt().Height());
} }
TEST_F(ScrollableAreaTest, ProgrammaticScrollRespectAnimatorEnabled) {
ScopedTestingPlatformSupport<TestingPlatformSupportWithMockScheduler>
platform;
MockAnimatingScrollableArea* scrollable_area =
MockAnimatingScrollableArea::Create(ScrollOffset(0, 100));
// Disable animations. Make sure an explicitly smooth programmatic scroll is
// instantly scrolled.
{
EXPECT_CALL(*scrollable_area, ScrollAnimatorEnabled())
.WillRepeatedly(Return(false));
EXPECT_CALL(*scrollable_area, ScheduleAnimation()).Times(0);
scrollable_area->SetScrollOffset(ScrollOffset(0, 100), kProgrammaticScroll,
kScrollBehaviorSmooth);
EXPECT_EQ(100, scrollable_area->GetScrollOffset().Height());
}
Mock::VerifyAndClearExpectations(scrollable_area);
// Enable animations. A smooth programmatic scroll should now schedule an
// animation rather than immediatley mutating the offset.
{
EXPECT_CALL(*scrollable_area, ScrollAnimatorEnabled())
.WillRepeatedly(Return(true));
EXPECT_CALL(*scrollable_area, ScheduleAnimation()).WillOnce(Return(true));
scrollable_area->SetScrollOffset(ScrollOffset(0, 50), kProgrammaticScroll,
kScrollBehaviorSmooth);
// Offset is unchanged.
EXPECT_EQ(100, scrollable_area->GetScrollOffset().Height());
}
}
// Scrollbars in popups shouldn't fade out since they aren't composited and thus // Scrollbars in popups shouldn't fade out since they aren't composited and thus
// they don't appear on hover so users without a wheel can't scroll if they fade // they don't appear on hover so users without a wheel can't scroll if they fade
// out. // out.
......
...@@ -118,12 +118,11 @@ class MockScrollableArea : public GarbageCollectedFinalized<MockScrollableArea>, ...@@ -118,12 +118,11 @@ class MockScrollableArea : public GarbageCollectedFinalized<MockScrollableArea>,
ScrollableArea::Trace(visitor); ScrollableArea::Trace(visitor);
} }
protected: private:
void SetMaximumScrollOffset(const ScrollOffset& maximum_scroll_offset) { void SetMaximumScrollOffset(const ScrollOffset& maximum_scroll_offset) {
maximum_scroll_offset_ = maximum_scroll_offset; maximum_scroll_offset_ = maximum_scroll_offset;
} }
private:
ScrollOffset scroll_offset_; ScrollOffset scroll_offset_;
ScrollOffset maximum_scroll_offset_; ScrollOffset maximum_scroll_offset_;
Member<MockPlatformChromeClient> chrome_client_; Member<MockPlatformChromeClient> chrome_client_;
......
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