| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * | 7 * |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 46 static double getMockedTime() | 46 static double getMockedTime() |
| 47 { | 47 { |
| 48 return gMockedTime; | 48 return gMockedTime; |
| 49 } | 49 } |
| 50 | 50 |
| 51 namespace { | 51 namespace { |
| 52 | 52 |
| 53 class MockScrollableArea : public GarbageCollectedFinalized<MockScrollableArea>,
public ScrollableArea { | 53 class MockScrollableArea : public GarbageCollectedFinalized<MockScrollableArea>,
public ScrollableArea { |
| 54 USING_GARBAGE_COLLECTED_MIXIN(MockScrollableArea); | 54 USING_GARBAGE_COLLECTED_MIXIN(MockScrollableArea); |
| 55 public: | 55 public: |
| 56 static RawPtr<MockScrollableArea> create(bool scrollAnimatorEnabled) | 56 static MockScrollableArea* create(bool scrollAnimatorEnabled) |
| 57 { | 57 { |
| 58 return new MockScrollableArea(scrollAnimatorEnabled); | 58 return new MockScrollableArea(scrollAnimatorEnabled); |
| 59 } | 59 } |
| 60 | 60 |
| 61 MOCK_CONST_METHOD0(visualRectForScrollbarParts, LayoutRect()); | 61 MOCK_CONST_METHOD0(visualRectForScrollbarParts, LayoutRect()); |
| 62 MOCK_CONST_METHOD0(isActive, bool()); | 62 MOCK_CONST_METHOD0(isActive, bool()); |
| 63 MOCK_CONST_METHOD1(scrollSize, int(ScrollbarOrientation)); | 63 MOCK_CONST_METHOD1(scrollSize, int(ScrollbarOrientation)); |
| 64 MOCK_CONST_METHOD0(isScrollCornerVisible, bool()); | 64 MOCK_CONST_METHOD0(isScrollCornerVisible, bool()); |
| 65 MOCK_CONST_METHOD0(scrollCornerRect, IntRect()); | 65 MOCK_CONST_METHOD0(scrollCornerRect, IntRect()); |
| 66 MOCK_METHOD2(setScrollOffset, void(const DoublePoint&, ScrollType)); | 66 MOCK_METHOD2(setScrollOffset, void(const DoublePoint&, ScrollType)); |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 127 | 127 |
| 128 static void reset(ScrollAnimator& scrollAnimator) | 128 static void reset(ScrollAnimator& scrollAnimator) |
| 129 { | 129 { |
| 130 scrollAnimator.scrollToOffsetWithoutAnimation(FloatPoint()); | 130 scrollAnimator.scrollToOffsetWithoutAnimation(FloatPoint()); |
| 131 } | 131 } |
| 132 | 132 |
| 133 // TODO(skobes): Add unit tests for composited scrolling paths. | 133 // TODO(skobes): Add unit tests for composited scrolling paths. |
| 134 | 134 |
| 135 TEST(ScrollAnimatorTest, MainThreadStates) | 135 TEST(ScrollAnimatorTest, MainThreadStates) |
| 136 { | 136 { |
| 137 RawPtr<MockScrollableArea> scrollableArea = MockScrollableArea::create(true)
; | 137 MockScrollableArea* scrollableArea = MockScrollableArea::create(true); |
| 138 RawPtr<ScrollAnimator> scrollAnimator = new ScrollAnimator(scrollableArea.ge
t(), getMockedTime); | 138 ScrollAnimator* scrollAnimator = new ScrollAnimator(scrollableArea, getMocke
dTime); |
| 139 | 139 |
| 140 EXPECT_CALL(*scrollableArea, minimumScrollPosition()).Times(AtLeast(1)) | 140 EXPECT_CALL(*scrollableArea, minimumScrollPosition()).Times(AtLeast(1)) |
| 141 .WillRepeatedly(Return(IntPoint())); | 141 .WillRepeatedly(Return(IntPoint())); |
| 142 EXPECT_CALL(*scrollableArea, maximumScrollPosition()).Times(AtLeast(1)) | 142 EXPECT_CALL(*scrollableArea, maximumScrollPosition()).Times(AtLeast(1)) |
| 143 .WillRepeatedly(Return(IntPoint(1000, 1000))); | 143 .WillRepeatedly(Return(IntPoint(1000, 1000))); |
| 144 EXPECT_CALL(*scrollableArea, setScrollOffset(_, _)).Times(2); | 144 EXPECT_CALL(*scrollableArea, setScrollOffset(_, _)).Times(2); |
| 145 EXPECT_CALL(*scrollableArea, registerForAnimation()).Times(2); | 145 EXPECT_CALL(*scrollableArea, registerForAnimation()).Times(2); |
| 146 EXPECT_CALL(*scrollableArea, scheduleAnimation()).Times(AtLeast(1)) | 146 EXPECT_CALL(*scrollableArea, scheduleAnimation()).Times(AtLeast(1)) |
| 147 .WillRepeatedly(Return(true)); | 147 .WillRepeatedly(Return(true)); |
| 148 | 148 |
| (...skipping 25 matching lines...) Expand all Loading... |
| 174 scrollAnimator->updateCompositorAnimations(); | 174 scrollAnimator->updateCompositorAnimations(); |
| 175 scrollAnimator->tickAnimation(getMockedTime()); | 175 scrollAnimator->tickAnimation(getMockedTime()); |
| 176 EXPECT_EQ(scrollAnimator->m_runState, | 176 EXPECT_EQ(scrollAnimator->m_runState, |
| 177 ScrollAnimatorCompositorCoordinator::RunState::Idle); | 177 ScrollAnimatorCompositorCoordinator::RunState::Idle); |
| 178 | 178 |
| 179 reset(*scrollAnimator); | 179 reset(*scrollAnimator); |
| 180 } | 180 } |
| 181 | 181 |
| 182 TEST(ScrollAnimatorTest, MainThreadEnabled) | 182 TEST(ScrollAnimatorTest, MainThreadEnabled) |
| 183 { | 183 { |
| 184 RawPtr<MockScrollableArea> scrollableArea = MockScrollableArea::create(true)
; | 184 MockScrollableArea* scrollableArea = MockScrollableArea::create(true); |
| 185 RawPtr<ScrollAnimator> scrollAnimator = new ScrollAnimator(scrollableArea.ge
t(), getMockedTime); | 185 ScrollAnimator* scrollAnimator = new ScrollAnimator(scrollableArea, getMocke
dTime); |
| 186 | 186 |
| 187 EXPECT_CALL(*scrollableArea, minimumScrollPosition()).Times(AtLeast(1)).Will
Repeatedly(Return(IntPoint())); | 187 EXPECT_CALL(*scrollableArea, minimumScrollPosition()).Times(AtLeast(1)).Will
Repeatedly(Return(IntPoint())); |
| 188 EXPECT_CALL(*scrollableArea, maximumScrollPosition()).Times(AtLeast(1)).Will
Repeatedly(Return(IntPoint(1000, 1000))); | 188 EXPECT_CALL(*scrollableArea, maximumScrollPosition()).Times(AtLeast(1)).Will
Repeatedly(Return(IntPoint(1000, 1000))); |
| 189 EXPECT_CALL(*scrollableArea, setScrollOffset(_, _)).Times(9); | 189 EXPECT_CALL(*scrollableArea, setScrollOffset(_, _)).Times(9); |
| 190 EXPECT_CALL(*scrollableArea, registerForAnimation()).Times(6); | 190 EXPECT_CALL(*scrollableArea, registerForAnimation()).Times(6); |
| 191 EXPECT_CALL(*scrollableArea, scheduleAnimation()).Times(AtLeast(1)).WillRepe
atedly(Return(true)); | 191 EXPECT_CALL(*scrollableArea, scheduleAnimation()).Times(AtLeast(1)).WillRepe
atedly(Return(true)); |
| 192 | 192 |
| 193 EXPECT_FALSE(scrollAnimator->hasAnimationThatRequiresService()); | 193 EXPECT_FALSE(scrollAnimator->hasAnimationThatRequiresService()); |
| 194 | 194 |
| 195 ScrollResult result = scrollAnimator->userScroll(ScrollByLine, FloatSize(-10
0, 0)); | 195 ScrollResult result = scrollAnimator->userScroll(ScrollByLine, FloatSize(-10
0, 0)); |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 251 EXPECT_EQ(100, scrollAnimator->currentPosition().x()); | 251 EXPECT_EQ(100, scrollAnimator->currentPosition().x()); |
| 252 EXPECT_NE(0, scrollAnimator->currentPosition().x()); | 252 EXPECT_NE(0, scrollAnimator->currentPosition().x()); |
| 253 EXPECT_EQ(0, scrollAnimator->currentPosition().y()); | 253 EXPECT_EQ(0, scrollAnimator->currentPosition().y()); |
| 254 reset(*scrollAnimator); | 254 reset(*scrollAnimator); |
| 255 } | 255 } |
| 256 | 256 |
| 257 // Test that a smooth scroll offset animation is aborted when followed by a | 257 // Test that a smooth scroll offset animation is aborted when followed by a |
| 258 // non-smooth scroll offset animation. | 258 // non-smooth scroll offset animation. |
| 259 TEST(ScrollAnimatorTest, AnimatedScrollAborted) | 259 TEST(ScrollAnimatorTest, AnimatedScrollAborted) |
| 260 { | 260 { |
| 261 RawPtr<MockScrollableArea> scrollableArea = MockScrollableArea::create(true)
; | 261 MockScrollableArea* scrollableArea = MockScrollableArea::create(true); |
| 262 RawPtr<ScrollAnimator> scrollAnimator = new ScrollAnimator(scrollableArea.ge
t(), getMockedTime); | 262 ScrollAnimator* scrollAnimator = new ScrollAnimator(scrollableArea, getMocke
dTime); |
| 263 | 263 |
| 264 EXPECT_CALL(*scrollableArea, minimumScrollPosition()).Times(AtLeast(1)) | 264 EXPECT_CALL(*scrollableArea, minimumScrollPosition()).Times(AtLeast(1)) |
| 265 .WillRepeatedly(Return(IntPoint())); | 265 .WillRepeatedly(Return(IntPoint())); |
| 266 EXPECT_CALL(*scrollableArea, maximumScrollPosition()).Times(AtLeast(1)) | 266 EXPECT_CALL(*scrollableArea, maximumScrollPosition()).Times(AtLeast(1)) |
| 267 .WillRepeatedly(Return(IntPoint(1000, 1000))); | 267 .WillRepeatedly(Return(IntPoint(1000, 1000))); |
| 268 EXPECT_CALL(*scrollableArea, setScrollOffset(_, _)).Times(3); | 268 EXPECT_CALL(*scrollableArea, setScrollOffset(_, _)).Times(3); |
| 269 EXPECT_CALL(*scrollableArea, registerForAnimation()).Times(2); | 269 EXPECT_CALL(*scrollableArea, registerForAnimation()).Times(2); |
| 270 EXPECT_CALL(*scrollableArea, scheduleAnimation()).Times(AtLeast(1)) | 270 EXPECT_CALL(*scrollableArea, scheduleAnimation()).Times(AtLeast(1)) |
| 271 .WillRepeatedly(Return(true)); | 271 .WillRepeatedly(Return(true)); |
| 272 | 272 |
| (...skipping 25 matching lines...) Expand all Loading... |
| 298 EXPECT_EQ(x + 100, scrollAnimator->currentPosition().x()); | 298 EXPECT_EQ(x + 100, scrollAnimator->currentPosition().x()); |
| 299 EXPECT_EQ(0, scrollAnimator->currentPosition().y()); | 299 EXPECT_EQ(0, scrollAnimator->currentPosition().y()); |
| 300 | 300 |
| 301 reset(*scrollAnimator); | 301 reset(*scrollAnimator); |
| 302 } | 302 } |
| 303 | 303 |
| 304 // Test that a smooth scroll offset animation running on the compositor is | 304 // Test that a smooth scroll offset animation running on the compositor is |
| 305 // completed on the main thread. | 305 // completed on the main thread. |
| 306 TEST(ScrollAnimatorTest, AnimatedScrollTakeover) | 306 TEST(ScrollAnimatorTest, AnimatedScrollTakeover) |
| 307 { | 307 { |
| 308 RawPtr<MockScrollableArea> scrollableArea = MockScrollableArea::create(true)
; | 308 MockScrollableArea* scrollableArea = MockScrollableArea::create(true); |
| 309 RawPtr<TestScrollAnimator> scrollAnimator = new TestScrollAnimator(scrollabl
eArea.get(), getMockedTime); | 309 TestScrollAnimator* scrollAnimator = new TestScrollAnimator(scrollableArea,
getMockedTime); |
| 310 | 310 |
| 311 EXPECT_CALL(*scrollableArea, minimumScrollPosition()).Times(AtLeast(1)) | 311 EXPECT_CALL(*scrollableArea, minimumScrollPosition()).Times(AtLeast(1)) |
| 312 .WillRepeatedly(Return(IntPoint())); | 312 .WillRepeatedly(Return(IntPoint())); |
| 313 EXPECT_CALL(*scrollableArea, maximumScrollPosition()).Times(AtLeast(1)) | 313 EXPECT_CALL(*scrollableArea, maximumScrollPosition()).Times(AtLeast(1)) |
| 314 .WillRepeatedly(Return(IntPoint(1000, 1000))); | 314 .WillRepeatedly(Return(IntPoint(1000, 1000))); |
| 315 EXPECT_CALL(*scrollableArea, setScrollOffset(_, _)).Times(2); | 315 EXPECT_CALL(*scrollableArea, setScrollOffset(_, _)).Times(2); |
| 316 // Called from userScroll, updateCompositorAnimations, then | 316 // Called from userScroll, updateCompositorAnimations, then |
| 317 // takeoverCompositorAnimation (to re-register after RunningOnCompositor). | 317 // takeoverCompositorAnimation (to re-register after RunningOnCompositor). |
| 318 EXPECT_CALL(*scrollableArea, registerForAnimation()).Times(3); | 318 EXPECT_CALL(*scrollableArea, registerForAnimation()).Times(3); |
| 319 EXPECT_CALL(*scrollableArea, scheduleAnimation()).Times(AtLeast(1)) | 319 EXPECT_CALL(*scrollableArea, scheduleAnimation()).Times(AtLeast(1)) |
| (...skipping 27 matching lines...) Expand all Loading... |
| 347 ScrollAnimatorCompositorCoordinator::RunState::RunningOnMainThread); | 347 ScrollAnimatorCompositorCoordinator::RunState::RunningOnMainThread); |
| 348 scrollAnimator->tickAnimation(getMockedTime()); | 348 scrollAnimator->tickAnimation(getMockedTime()); |
| 349 EXPECT_NE(100, scrollAnimator->currentPosition().x()); | 349 EXPECT_NE(100, scrollAnimator->currentPosition().x()); |
| 350 EXPECT_NE(0, scrollAnimator->currentPosition().x()); | 350 EXPECT_NE(0, scrollAnimator->currentPosition().x()); |
| 351 EXPECT_EQ(0, scrollAnimator->currentPosition().y()); | 351 EXPECT_EQ(0, scrollAnimator->currentPosition().y()); |
| 352 reset(*scrollAnimator); | 352 reset(*scrollAnimator); |
| 353 } | 353 } |
| 354 | 354 |
| 355 TEST(ScrollAnimatorTest, Disabled) | 355 TEST(ScrollAnimatorTest, Disabled) |
| 356 { | 356 { |
| 357 RawPtr<MockScrollableArea> scrollableArea = MockScrollableArea::create(false
); | 357 MockScrollableArea* scrollableArea = MockScrollableArea::create(false); |
| 358 RawPtr<ScrollAnimator> scrollAnimator = new ScrollAnimator(scrollableArea.ge
t(), getMockedTime); | 358 ScrollAnimator* scrollAnimator = new ScrollAnimator(scrollableArea, getMocke
dTime); |
| 359 | 359 |
| 360 EXPECT_CALL(*scrollableArea, minimumScrollPosition()).Times(AtLeast(1)).Will
Repeatedly(Return(IntPoint())); | 360 EXPECT_CALL(*scrollableArea, minimumScrollPosition()).Times(AtLeast(1)).Will
Repeatedly(Return(IntPoint())); |
| 361 EXPECT_CALL(*scrollableArea, maximumScrollPosition()).Times(AtLeast(1)).Will
Repeatedly(Return(IntPoint(1000, 1000))); | 361 EXPECT_CALL(*scrollableArea, maximumScrollPosition()).Times(AtLeast(1)).Will
Repeatedly(Return(IntPoint(1000, 1000))); |
| 362 EXPECT_CALL(*scrollableArea, setScrollOffset(_, _)).Times(8); | 362 EXPECT_CALL(*scrollableArea, setScrollOffset(_, _)).Times(8); |
| 363 EXPECT_CALL(*scrollableArea, registerForAnimation()).Times(0); | 363 EXPECT_CALL(*scrollableArea, registerForAnimation()).Times(0); |
| 364 | 364 |
| 365 scrollAnimator->userScroll(ScrollByLine, FloatSize(100, 0)); | 365 scrollAnimator->userScroll(ScrollByLine, FloatSize(100, 0)); |
| 366 EXPECT_EQ(100, scrollAnimator->currentPosition().x()); | 366 EXPECT_EQ(100, scrollAnimator->currentPosition().x()); |
| 367 EXPECT_EQ(0, scrollAnimator->currentPosition().y()); | 367 EXPECT_EQ(0, scrollAnimator->currentPosition().y()); |
| 368 reset(*scrollAnimator); | 368 reset(*scrollAnimator); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 380 scrollAnimator->userScroll(ScrollByPixel, FloatSize(100, 0)); | 380 scrollAnimator->userScroll(ScrollByPixel, FloatSize(100, 0)); |
| 381 EXPECT_EQ(100, scrollAnimator->currentPosition().x()); | 381 EXPECT_EQ(100, scrollAnimator->currentPosition().x()); |
| 382 EXPECT_EQ(0, scrollAnimator->currentPosition().y()); | 382 EXPECT_EQ(0, scrollAnimator->currentPosition().y()); |
| 383 reset(*scrollAnimator); | 383 reset(*scrollAnimator); |
| 384 } | 384 } |
| 385 | 385 |
| 386 // Test that cancelling an animation resets the animation state. | 386 // Test that cancelling an animation resets the animation state. |
| 387 // See crbug.com/598548. | 387 // See crbug.com/598548. |
| 388 TEST(ScrollAnimatorTest, CancellingAnimationResetsState) | 388 TEST(ScrollAnimatorTest, CancellingAnimationResetsState) |
| 389 { | 389 { |
| 390 RawPtr<MockScrollableArea> scrollableArea = MockScrollableArea::create(true)
; | 390 MockScrollableArea* scrollableArea = MockScrollableArea::create(true); |
| 391 RawPtr<ScrollAnimator> scrollAnimator = new ScrollAnimator(scrollableArea.ge
t(), getMockedTime); | 391 ScrollAnimator* scrollAnimator = new ScrollAnimator(scrollableArea, getMocke
dTime); |
| 392 | 392 |
| 393 EXPECT_CALL(*scrollableArea, minimumScrollPosition()).Times(AtLeast(1)) | 393 EXPECT_CALL(*scrollableArea, minimumScrollPosition()).Times(AtLeast(1)) |
| 394 .WillRepeatedly(Return(IntPoint())); | 394 .WillRepeatedly(Return(IntPoint())); |
| 395 EXPECT_CALL(*scrollableArea, maximumScrollPosition()).Times(AtLeast(1)) | 395 EXPECT_CALL(*scrollableArea, maximumScrollPosition()).Times(AtLeast(1)) |
| 396 .WillRepeatedly(Return(IntPoint(1000, 1000))); | 396 .WillRepeatedly(Return(IntPoint(1000, 1000))); |
| 397 // Called from first userScroll, setCurrentPosition, and second userScroll. | 397 // Called from first userScroll, setCurrentPosition, and second userScroll. |
| 398 EXPECT_CALL(*scrollableArea, setScrollOffset(_, _)).Times(3); | 398 EXPECT_CALL(*scrollableArea, setScrollOffset(_, _)).Times(3); |
| 399 // Called from userScroll, updateCompositorAnimations. | 399 // Called from userScroll, updateCompositorAnimations. |
| 400 EXPECT_CALL(*scrollableArea, registerForAnimation()).Times(4); | 400 EXPECT_CALL(*scrollableArea, registerForAnimation()).Times(4); |
| 401 EXPECT_CALL(*scrollableArea, scheduleAnimation()).Times(AtLeast(1)) | 401 EXPECT_CALL(*scrollableArea, scheduleAnimation()).Times(AtLeast(1)) |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 441 | 441 |
| 442 EXPECT_EQ(offsetX + 15 + 10, scrollAnimator->currentPosition().x()); | 442 EXPECT_EQ(offsetX + 15 + 10, scrollAnimator->currentPosition().x()); |
| 443 EXPECT_EQ(0, scrollAnimator->currentPosition().y()); | 443 EXPECT_EQ(0, scrollAnimator->currentPosition().y()); |
| 444 reset(*scrollAnimator); | 444 reset(*scrollAnimator); |
| 445 } | 445 } |
| 446 | 446 |
| 447 // Test the behavior when in WaitingToCancelOnCompositor and a new user scroll | 447 // Test the behavior when in WaitingToCancelOnCompositor and a new user scroll |
| 448 // happens. | 448 // happens. |
| 449 TEST(ScrollAnimatorTest, CancellingCompositorAnimation) | 449 TEST(ScrollAnimatorTest, CancellingCompositorAnimation) |
| 450 { | 450 { |
| 451 RawPtr<MockScrollableArea> scrollableArea = MockScrollableArea::create(true)
; | 451 MockScrollableArea* scrollableArea = MockScrollableArea::create(true); |
| 452 RawPtr<TestScrollAnimator> scrollAnimator = new TestScrollAnimator(scrollabl
eArea.get(), getMockedTime); | 452 TestScrollAnimator* scrollAnimator = new TestScrollAnimator(scrollableArea,
getMockedTime); |
| 453 | 453 |
| 454 EXPECT_CALL(*scrollableArea, minimumScrollPosition()).Times(AtLeast(1)) | 454 EXPECT_CALL(*scrollableArea, minimumScrollPosition()).Times(AtLeast(1)) |
| 455 .WillRepeatedly(Return(IntPoint())); | 455 .WillRepeatedly(Return(IntPoint())); |
| 456 EXPECT_CALL(*scrollableArea, maximumScrollPosition()).Times(AtLeast(1)) | 456 EXPECT_CALL(*scrollableArea, maximumScrollPosition()).Times(AtLeast(1)) |
| 457 .WillRepeatedly(Return(IntPoint(1000, 1000))); | 457 .WillRepeatedly(Return(IntPoint(1000, 1000))); |
| 458 // Called when reset, not setting anywhere else. | 458 // Called when reset, not setting anywhere else. |
| 459 EXPECT_CALL(*scrollableArea, setScrollOffset(_, _)).Times(1); | 459 EXPECT_CALL(*scrollableArea, setScrollOffset(_, _)).Times(1); |
| 460 // Called from first and last user scroll, and first update. | 460 // Called from first and last user scroll, and first update. |
| 461 EXPECT_CALL(*scrollableArea, registerForAnimation()).Times(3); | 461 EXPECT_CALL(*scrollableArea, registerForAnimation()).Times(3); |
| 462 EXPECT_CALL(*scrollableArea, scheduleAnimation()).Times(AtLeast(1)) | 462 EXPECT_CALL(*scrollableArea, scheduleAnimation()).Times(AtLeast(1)) |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 511 ScrollAnimatorCompositorCoordinator::RunState::WaitingToSendToCompositor
); | 511 ScrollAnimatorCompositorCoordinator::RunState::WaitingToSendToCompositor
); |
| 512 EXPECT_EQ(100, scrollAnimator->desiredTargetPosition().x()); | 512 EXPECT_EQ(100, scrollAnimator->desiredTargetPosition().x()); |
| 513 EXPECT_EQ(0, scrollAnimator->desiredTargetPosition().y()); | 513 EXPECT_EQ(0, scrollAnimator->desiredTargetPosition().y()); |
| 514 reset(*scrollAnimator); | 514 reset(*scrollAnimator); |
| 515 | 515 |
| 516 // Forced GC in order to finalize objects depending on the mock object. | 516 // Forced GC in order to finalize objects depending on the mock object. |
| 517 Heap::collectAllGarbage(); | 517 Heap::collectAllGarbage(); |
| 518 } | 518 } |
| 519 | 519 |
| 520 } // namespace blink | 520 } // namespace blink |
| OLD | NEW |