Implement the AnimationController side of triggers based on the container scroll.
<rdar://problem/20174619>
Created attachment 248752 [details] Patch
Attachment 248752 [details] did not pass style-queue: ERROR: Source/WebCore/ChangeLog:8: You should remove the 'No new tests' and either add and list tests, or explain why no new tests were possible. [changelog/nonewtests] [5] ERROR: Source/WebCore/platform/animation/Animation.cpp:138: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] ERROR: Source/WebCore/platform/animation/Animation.cpp:151: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Total errors found: 3 in 10 files If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 248855 [details] Patch
Comment on attachment 248855 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=248855&action=review > Source/WebCore/page/animation/AnimationBase.cpp:466 > + ScrollAnimationTrigger* scrollTrigger = static_cast<ScrollAnimationTrigger*>(m_animation->trigger().get()); downcast<ScrollAnimationTrigger> ScrollAnimationTrigger& > Source/WebCore/page/animation/AnimationBase.cpp:547 > + if (!m_animation->trigger() || m_animation->trigger()->isAutoAnimationTrigger()) { > + double timeFromNow = m_animation->delay() - (beginAnimationUpdateTime() - m_requestedStartTime); > + return std::max(timeFromNow, 0.0); > + } Remove. > Source/WebCore/page/animation/AnimationBase.cpp:557 > +#else #endif here. > Source/WebCore/page/animation/AnimationBase.cpp:712 > + ScrollAnimationTrigger* scrollTrigger = static_cast<ScrollAnimationTrigger*>(m_animation->trigger().get()); downcast, ref. > Source/WebCore/page/animation/AnimationBase.cpp:719 > + if (scrollTrigger->hasEndValue() && m_object) { > + float offset = m_object->view().frameView().scrollOffsetForFixedPosition().height().toFloat(); > + if (offset < scrollTrigger->startValue().value()) > + return 0; > + if (offset > scrollTrigger->endValue().value()) > + return m_animation->duration(); > + return m_animation->duration() * (offset - scrollTrigger->startValue().value()) / (scrollTrigger->endValue().value() - scrollTrigger->startValue().value()); Remove? > Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:872 > + if (anim->trigger()->isScrollAnimationTrigger()) { > + ScrollAnimationTrigger* scrollTrigger = static_cast<ScrollAnimationTrigger*>(anim->trigger().get()); > + if (scrollTrigger->hasEndValue()) > + return false; > + } Remove. > LayoutTests/animations/trigger-container-scroll-simple.html:41 > + setTimeout(checkValueWithoutScroll, 100); 100ms is very long! > LayoutTests/animations/trigger-container-scroll-simple.html:47 > + setTimeout(checkValueWithScroll, 0); Use animationstart event. > LayoutTests/animations/trigger-container-scroll-simple.html:98 > + <br> > + <br> > + <br> > + <br> > + <br> > + <br> > + <br> > + <br> > + <br> > + <br> > + <br> > + <br> > + <br> > + <br> > + <br> > + <br> > + <br> > + <br> > + <br> > + <br> > + <br> > + <br> > + <br> > + <br> > + <br> > + <br> > + <br> > + <br> > + <br> > + <br> body { height: 2000px; }
It broke the build everywhere as the EWS noticed it in time. Please fix the builds ASAP. Thanks.
Comment on attachment 248855 [details] Patch Attachment 248855 [details] did not pass mac-ews (mac): Output: http://webkit-queues.appspot.com/results/5666104122802176 New failing tests: animations/trigger-container-scroll-simple.html
Created attachment 248859 [details] Archive of layout-test-results from ews103 for mac-mavericks The attached test failures were seen while running run-webkit-tests on the mac-ews. Bot: ews103 Port: mac-mavericks Platform: Mac OS X 10.9.5
Just to document it was landed in http://trac.webkit.org/changeset/181655 ... Are you working on the buildfixes? It is not WebKit2, you are not allowed to break the build intentionally any time.
Hopefully these two followups will fix everything: https://trac.webkit.org/r181658 https://trac.webkit.org/r181659
I'm watching the bots now.
The new test asserts on Mac WK1 nearly every time, see bug 142790.