Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(79)

Side by Side Diff: third_party/WebKit/Source/platform/scroll/ScrollableArea.cpp

Issue 1548883002: Revert of Run smooth scroll animations on the compositor when possible (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 12 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2010, Google Inc. All rights reserved. 2 * Copyright (c) 2010, Google Inc. All rights reserved.
3 * Copyright (C) 2008, 2011 Apple Inc. All Rights Reserved. 3 * Copyright (C) 2008, 2011 Apple Inc. All Rights Reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are 6 * modification, are permitted provided that the following conditions are
7 * met: 7 * met:
8 * 8 *
9 * * Redistributions of source code must retain the above copyright 9 * * Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 436 matching lines...) Expand 10 before | Expand all | Expand 10 after
447 447
448 bool ScrollableArea::hasLayerForScrollCorner() const 448 bool ScrollableArea::hasLayerForScrollCorner() const
449 { 449 {
450 return layerForScrollCorner(); 450 return layerForScrollCorner();
451 } 451 }
452 452
453 void ScrollableArea::layerForScrollingDidChange(WebCompositorAnimationTimeline* timeline) 453 void ScrollableArea::layerForScrollingDidChange(WebCompositorAnimationTimeline* timeline)
454 { 454 {
455 if (ProgrammaticScrollAnimator* programmaticScrollAnimator = existingProgram maticScrollAnimator()) 455 if (ProgrammaticScrollAnimator* programmaticScrollAnimator = existingProgram maticScrollAnimator())
456 programmaticScrollAnimator->layerForCompositedScrollingDidChange(timelin e); 456 programmaticScrollAnimator->layerForCompositedScrollingDidChange(timelin e);
457 if (ScrollAnimatorBase* scrollAnimator = existingScrollAnimator())
458 scrollAnimator->layerForCompositedScrollingDidChange(timeline);
459 } 457 }
460 458
461 bool ScrollableArea::scheduleAnimation() 459 bool ScrollableArea::scheduleAnimation()
462 { 460 {
463 if (HostWindow* window = hostWindow()) { 461 if (HostWindow* window = hostWindow()) {
464 window->scheduleAnimation(widget()); 462 window->scheduleAnimation(widget());
465 return true; 463 return true;
466 } 464 }
467 return false; 465 return false;
468 } 466 }
469 467
470 void ScrollableArea::serviceScrollAnimations(double monotonicTime) 468 void ScrollableArea::serviceScrollAnimations(double monotonicTime)
471 { 469 {
472 bool requiresAnimationService = false; 470 bool requiresAnimationService = false;
473 if (ScrollAnimatorBase* scrollAnimator = existingScrollAnimator()) { 471 if (ScrollAnimatorBase* scrollAnimator = existingScrollAnimator()) {
474 scrollAnimator->tickAnimation(monotonicTime); 472 scrollAnimator->serviceScrollAnimations();
475 if (scrollAnimator->hasAnimationThatRequiresService()) 473 if (scrollAnimator->hasRunningAnimation())
476 requiresAnimationService = true; 474 requiresAnimationService = true;
477 } 475 }
478 if (ProgrammaticScrollAnimator* programmaticScrollAnimator = existingProgram maticScrollAnimator()) { 476 if (ProgrammaticScrollAnimator* programmaticScrollAnimator = existingProgram maticScrollAnimator()) {
479 programmaticScrollAnimator->tickAnimation(monotonicTime); 477 programmaticScrollAnimator->tickAnimation(monotonicTime);
480 if (programmaticScrollAnimator->hasAnimationThatRequiresService()) 478 if (programmaticScrollAnimator->hasAnimationThatRequiresService())
481 requiresAnimationService = true; 479 requiresAnimationService = true;
482 } 480 }
483 if (!requiresAnimationService) 481 if (!requiresAnimationService)
484 deregisterForAnimation(); 482 deregisterForAnimation();
485 } 483 }
486 484
487 void ScrollableArea::updateCompositorScrollAnimations() 485 void ScrollableArea::updateCompositorScrollAnimations()
488 { 486 {
489 if (ProgrammaticScrollAnimator* programmaticScrollAnimator = existingProgram maticScrollAnimator()) 487 if (ProgrammaticScrollAnimator* programmaticScrollAnimator = existingProgram maticScrollAnimator())
490 programmaticScrollAnimator->updateCompositorAnimations(); 488 programmaticScrollAnimator->updateCompositorAnimations();
491
492 if (ScrollAnimatorBase* scrollAnimator = existingScrollAnimator())
493 scrollAnimator->updateCompositorAnimations();
494 } 489 }
495 490
496 void ScrollableArea::notifyCompositorAnimationFinished(int groupId) 491 void ScrollableArea::notifyCompositorAnimationFinished(int groupId)
497 { 492 {
498 if (ProgrammaticScrollAnimator* programmaticScrollAnimator = existingProgram maticScrollAnimator()) 493 if (ProgrammaticScrollAnimator* programmaticScrollAnimator = existingProgram maticScrollAnimator())
499 programmaticScrollAnimator->notifyCompositorAnimationFinished(groupId); 494 programmaticScrollAnimator->notifyCompositorAnimationFinished(groupId);
500
501 if (ScrollAnimatorBase* scrollAnimator = existingScrollAnimator())
502 scrollAnimator->notifyCompositorAnimationFinished(groupId);
503 } 495 }
504 496
505 void ScrollableArea::cancelScrollAnimation() 497 void ScrollableArea::cancelScrollAnimation()
506 { 498 {
507 if (ScrollAnimatorBase* scrollAnimator = existingScrollAnimator()) 499 if (ScrollAnimatorBase* scrollAnimator = existingScrollAnimator())
508 scrollAnimator->cancelAnimation(); 500 scrollAnimator->cancelAnimations();
509 } 501 }
510 502
511 void ScrollableArea::cancelProgrammaticScrollAnimation() 503 void ScrollableArea::cancelProgrammaticScrollAnimation()
512 { 504 {
513 if (ProgrammaticScrollAnimator* programmaticScrollAnimator = existingProgram maticScrollAnimator()) 505 if (ProgrammaticScrollAnimator* programmaticScrollAnimator = existingProgram maticScrollAnimator())
514 programmaticScrollAnimator->cancelAnimation(); 506 programmaticScrollAnimator->cancelAnimation();
515 } 507 }
516 508
517 DoubleRect ScrollableArea::visibleContentRectDouble(IncludeScrollbarsInRect scro llbarInclusion) const 509 DoubleRect ScrollableArea::visibleContentRectDouble(IncludeScrollbarsInRect scro llbarInclusion) const
518 { 510 {
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
586 std::max(0, size.height() - horizontalScrollbarHeight)); 578 std::max(0, size.height() - horizontalScrollbarHeight));
587 } 579 }
588 580
589 DEFINE_TRACE(ScrollableArea) 581 DEFINE_TRACE(ScrollableArea)
590 { 582 {
591 visitor->trace(m_scrollAnimator); 583 visitor->trace(m_scrollAnimator);
592 visitor->trace(m_programmaticScrollAnimator); 584 visitor->trace(m_programmaticScrollAnimator);
593 } 585 }
594 586
595 } // namespace blink 587 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698