Diff
Modified: branches/safari-609.1.17.0-branch/LayoutTests/ChangeLog (256347 => 256348)
--- branches/safari-609.1.17.0-branch/LayoutTests/ChangeLog 2020-02-11 21:33:41 UTC (rev 256347)
+++ branches/safari-609.1.17.0-branch/LayoutTests/ChangeLog 2020-02-11 21:37:42 UTC (rev 256348)
@@ -1,417 +1,3 @@
-2020-02-11 Russell Epstein <repst...@apple.com>
-
- Cherry-pick r256214. rdar://problem/59349205
-
- WebContent jetsams on Sony lens webpage due to spike of IOSurfaces
- https://bugs.webkit.org/show_bug.cgi?id=207493
- rdar://problem/59020443
-
- Reviewed by Zalan Bujtas.
- Source/WebCore:
-
- There were three issues that contributed to massive backing store allocation on
- <https://www.sony.com/electronics/lenses/t/camera-lenses>.
-
- The first, fixed in r256095, was that the Web Animations code unioned the untransitioning
- bounds with the transitioning bounds, causing the computation of large extent rects.
-
- The second, fixed in r256181, was that GraphicsLayerCA would keep hold of a transform
- animation for an extra frame, causing a rendering update where
- RenderLayerBacking::updateGeometry() would have cleared the extent, but GraphicsLayerCA
- still thought transform was animating, causing GraphicsLayerCA::updateCoverage() to keep
- backing store attached.
-
- This patch is the final fix; when animations start and end, we need to ensure that
- RenderLayerBacking::updateGeometry() is called so that we compute the animation extent in
- the same frame that adds the animation.
-
- Test: compositing/backing/transition-extent.html
-
- * rendering/RenderLayerBacking.cpp:
- (WebCore::RenderLayerBacking::startAnimation):
- (WebCore::RenderLayerBacking::animationFinished):
-
- LayoutTests:
-
- Test with an out-of-view transitioning element which should not get backing store.
-
- * compositing/backing/transition-extent-expected.txt: Added.
- * compositing/backing/transition-extent.html: Added.
- * platform/ios-wk2/compositing/backing/transition-extent-expected.txt: Added.
-
- git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256214 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 2020-02-11 Russell Epstein <repst...@apple.com>
-
- Cherry-pick r256181. rdar://problem/59349184
-
- There's an event loop cycle between an animation finishing, and it being removed from GraphicsLayerCA
- https://bugs.webkit.org/show_bug.cgi?id=207361
- <rdar://problem/59280370>
-
- Reviewed by Simon Fraser.
-
- Source/WebCore:
-
- Animations should be removed from GraphicsLayersCAs in the same rendering update that changes the playState of the
- animation to "finished", to avoid layer flush where a GraphicsLayersCAs has no extent set, but thinks there is
- an active transform animation.
-
- To do this, instead of enqueuing accelerated actions when resolving animations during style resolution, in
- KeyframeAnimation::apply(), we enqueue them as soon as an animation's current time may have changed: in
- WebAnimation::tick() and WebAnimation::play() with supporting functions newly exposed on AnimationEffect.
-
- Now, accelerated animations are enqueued and applied during the "update animations and send events" procedure.
-
- * animation/AnimationEffect.h:
- * animation/KeyframeEffect.cpp:
- (WebCore::KeyframeEffect::apply):
- (WebCore::KeyframeEffect::updateAcceleratedActions):
- (WebCore::KeyframeEffect::animationDidTick):
- (WebCore::KeyframeEffect::animationDidPlay):
- * animation/KeyframeEffect.h:
- * animation/WebAnimation.cpp:
- (WebCore::WebAnimation::play):
- (WebCore::WebAnimation::tick):
-
- LayoutTests:
-
- Lower the number of frames to wait after an animation completes by one to check that the accelerated animation has been removed
- to show that we enqueue accelerated actions as part of the "update animations and send events" procedure.
-
- * webanimations/accelerated-animation-removal-upon-transition-completion.html: Added.
-
-
- git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256181 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 2020-02-10 Antoine Quint <grao...@webkit.org>
-
- There's an event loop cycle between an animation finishing, and it being removed from GraphicsLayerCA
- https://bugs.webkit.org/show_bug.cgi?id=207361
- <rdar://problem/59280370>
-
- Reviewed by Simon Fraser.
-
- Lower the number of frames to wait after an animation completes by one to check that the accelerated animation has been removed
- to show that we enqueue accelerated actions as part of the "update animations and send events" procedure.
-
- * webanimations/accelerated-animation-removal-upon-transition-completion.html: Added.
-
-2020-02-11 Russell Epstein <repst...@apple.com>
-
- Cherry-pick r256095. rdar://problem/59349202
-
- Extent of a composited animation should not include the untransformed position
- https://bugs.webkit.org/show_bug.cgi?id=207434
-
- Reviewed by Sam Weinig.
- Source/WebCore:
-
- To determine whether to create ("attach") backing store for layers with transform animations,
- we compute the union of all the states of the animation as an "extent", and ask whether it intersects
- the coverage rect in GraphicsLayerCA.
-
- The non-Web Animations transition code did this correctly, just unioning the bounds transformed by
- the start and end state.
-
- The non-Web Animations keyframe code, and the Web Animations KeyframeEffect code (used for both CSS transitions
- and animations) also unioned with the unanimated bounds, which could create overly large extents in some
- cases, contributing to jetsams on iOS (rdar://problem/59020443).
-
- Fix KeyframeAnimation and KeyframeEffect to not union with the untransformed bounds.
-
- Tests: compositing/backing/backing-store-attachment-animating-outside-viewport.html
- legacy-animation-engine/compositing/backing/backing-store-attachment-animating-outside-viewport.html
-
- * animation/KeyframeEffect.cpp:
- (WebCore::KeyframeEffect::computeExtentOfTransformAnimation const):
- * page/animation/KeyframeAnimation.cpp:
- (WebCore::KeyframeAnimation::computeExtentOfTransformAnimation const):
-
-2020-02-10 Simon Fraser <simon.fra...@apple.com>
-
- WebContent jetsams on Sony lens webpage due to spike of IOSurfaces
- https://bugs.webkit.org/show_bug.cgi?id=207493
- rdar://problem/59020443
-
- Reviewed by Zalan Bujtas.
-
- Test with an out-of-view transitioning element which should not get backing store.
-
- * compositing/backing/transition-extent-expected.txt: Added.
- * compositing/backing/transition-extent.html: Added.
- * platform/ios-wk2/compositing/backing/transition-extent-expected.txt: Added.
-
- LayoutTests:
-
- New test that checks backing store attachment and overlap for an element which is positioned in-view,
- but is move offscreen by the animation.
-
- New baselines for overlap tests, since overlap no longer considers the unanimated position.
-
- * compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt: Added.
- * compositing/backing/backing-store-attachment-animating-outside-viewport.html: Added.
- * compositing/layer-creation/translate-animation-overlap-expected.txt:
- * compositing/layer-creation/translate-scale-animation-overlap-expected.txt:
- * legacy-animation-engine/compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt: Added.
- * legacy-animation-engine/compositing/backing/backing-store-attachment-animating-outside-viewport.html: Added.
- * legacy-animation-engine/compositing/layer-creation/translate-animation-overlap-expected.txt:
- * legacy-animation-engine/compositing/layer-creation/translate-scale-animation-overlap-expected.txt:
- * platform/ios-wk2/compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt: Added.
- * platform/ios-wk2/legacy-animation-engine/compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt: Added.
-
-
- git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256095 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 2020-02-08 Simon Fraser <simon.fra...@apple.com>
-
- Extent of a composited animation should not include the untransformed position
- https://bugs.webkit.org/show_bug.cgi?id=207434
-
- Reviewed by Sam Weinig.
-
- New test that checks backing store attachment and overlap for an element which is positioned in-view,
- but is move offscreen by the animation.
-
- New baselines for overlap tests, since overlap no longer considers the unanimated position.
-
- * compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt: Added.
- * compositing/backing/backing-store-attachment-animating-outside-viewport.html: Added.
- * compositing/layer-creation/translate-animation-overlap-expected.txt:
- * compositing/layer-creation/translate-scale-animation-overlap-expected.txt:
- * legacy-animation-engine/compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt: Added.
- * legacy-animation-engine/compositing/backing/backing-store-attachment-animating-outside-viewport.html: Added.
- * legacy-animation-engine/compositing/layer-creation/translate-animation-overlap-expected.txt:
- * legacy-animation-engine/compositing/layer-creation/translate-scale-animation-overlap-expected.txt:
- * platform/ios-wk2/compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt: Added.
- * platform/ios-wk2/legacy-animation-engine/compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt: Added.
-
-2020-02-11 Russell Epstein <repst...@apple.com>
-
- Cherry-pick r255810. rdar://problem/59349189
-
- [Web Animations] Canceling an accelerated animation before it was committed does not prevent it from playing
- https://bugs.webkit.org/show_bug.cgi?id=207253
- <rdar://problem/59143624>
-
- Reviewed by Antti Koivisto.
-
- Source/WebCore:
-
- Test: webanimations/accelerated-animation-canceled-before-commit.html
-
- Merely checking whether an accelerated animation is running prior to enqueuing an action to cancel it is not sufficient
- since there could be an uncommitted change to start it upon the next animation frame. The same logic would need to apply
- in other situations where the playback state changes for a potentially in-flight animation.
-
- * animation/KeyframeEffect.cpp:
- (WebCore::KeyframeEffect::animationDidSeek):
- (WebCore::KeyframeEffect::animationWasCanceled):
- (WebCore::KeyframeEffect::willChangeRenderer):
- (WebCore::KeyframeEffect::animationSuspensionStateDidChange):
-
- LayoutTests:
-
- Add a new test that checks that an accelerated animation that has been enqueued to start but has
- not yet been committed is correctly canceled when the cancel() method is called. This test fails
- prior to this source change.
-
- * webanimations/accelerated-animation-canceled-before-commit-expected.html: Added.
- * webanimations/accelerated-animation-canceled-before-commit.html: Added.
-
- git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255810 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 2020-02-05 Antoine Quint <grao...@apple.com>
-
- [Web Animations] Canceling an accelerated animation before it was committed does not prevent it from playing
- https://bugs.webkit.org/show_bug.cgi?id=207253
- <rdar://problem/59143624>
-
- Reviewed by Antti Koivisto.
-
- Add a new test that checks that an accelerated animation that has been enqueued to start but has
- not yet been committed is correctly canceled when the cancel() method is called. This test fails
- prior to this source change.
-
- * webanimations/accelerated-animation-canceled-before-commit-expected.html: Added.
- * webanimations/accelerated-animation-canceled-before-commit.html: Added.
-
-2020-02-11 Russell Epstein <repst...@apple.com>
-
- Cherry-pick r255663. rdar://problem/59349185
-
- Accelerated animations freeze on render tree rebuild
- https://bugs.webkit.org/show_bug.cgi?id=201048
- <rdar://problem/54612621>
-
- Reviewed by Antoine Quint.
-
- Source/WebCore:
-
- If there is an accelerated animation in progress for a renderer and the render tree is rebuild the animation
- does not continue with the new renderer.
-
- To fix, make sure that the animation leaves the accelerated state when the renderer is removed. The new renderer
- will then become accelerated automatically.
-
- Original test case by Tim Guan-tin Chien.
-
- Test: webanimations/accelerated-animation-renderer-change.html
-
- * animation/AnimationTimeline.cpp:
- (WebCore::AnimationTimeline::willChangeRendererForElement):
- * animation/AnimationTimeline.h:
- * animation/KeyframeEffect.cpp:
- (WebCore::KeyframeEffect::willChangeRenderer):
- * animation/KeyframeEffect.h:
- * animation/WebAnimation.cpp:
- (WebCore::WebAnimation::willChangeRenderer):
- * animation/WebAnimation.h:
- * rendering/updating/RenderTreeUpdater.cpp:
- (WebCore::RenderTreeUpdater::tearDownRenderers):
-
- LayoutTests:
-
- * webanimations/accelerated-animation-renderer-change-expected.html: Added.
- * webanimations/accelerated-animation-renderer-change.html: Added.
-
-
- git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255663 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 2020-02-03 Antti Koivisto <an...@apple.com>
-
- Accelerated animations freeze on render tree rebuild
- https://bugs.webkit.org/show_bug.cgi?id=201048
- <rdar://problem/54612621>
-
- Reviewed by Antoine Quint.
-
- * webanimations/accelerated-animation-renderer-change-expected.html: Added.
- * webanimations/accelerated-animation-renderer-change.html: Added.
-
-2020-02-11 Russell Epstein <repst...@apple.com>
-
- Cherry-pick r255593. rdar://problem/59349198
-
- [Web Animations] Accelerated animations don't run until their natural completion
- https://bugs.webkit.org/show_bug.cgi?id=207130
- <rdar://problem/59106047>
-
- Reviewed by Dean Jackson.
-
- Source/WebCore:
-
- Tests: webanimations/transform-accelerated-animation-finishes-before-removal.html
- webanimations/transform-accelerated-animation-removed-one-frame-after-finished-promise.html
-
- Ensure we don't tear down a composited renderer until all of its runnning accelerated animations are completed.
- The accelerated animations will be queued for removal in the next animation frame.
-
- * animation/KeyframeEffect.cpp:
- (WebCore::KeyframeEffect::isRunningAcceleratedAnimationForProperty const):
- * animation/KeyframeEffect.h:
- * animation/KeyframeEffectStack.cpp:
- (WebCore::KeyframeEffectStack::isCurrentlyAffectingProperty const):
-
- LayoutTests:
-
- Add two new tests that ensures that an accelerated animation still yields compositing on an element when
- its finished promise is resolved, but that it's no longer the case on the next frame.
-
- This required an existing test to be updated to wait until the next frame before checking the composited
- status of an element on which an animation had just completed.
-
- * compositing/geometry/limit-layer-bounds-opacity-transition.html:
- * webanimations/transform-accelerated-animation-finishes-before-removal-expected.txt: Added.
- * webanimations/transform-accelerated-animation-finishes-before-removal.html: Added.
- * webanimations/transform-accelerated-animation-removed-one-frame-after-finished-promise-expected.txt: Added.
- * webanimations/transform-accelerated-animation-removed-one-frame-after-finished-promise.html: Added.
-
- git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255593 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 2020-02-03 Antoine Quint <grao...@apple.com>
-
- [Web Animations] Accelerated animations don't run until their natural completion
- https://bugs.webkit.org/show_bug.cgi?id=207130
- <rdar://problem/59106047>
-
- Reviewed by Dean Jackson.
-
- Add two new tests that ensures that an accelerated animation still yields compositing on an element when
- its finished promise is resolved, but that it's no longer the case on the next frame.
-
- This required an existing test to be updated to wait until the next frame before checking the composited
- status of an element on which an animation had just completed.
-
- * compositing/geometry/limit-layer-bounds-opacity-transition.html:
- * webanimations/transform-accelerated-animation-finishes-before-removal-expected.txt: Added.
- * webanimations/transform-accelerated-animation-finishes-before-removal.html: Added.
- * webanimations/transform-accelerated-animation-removed-one-frame-after-finished-promise-expected.txt: Added.
- * webanimations/transform-accelerated-animation-removed-one-frame-after-finished-promise.html: Added.
-
-2020-02-11 Russell Epstein <repst...@apple.com>
-
- Cherry-pick r255552. rdar://problem/59349213
-
- ASSERTION FAILED: !HashTranslator::equal(KeyTraits::emptyValue(), key) on animations/keyframe-autoclose-brace.html
- https://bugs.webkit.org/show_bug.cgi?id=207071
- <rdar://problem/59076249>
-
- Patch by Antoine Quint <grao...@apple.com> on 2020-02-02
- Reviewed by Dean Jackson.
-
- Source/WebCore:
-
- We cannot add CSSPropertyInvalid to a HashSet<CSSPropertyID>, because it triggers an ASSERT, and also we shouldn't
- because we wouldn't know how to animate that CSS property.
-
- * animation/AnimationTimeline.cpp:
- (WebCore::compileTransitionPropertiesInStyle):
-
- LayoutTests:
-
- The crash is fixed, we can start running the test as expected again.
-
- * platform/ipad/TestExpectations:
-
- git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255552 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 2020-02-02 Antoine Quint <grao...@apple.com>
-
- ASSERTION FAILED: !HashTranslator::equal(KeyTraits::emptyValue(), key) on animations/keyframe-autoclose-brace.html
- https://bugs.webkit.org/show_bug.cgi?id=207071
- <rdar://problem/59076249>
-
- Reviewed by Dean Jackson.
-
- The crash is fixed, we can start running the test as expected again.
-
- * platform/ipad/TestExpectations:
-
-2020-02-11 Russell Epstein <repst...@apple.com>
-
- Cherry-pick r255525. rdar://problem/59349213
-
- [ iOS Debug wk2 ] animations/keyframe-autoclose-brace.html is flaky crashing.
- https://bugs.webkit.org/show_bug.cgi?id=207071
-
- Unreviewed test gardening.
-
- Patch by Jason Lawrence <lawrenc...@apple.com> on 2020-01-31
-
- * platform/ipad/TestExpectations:
-
- git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255525 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 2020-01-31 Jason Lawrence <lawrenc...@apple.com>
-
- [ iOS Debug wk2 ] animations/keyframe-autoclose-brace.html is flaky crashing.
- https://bugs.webkit.org/show_bug.cgi?id=207071
-
- Unreviewed test gardening.
-
- * platform/ipad/TestExpectations:
-
2020-02-05 Russell Epstein <repst...@apple.com>
Cherry-pick r255396. rdar://problem/59097789
Deleted: branches/safari-609.1.17.0-branch/LayoutTests/compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt (256347 => 256348)
--- branches/safari-609.1.17.0-branch/LayoutTests/compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt 2020-02-11 21:33:41 UTC (rev 256347)
+++ branches/safari-609.1.17.0-branch/LayoutTests/compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt 2020-02-11 21:37:42 UTC (rev 256348)
@@ -1,24 +0,0 @@
-An in-view element animating off-screen should not have backing store.
-
-(GraphicsLayer
- (anchor 0.00 0.00)
- (bounds 785.00 2200.00)
- (backingStoreAttached 1)
- (children 1
- (GraphicsLayer
- (bounds 785.00 2200.00)
- (contentsOpaque 1)
- (backingStoreAttached 1)
- (children 1
- (GraphicsLayer
- (position 100.00 100.00)
- (bounds 100.00 100.00)
- (contentsOpaque 1)
- (drawsContent 1)
- (backingStoreAttached 0)
- )
- )
- )
- )
-)
-Some text here to force backing store.
Deleted: branches/safari-609.1.17.0-branch/LayoutTests/compositing/backing/backing-store-attachment-animating-outside-viewport.html (256347 => 256348)
--- branches/safari-609.1.17.0-branch/LayoutTests/compositing/backing/backing-store-attachment-animating-outside-viewport.html 2020-02-11 21:33:41 UTC (rev 256347)
+++ branches/safari-609.1.17.0-branch/LayoutTests/compositing/backing/backing-store-attachment-animating-outside-viewport.html 2020-02-11 21:37:42 UTC (rev 256348)
@@ -1,78 +0,0 @@
-<!doctype html>
-<html>
-<head>
-<style>
- #box {
- position: absolute;
- top: 100px;
- left: 100px;
- width: 100px;
- height: 100px;
- background-color: silver;
- }
-
- .dot {
- position: absolute;
- top: 0;
- left: 0;
- height: 4px;
- width: 4px;
- background-color: silver;
- }
-
- #box.animating {
- animation: move 1s linear;
- }
-
- @keyframes move {
- from { transform: translate3d(100px, 2000px, 0); }
- to { transform: translate3d(100px, 2100px, 0); }
- }
-
-</style>
-<script src=""
-<script>
-if (window.testRunner) {
- testRunner.dumpAsText();
- testRunner.waitUntilDone();
-}
-
-function dumpLayerTree()
-{
- if (!window.internals)
- return;
-
- var out = document.getElementById('out');
- out.innerText = layerTreeWithoutTransforms(internals.LAYER_TREE_INCLUDES_BACKING_STORE_ATTACHED);
-}
-
-function dumpLayersSoon()
-{
- setTimeout(function() {
- dumpLayerTree();
- if (window.testRunner)
- testRunner.notifyDone();
- }, 0);
-}
-
-function runTest()
-{
- makeDots(5, 5, 60);
- let box = document.getElementById('box');
- box.addEventListener('animationstart', dumpLayersSoon, false);
- box.classList.add('animating');
-}
-
-window.addEventListener('load', runTest, false);
-
-</script>
-</head>
-<body>
-<p>An in-view element animating off-screen should not have backing store.</p>
-<pre id="out"></pre>
-<div id="box">
- Some text here to force backing store.
-</div>
-
-</body>
-</html>
Deleted: branches/safari-609.1.17.0-branch/LayoutTests/compositing/backing/transition-extent-expected.txt (256347 => 256348)
--- branches/safari-609.1.17.0-branch/LayoutTests/compositing/backing/transition-extent-expected.txt 2020-02-11 21:33:41 UTC (rev 256347)
+++ branches/safari-609.1.17.0-branch/LayoutTests/compositing/backing/transition-extent-expected.txt 2020-02-11 21:37:42 UTC (rev 256348)
@@ -1,31 +0,0 @@
-The second box should not have attached backing store.
-
-(GraphicsLayer
- (anchor 0.00 0.00)
- (bounds 785.00 2024.00)
- (backingStoreAttached 1)
- (children 1
- (GraphicsLayer
- (bounds 785.00 2024.00)
- (contentsOpaque 1)
- (backingStoreAttached 1)
- (children 2
- (GraphicsLayer
- (position 20.00 20.00)
- (bounds 100.00 100.00)
- (contentsOpaque 1)
- (drawsContent 1)
- (backingStoreAttached 1)
- )
- (GraphicsLayer
- (position 20.00 1500.00)
- (bounds 100.00 100.00)
- (contentsOpaque 1)
- (drawsContent 1)
- (backingStoreAttached 0)
- )
- )
- )
- )
-)
-visible boxhidden box
Deleted: branches/safari-609.1.17.0-branch/LayoutTests/compositing/backing/transition-extent.html (256347 => 256348)
--- branches/safari-609.1.17.0-branch/LayoutTests/compositing/backing/transition-extent.html 2020-02-11 21:33:41 UTC (rev 256347)
+++ branches/safari-609.1.17.0-branch/LayoutTests/compositing/backing/transition-extent.html 2020-02-11 21:37:42 UTC (rev 256348)
@@ -1,55 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <style>
- body {
- height: 2000px;
- }
-
- .box {
- position: absolute;
- left: 20px;
- top: 20px;
- width: 100px;
- height: 100px;
- background-color: silver;
- transition: transform 2s;
- transform: rotate3d(0, 0, 1, 0deg)
- }
-
- body.changed .box {
- transform: rotate3d(0, 0, 1, -180deg);
- }
-
- .invisible {
- top: 1500px;
- }
- </style>
- <script>
- if (window.testRunner) {
- testRunner.dumpAsText();
- testRunner.waitUntilDone();
- }
- window.addEventListener('load', () => {
- let box = document.querySelector('.box');
- box.addEventListener('transitionstart', () => {
- requestAnimationFrame(() => {
- var out = document.getElementById('layers');
- out.innerText = internals.layerTreeAsText(document, internals.LAYER_TREE_INCLUDES_BACKING_STORE_ATTACHED);
- testRunner.notifyDone();
- });
- }, false);
-
- requestAnimationFrame(() => {
- document.body.classList.add('changed');
- });
- }, false);
- </script>
-</head>
-<body>
- <p>The second box should not have attached backing store.</p>
-<pre id="layers"></pre>
- <div class="box">visible box</div>
- <div class="invisible box">hidden box</div>
-</body>
-</html>
Modified: branches/safari-609.1.17.0-branch/LayoutTests/compositing/geometry/limit-layer-bounds-opacity-transition.html (256347 => 256348)
--- branches/safari-609.1.17.0-branch/LayoutTests/compositing/geometry/limit-layer-bounds-opacity-transition.html 2020-02-11 21:33:41 UTC (rev 256347)
+++ branches/safari-609.1.17.0-branch/LayoutTests/compositing/geometry/limit-layer-bounds-opacity-transition.html 2020-02-11 21:37:42 UTC (rev 256348)
@@ -40,10 +40,8 @@
function fadeDone()
{
if (window.testRunner) {
- requestAnimationFrame(() => {
- document.getElementById('layers').innerText = window.internals.layerTreeAsText(document);
- testRunner.notifyDone();
- })
+ document.getElementById('layers').innerText = window.internals.layerTreeAsText(document);
+ testRunner.notifyDone();
}
}
</script>
Modified: branches/safari-609.1.17.0-branch/LayoutTests/compositing/layer-creation/translate-animation-overlap-expected.txt (256347 => 256348)
--- branches/safari-609.1.17.0-branch/LayoutTests/compositing/layer-creation/translate-animation-overlap-expected.txt 2020-02-11 21:33:41 UTC (rev 256347)
+++ branches/safari-609.1.17.0-branch/LayoutTests/compositing/layer-creation/translate-animation-overlap-expected.txt 2020-02-11 21:37:42 UTC (rev 256348)
@@ -5,7 +5,7 @@
(GraphicsLayer
(bounds 800.00 600.00)
(contentsOpaque 1)
- (children 417
+ (children 430
(GraphicsLayer
(offsetFromRenderer width=-14 height=-14)
(position 24.00 38.00)
@@ -13,6 +13,11 @@
(drawsContent 1)
)
(GraphicsLayer
+ (position 30.00 40.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 40.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -173,6 +178,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 50.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 50.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -333,6 +343,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 60.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 60.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -493,6 +508,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 70.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 70.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -653,6 +673,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 80.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 80.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -813,6 +838,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 90.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 90.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -973,6 +1003,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 100.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 100.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -1133,6 +1168,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 110.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 110.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -1293,6 +1333,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 120.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 120.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -1453,6 +1498,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 130.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 130.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -1613,6 +1663,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 140.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 140.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -1773,6 +1828,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 150.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 150.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -1933,6 +1993,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 160.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 160.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
Modified: branches/safari-609.1.17.0-branch/LayoutTests/compositing/layer-creation/translate-scale-animation-overlap-expected.txt (256347 => 256348)
--- branches/safari-609.1.17.0-branch/LayoutTests/compositing/layer-creation/translate-scale-animation-overlap-expected.txt 2020-02-11 21:33:41 UTC (rev 256347)
+++ branches/safari-609.1.17.0-branch/LayoutTests/compositing/layer-creation/translate-scale-animation-overlap-expected.txt 2020-02-11 21:37:42 UTC (rev 256348)
@@ -5,7 +5,7 @@
(GraphicsLayer
(bounds 800.00 600.00)
(contentsOpaque 1)
- (children 685
+ (children 703
(GraphicsLayer
(offsetFromRenderer width=-14 height=-14)
(position 24.00 68.00)
@@ -14,6 +14,11 @@
(drawsContent 1)
)
(GraphicsLayer
+ (position 30.00 30.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 30.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -204,6 +209,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 40.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 40.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -394,6 +404,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 50.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 50.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -584,6 +599,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 60.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 60.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -774,6 +794,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 70.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 70.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -964,6 +989,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 80.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 80.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -1154,6 +1184,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 90.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 90.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -1344,6 +1379,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 100.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 100.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -1534,6 +1574,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 110.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 110.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -1724,6 +1769,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 120.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 120.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -1914,6 +1964,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 130.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 130.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -2104,6 +2159,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 140.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 140.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -2294,6 +2354,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 150.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 150.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -2484,6 +2549,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 160.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 160.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -2674,6 +2744,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 170.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 170.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -2864,6 +2939,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 180.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 180.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -3054,6 +3134,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 190.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 190.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -3244,6 +3329,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 200.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 200.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
Deleted: branches/safari-609.1.17.0-branch/LayoutTests/legacy-animation-engine/compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt (256347 => 256348)
--- branches/safari-609.1.17.0-branch/LayoutTests/legacy-animation-engine/compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt 2020-02-11 21:33:41 UTC (rev 256347)
+++ branches/safari-609.1.17.0-branch/LayoutTests/legacy-animation-engine/compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt 2020-02-11 21:37:42 UTC (rev 256348)
@@ -1,24 +0,0 @@
-An in-view element animating off-screen should not have backing store.
-
-(GraphicsLayer
- (anchor 0.00 0.00)
- (bounds 785.00 2200.00)
- (backingStoreAttached 1)
- (children 1
- (GraphicsLayer
- (bounds 785.00 2200.00)
- (contentsOpaque 1)
- (backingStoreAttached 1)
- (children 1
- (GraphicsLayer
- (position 100.00 100.00)
- (bounds 100.00 100.00)
- (contentsOpaque 1)
- (drawsContent 1)
- (backingStoreAttached 0)
- )
- )
- )
- )
-)
-Some text here to force backing store.
Deleted: branches/safari-609.1.17.0-branch/LayoutTests/legacy-animation-engine/compositing/backing/backing-store-attachment-animating-outside-viewport.html (256347 => 256348)
--- branches/safari-609.1.17.0-branch/LayoutTests/legacy-animation-engine/compositing/backing/backing-store-attachment-animating-outside-viewport.html 2020-02-11 21:33:41 UTC (rev 256347)
+++ branches/safari-609.1.17.0-branch/LayoutTests/legacy-animation-engine/compositing/backing/backing-store-attachment-animating-outside-viewport.html 2020-02-11 21:37:42 UTC (rev 256348)
@@ -1,78 +0,0 @@
-<!doctype html>
-<html>
-<head>
-<style>
- #box {
- position: absolute;
- top: 100px;
- left: 100px;
- width: 100px;
- height: 100px;
- background-color: silver;
- }
-
- .dot {
- position: absolute;
- top: 0;
- left: 0;
- height: 4px;
- width: 4px;
- background-color: silver;
- }
-
- #box.animating {
- animation: move 1s linear;
- }
-
- @keyframes move {
- from { transform: translate3d(100px, 2000px, 0); }
- to { transform: translate3d(100px, 2100px, 0); }
- }
-
-</style>
-<script src=""
-<script>
-if (window.testRunner) {
- testRunner.dumpAsText();
- testRunner.waitUntilDone();
-}
-
-function dumpLayerTree()
-{
- if (!window.internals)
- return;
-
- var out = document.getElementById('out');
- out.innerText = layerTreeWithoutTransforms(internals.LAYER_TREE_INCLUDES_BACKING_STORE_ATTACHED);
-}
-
-function dumpLayersSoon()
-{
- setTimeout(function() {
- dumpLayerTree();
- if (window.testRunner)
- testRunner.notifyDone();
- }, 0);
-}
-
-function runTest()
-{
- makeDots(5, 5, 60);
- let box = document.getElementById('box');
- box.addEventListener('animationstart', dumpLayersSoon, false);
- box.classList.add('animating');
-}
-
-window.addEventListener('load', runTest, false);
-
-</script>
-</head>
-<body>
-<p>An in-view element animating off-screen should not have backing store.</p>
-<pre id="out"></pre>
-<div id="box">
- Some text here to force backing store.
-</div>
-
-</body>
-</html>
Modified: branches/safari-609.1.17.0-branch/LayoutTests/legacy-animation-engine/compositing/layer-creation/translate-animation-overlap-expected.txt (256347 => 256348)
--- branches/safari-609.1.17.0-branch/LayoutTests/legacy-animation-engine/compositing/layer-creation/translate-animation-overlap-expected.txt 2020-02-11 21:33:41 UTC (rev 256347)
+++ branches/safari-609.1.17.0-branch/LayoutTests/legacy-animation-engine/compositing/layer-creation/translate-animation-overlap-expected.txt 2020-02-11 21:37:42 UTC (rev 256348)
@@ -5,7 +5,7 @@
(GraphicsLayer
(bounds 800.00 600.00)
(contentsOpaque 1)
- (children 417
+ (children 430
(GraphicsLayer
(offsetFromRenderer width=-14 height=-14)
(position 24.00 38.00)
@@ -13,6 +13,11 @@
(drawsContent 1)
)
(GraphicsLayer
+ (position 30.00 40.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 40.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -173,6 +178,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 50.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 50.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -333,6 +343,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 60.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 60.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -493,6 +508,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 70.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 70.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -653,6 +673,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 80.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 80.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -813,6 +838,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 90.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 90.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -973,6 +1003,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 100.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 100.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -1133,6 +1168,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 110.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 110.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -1293,6 +1333,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 120.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 120.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -1453,6 +1498,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 130.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 130.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -1613,6 +1663,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 140.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 140.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -1773,6 +1828,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 150.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 150.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -1933,6 +1993,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 160.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 160.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
Modified: branches/safari-609.1.17.0-branch/LayoutTests/legacy-animation-engine/compositing/layer-creation/translate-scale-animation-overlap-expected.txt (256347 => 256348)
--- branches/safari-609.1.17.0-branch/LayoutTests/legacy-animation-engine/compositing/layer-creation/translate-scale-animation-overlap-expected.txt 2020-02-11 21:33:41 UTC (rev 256347)
+++ branches/safari-609.1.17.0-branch/LayoutTests/legacy-animation-engine/compositing/layer-creation/translate-scale-animation-overlap-expected.txt 2020-02-11 21:37:42 UTC (rev 256348)
@@ -5,7 +5,7 @@
(GraphicsLayer
(bounds 800.00 600.00)
(contentsOpaque 1)
- (children 685
+ (children 703
(GraphicsLayer
(offsetFromRenderer width=-14 height=-14)
(position 24.00 68.00)
@@ -14,6 +14,11 @@
(drawsContent 1)
)
(GraphicsLayer
+ (position 30.00 30.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 30.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -204,6 +209,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 40.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 40.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -394,6 +404,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 50.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 50.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -584,6 +599,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 60.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 60.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -774,6 +794,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 70.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 70.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -964,6 +989,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 80.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 80.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -1154,6 +1184,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 90.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 90.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -1344,6 +1379,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 100.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 100.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -1534,6 +1574,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 110.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 110.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -1724,6 +1769,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 120.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 120.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -1914,6 +1964,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 130.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 130.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -2104,6 +2159,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 140.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 140.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -2294,6 +2354,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 150.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 150.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -2484,6 +2549,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 160.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 160.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -2674,6 +2744,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 170.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 170.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -2864,6 +2939,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 180.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 180.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -3054,6 +3134,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 190.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 190.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
@@ -3244,6 +3329,11 @@
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 30.00 200.00)
+ (bounds 4.00 4.00)
+ (contentsOpaque 1)
+ )
+ (GraphicsLayer
(position 40.00 200.00)
(bounds 4.00 4.00)
(contentsOpaque 1)
Deleted: branches/safari-609.1.17.0-branch/LayoutTests/platform/ios-wk2/compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt (256347 => 256348)
--- branches/safari-609.1.17.0-branch/LayoutTests/platform/ios-wk2/compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt 2020-02-11 21:33:41 UTC (rev 256347)
+++ branches/safari-609.1.17.0-branch/LayoutTests/platform/ios-wk2/compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt 2020-02-11 21:37:42 UTC (rev 256348)
@@ -1,24 +0,0 @@
-An in-view element animating off-screen should not have backing store.
-
-(GraphicsLayer
- (anchor 0.00 0.00)
- (bounds 800.00 2200.00)
- (backingStoreAttached 1)
- (children 1
- (GraphicsLayer
- (bounds 800.00 2200.00)
- (contentsOpaque 1)
- (backingStoreAttached 1)
- (children 1
- (GraphicsLayer
- (position 100.00 100.00)
- (bounds 100.00 100.00)
- (contentsOpaque 1)
- (drawsContent 1)
- (backingStoreAttached 0)
- )
- )
- )
- )
-)
-Some text here to force backing store.
Deleted: branches/safari-609.1.17.0-branch/LayoutTests/platform/ios-wk2/compositing/backing/transition-extent-expected.txt (256347 => 256348)
--- branches/safari-609.1.17.0-branch/LayoutTests/platform/ios-wk2/compositing/backing/transition-extent-expected.txt 2020-02-11 21:33:41 UTC (rev 256347)
+++ branches/safari-609.1.17.0-branch/LayoutTests/platform/ios-wk2/compositing/backing/transition-extent-expected.txt 2020-02-11 21:37:42 UTC (rev 256348)
@@ -1,31 +0,0 @@
-The second box should not have attached backing store.
-
-(GraphicsLayer
- (anchor 0.00 0.00)
- (bounds 800.00 2024.00)
- (backingStoreAttached 1)
- (children 1
- (GraphicsLayer
- (bounds 800.00 2024.00)
- (contentsOpaque 1)
- (backingStoreAttached 1)
- (children 2
- (GraphicsLayer
- (position 20.00 20.00)
- (bounds 100.00 100.00)
- (contentsOpaque 1)
- (drawsContent 1)
- (backingStoreAttached 1)
- )
- (GraphicsLayer
- (position 20.00 1500.00)
- (bounds 100.00 100.00)
- (contentsOpaque 1)
- (drawsContent 1)
- (backingStoreAttached 0)
- )
- )
- )
- )
-)
-visible boxhidden box
Deleted: branches/safari-609.1.17.0-branch/LayoutTests/platform/ios-wk2/legacy-animation-engine/compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt (256347 => 256348)
--- branches/safari-609.1.17.0-branch/LayoutTests/platform/ios-wk2/legacy-animation-engine/compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt 2020-02-11 21:33:41 UTC (rev 256347)
+++ branches/safari-609.1.17.0-branch/LayoutTests/platform/ios-wk2/legacy-animation-engine/compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt 2020-02-11 21:37:42 UTC (rev 256348)
@@ -1,24 +0,0 @@
-An in-view element animating off-screen should not have backing store.
-
-(GraphicsLayer
- (anchor 0.00 0.00)
- (bounds 800.00 2200.00)
- (backingStoreAttached 1)
- (children 1
- (GraphicsLayer
- (bounds 800.00 2200.00)
- (contentsOpaque 1)
- (backingStoreAttached 1)
- (children 1
- (GraphicsLayer
- (position 100.00 100.00)
- (bounds 100.00 100.00)
- (contentsOpaque 1)
- (drawsContent 1)
- (backingStoreAttached 0)
- )
- )
- )
- )
-)
-Some text here to force backing store.
Modified: branches/safari-609.1.17.0-branch/LayoutTests/platform/ipad/TestExpectations (256347 => 256348)
--- branches/safari-609.1.17.0-branch/LayoutTests/platform/ipad/TestExpectations 2020-02-11 21:33:41 UTC (rev 256347)
+++ branches/safari-609.1.17.0-branch/LayoutTests/platform/ipad/TestExpectations 2020-02-11 21:37:42 UTC (rev 256348)
@@ -68,4 +68,4 @@
webkit.org/b/203264 editing/pasteboard/smart-paste-paragraph-002.html [ Pass ]
webkit.org/b/203264 editing/pasteboard/smart-paste-paragraph-004.html [ Pass ]
-media/picture-in-picture [ Pass ]
+media/picture-in-picture [ Pass ]
\ No newline at end of file
Deleted: branches/safari-609.1.17.0-branch/LayoutTests/webanimations/accelerated-animation-canceled-before-commit-expected.html (256347 => 256348)
--- branches/safari-609.1.17.0-branch/LayoutTests/webanimations/accelerated-animation-canceled-before-commit-expected.html 2020-02-11 21:33:41 UTC (rev 256347)
+++ branches/safari-609.1.17.0-branch/LayoutTests/webanimations/accelerated-animation-canceled-before-commit-expected.html 2020-02-11 21:37:42 UTC (rev 256348)
@@ -1,20 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<style>
-
-#target {
- position: absolute;
- left: 0;
- top: 0;
- width: 100px;
- height: 100px;
- background-color: black;
-}
-
-</style>
-</head>
-<body>
-<div id="target"></div>
-</body>
-</html>
Deleted: branches/safari-609.1.17.0-branch/LayoutTests/webanimations/accelerated-animation-canceled-before-commit.html (256347 => 256348)
--- branches/safari-609.1.17.0-branch/LayoutTests/webanimations/accelerated-animation-canceled-before-commit.html 2020-02-11 21:33:41 UTC (rev 256347)
+++ branches/safari-609.1.17.0-branch/LayoutTests/webanimations/accelerated-animation-canceled-before-commit.html 2020-02-11 21:37:42 UTC (rev 256348)
@@ -1,37 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<style>
-
-#target {
- position: absolute;
- left: 0;
- top: 0;
- width: 100px;
- height: 100px;
- background-color: black;
- will-change: transform;
-}
-
-</style>
-</head>
-<body>
-<div id="target"></div>
-<script>
-
-if (window.testRunner)
- testRunner.waitUntilDone();
-
-const animation = document.getElementById("target").animate({ transform: ["translateX(50px)", "translateX(100px)"] }, 1000);
-
-// Wait until the animation is ready which means the action to play an accelerated animation has been enqueued by now, but not commmitted.
-animation.ready.then(() => {
- // Cancel the animation, this should cancel the uncommitted accelerated animation.
- animation.cancel();
- if (window.testRunner)
- testRunner.notifyDone();
-});
-
-</script>
-</body>
-</html>
Modified: branches/safari-609.1.17.0-branch/LayoutTests/webanimations/accelerated-animation-removal-upon-transition-completion.html (256347 => 256348)
--- branches/safari-609.1.17.0-branch/LayoutTests/webanimations/accelerated-animation-removal-upon-transition-completion.html 2020-02-11 21:33:41 UTC (rev 256347)
+++ branches/safari-609.1.17.0-branch/LayoutTests/webanimations/accelerated-animation-removal-upon-transition-completion.html 2020-02-11 21:37:42 UTC (rev 256348)
@@ -35,7 +35,7 @@
const target = document.getElementById("target");
target.style.transform = "translate3d(100px, 0, 0)";
target.getAnimations()[0].finished.then(() => {
- waitNFrames(2, () => {
+ waitNFrames(3, () => {
assert_equals(internals.acceleratedAnimationsForElement(target).length, 0, "There should be no accelerated animation after the animation completed.");
t.done();
});
Deleted: branches/safari-609.1.17.0-branch/LayoutTests/webanimations/accelerated-animation-renderer-change-expected.html (256347 => 256348)
--- branches/safari-609.1.17.0-branch/LayoutTests/webanimations/accelerated-animation-renderer-change-expected.html 2020-02-11 21:33:41 UTC (rev 256347)
+++ branches/safari-609.1.17.0-branch/LayoutTests/webanimations/accelerated-animation-renderer-change-expected.html 2020-02-11 21:37:42 UTC (rev 256348)
@@ -1,15 +0,0 @@
-<style>
-div {
- background-color: rebeccapurple;
- width: 100px;
- height: 100px;
-}
-
-#test{
- position: absolute;
- top: 200px;
- left: 200px;
-}
-
-</style>
-<div id=test></div>
Deleted: branches/safari-609.1.17.0-branch/LayoutTests/webanimations/accelerated-animation-renderer-change.html (256347 => 256348)
--- branches/safari-609.1.17.0-branch/LayoutTests/webanimations/accelerated-animation-renderer-change.html 2020-02-11 21:33:41 UTC (rev 256347)
+++ branches/safari-609.1.17.0-branch/LayoutTests/webanimations/accelerated-animation-renderer-change.html 2020-02-11 21:37:42 UTC (rev 256348)
@@ -1,67 +0,0 @@
-<style>
-
-div {
- background-color: rebeccapurple;
- width: 100px;
- height: 100px;
-}
-
-#test{
- position: absolute;
- top: 200px;
- left: 200px;
-}
-
-.animate-class {
- animation: 1s linear 0s 1 normal scale;
-}
-
-.first-letter::first-letter {
- color:red;
-}
-
-@keyframes scale {
- 0% {
- transform: scale(0);
- }
-
- 10% {
- transform: scale(1);
- }
-
- 100% {
- transform: scale(1);
- }
-}
-
-</style>
-<script>
-
-if (window.testRunner)
- testRunner.waitUntilDone();
-
-window._onload_ = async function() {
- const element = document.body.appendChild(document.createElement("div"));
- element.className = "animate-class";
- element.id = "test";
-
- const animation = element.getAnimations()[0];
-
- await animation.ready;
-
- await new Promise(resolve => requestAnimationFrame(resolve));
- await new Promise(resolve => requestAnimationFrame(resolve));
-
- // Force render tree rebuild in the middle of the animation.
- document.body.classList.add("first-letter");
-
- // See that the accelerated animation still progresses.
- while (animation.currentTime < 100)
- await new Promise(resolve => requestAnimationFrame(resolve));
-
- if (window.testRunner)
- testRunner.notifyDone();
-}
-
-</script>
-
Deleted: branches/safari-609.1.17.0-branch/LayoutTests/webanimations/transform-accelerated-animation-finishes-before-removal-expected.txt (256347 => 256348)
--- branches/safari-609.1.17.0-branch/LayoutTests/webanimations/transform-accelerated-animation-finishes-before-removal-expected.txt 2020-02-11 21:33:41 UTC (rev 256347)
+++ branches/safari-609.1.17.0-branch/LayoutTests/webanimations/transform-accelerated-animation-finishes-before-removal-expected.txt 2020-02-11 21:37:42 UTC (rev 256348)
@@ -1,18 +0,0 @@
-(GraphicsLayer
- (anchor 0.00 0.00)
- (bounds 800.00 600.00)
- (children 1
- (GraphicsLayer
- (bounds 800.00 600.00)
- (contentsOpaque 1)
- (children 1
- (GraphicsLayer
- (position 8.00 8.00)
- (bounds 100.00 100.00)
- (contentsOpaque 1)
- )
- )
- )
- )
-)
-
Deleted: branches/safari-609.1.17.0-branch/LayoutTests/webanimations/transform-accelerated-animation-finishes-before-removal.html (256347 => 256348)
--- branches/safari-609.1.17.0-branch/LayoutTests/webanimations/transform-accelerated-animation-finishes-before-removal.html 2020-02-11 21:33:41 UTC (rev 256347)
+++ branches/safari-609.1.17.0-branch/LayoutTests/webanimations/transform-accelerated-animation-finishes-before-removal.html 2020-02-11 21:37:42 UTC (rev 256348)
@@ -1,16 +0,0 @@
-<pre id="results"></pre>
-<div id="target" style="width: 100px; height: 100px; background-color: black;"></div>
-<script>
-
-testRunner.waitUntilDone();
-testRunner.dumpAsText();
-
-document.getElementById("target").animate([
- { transform: "translateX(0)" },
- { transform: "translateX(100px)" }
-], 100).finished.then(() => {
- document.getElementById("results").innerText = internals.layerTreeAsText(document);
- testRunner.notifyDone();
-});
-
-</script>
Deleted: branches/safari-609.1.17.0-branch/LayoutTests/webanimations/transform-accelerated-animation-removed-one-frame-after-finished-promise-expected.txt (256347 => 256348)
--- branches/safari-609.1.17.0-branch/LayoutTests/webanimations/transform-accelerated-animation-removed-one-frame-after-finished-promise-expected.txt 2020-02-11 21:33:41 UTC (rev 256347)
+++ branches/safari-609.1.17.0-branch/LayoutTests/webanimations/transform-accelerated-animation-removed-one-frame-after-finished-promise-expected.txt 2020-02-11 21:37:42 UTC (rev 256348)
@@ -1 +0,0 @@
-
Deleted: branches/safari-609.1.17.0-branch/LayoutTests/webanimations/transform-accelerated-animation-removed-one-frame-after-finished-promise.html (256347 => 256348)
--- branches/safari-609.1.17.0-branch/LayoutTests/webanimations/transform-accelerated-animation-removed-one-frame-after-finished-promise.html 2020-02-11 21:33:41 UTC (rev 256347)
+++ branches/safari-609.1.17.0-branch/LayoutTests/webanimations/transform-accelerated-animation-removed-one-frame-after-finished-promise.html 2020-02-11 21:37:42 UTC (rev 256348)
@@ -1,18 +0,0 @@
-<pre id="results"></pre>
-<div id="target" style="width: 100px; height: 100px; background-color: black;"></div>
-<script>
-
-testRunner.waitUntilDone();
-testRunner.dumpAsText();
-
-document.getElementById("target").animate([
- { transform: "translateX(0)" },
- { transform: "translateX(100px)" }
-], 100).finished.then(() => {
- requestAnimationFrame(() => {
- document.getElementById("results").innerText = internals.layerTreeAsText(document);
- testRunner.notifyDone();
- });
-});
-
-</script>
Modified: branches/safari-609.1.17.0-branch/Source/WebCore/ChangeLog (256347 => 256348)
--- branches/safari-609.1.17.0-branch/Source/WebCore/ChangeLog 2020-02-11 21:33:41 UTC (rev 256347)
+++ branches/safari-609.1.17.0-branch/Source/WebCore/ChangeLog 2020-02-11 21:37:42 UTC (rev 256348)
@@ -1,456 +1,3 @@
-2020-02-11 Russell Epstein <repst...@apple.com>
-
- Cherry-pick r256214. rdar://problem/59349205
-
- WebContent jetsams on Sony lens webpage due to spike of IOSurfaces
- https://bugs.webkit.org/show_bug.cgi?id=207493
- rdar://problem/59020443
-
- Reviewed by Zalan Bujtas.
- Source/WebCore:
-
- There were three issues that contributed to massive backing store allocation on
- <https://www.sony.com/electronics/lenses/t/camera-lenses>.
-
- The first, fixed in r256095, was that the Web Animations code unioned the untransitioning
- bounds with the transitioning bounds, causing the computation of large extent rects.
-
- The second, fixed in r256181, was that GraphicsLayerCA would keep hold of a transform
- animation for an extra frame, causing a rendering update where
- RenderLayerBacking::updateGeometry() would have cleared the extent, but GraphicsLayerCA
- still thought transform was animating, causing GraphicsLayerCA::updateCoverage() to keep
- backing store attached.
-
- This patch is the final fix; when animations start and end, we need to ensure that
- RenderLayerBacking::updateGeometry() is called so that we compute the animation extent in
- the same frame that adds the animation.
-
- Test: compositing/backing/transition-extent.html
-
- * rendering/RenderLayerBacking.cpp:
- (WebCore::RenderLayerBacking::startAnimation):
- (WebCore::RenderLayerBacking::animationFinished):
-
- LayoutTests:
-
- Test with an out-of-view transitioning element which should not get backing store.
-
- * compositing/backing/transition-extent-expected.txt: Added.
- * compositing/backing/transition-extent.html: Added.
- * platform/ios-wk2/compositing/backing/transition-extent-expected.txt: Added.
-
- git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256214 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 2020-02-11 Russell Epstein <repst...@apple.com>
-
- Cherry-pick r256181. rdar://problem/59349184
-
- There's an event loop cycle between an animation finishing, and it being removed from GraphicsLayerCA
- https://bugs.webkit.org/show_bug.cgi?id=207361
- <rdar://problem/59280370>
-
- Reviewed by Simon Fraser.
-
- Source/WebCore:
-
- Animations should be removed from GraphicsLayersCAs in the same rendering update that changes the playState of the
- animation to "finished", to avoid layer flush where a GraphicsLayersCAs has no extent set, but thinks there is
- an active transform animation.
-
- To do this, instead of enqueuing accelerated actions when resolving animations during style resolution, in
- KeyframeAnimation::apply(), we enqueue them as soon as an animation's current time may have changed: in
- WebAnimation::tick() and WebAnimation::play() with supporting functions newly exposed on AnimationEffect.
-
- Now, accelerated animations are enqueued and applied during the "update animations and send events" procedure.
-
- * animation/AnimationEffect.h:
- * animation/KeyframeEffect.cpp:
- (WebCore::KeyframeEffect::apply):
- (WebCore::KeyframeEffect::updateAcceleratedActions):
- (WebCore::KeyframeEffect::animationDidTick):
- (WebCore::KeyframeEffect::animationDidPlay):
- * animation/KeyframeEffect.h:
- * animation/WebAnimation.cpp:
- (WebCore::WebAnimation::play):
- (WebCore::WebAnimation::tick):
-
- LayoutTests:
-
- Lower the number of frames to wait after an animation completes by one to check that the accelerated animation has been removed
- to show that we enqueue accelerated actions as part of the "update animations and send events" procedure.
-
- * webanimations/accelerated-animation-removal-upon-transition-completion.html: Added.
-
-
- git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256181 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 2020-02-10 Antoine Quint <grao...@webkit.org>
-
- There's an event loop cycle between an animation finishing, and it being removed from GraphicsLayerCA
- https://bugs.webkit.org/show_bug.cgi?id=207361
- <rdar://problem/59280370>
-
- Reviewed by Simon Fraser.
-
- Animations should be removed from GraphicsLayersCAs in the same rendering update that changes the playState of the
- animation to "finished", to avoid layer flush where a GraphicsLayersCAs has no extent set, but thinks there is
- an active transform animation.
-
- To do this, instead of enqueuing accelerated actions when resolving animations during style resolution, in
- KeyframeAnimation::apply(), we enqueue them as soon as an animation's current time may have changed: in
- WebAnimation::tick() and WebAnimation::play() with supporting functions newly exposed on AnimationEffect.
-
- Now, accelerated animations are enqueued and applied during the "update animations and send events" procedure.
-
- * animation/AnimationEffect.h:
- * animation/KeyframeEffect.cpp:
- (WebCore::KeyframeEffect::apply):
- (WebCore::KeyframeEffect::updateAcceleratedActions):
- (WebCore::KeyframeEffect::animationDidTick):
- (WebCore::KeyframeEffect::animationDidPlay):
- * animation/KeyframeEffect.h:
- * animation/WebAnimation.cpp:
- (WebCore::WebAnimation::play):
- (WebCore::WebAnimation::tick):
-
-2020-02-11 Russell Epstein <repst...@apple.com>
-
- Cherry-pick r256095. rdar://problem/59349202
-
- Extent of a composited animation should not include the untransformed position
- https://bugs.webkit.org/show_bug.cgi?id=207434
-
- Reviewed by Sam Weinig.
- Source/WebCore:
-
- To determine whether to create ("attach") backing store for layers with transform animations,
- we compute the union of all the states of the animation as an "extent", and ask whether it intersects
- the coverage rect in GraphicsLayerCA.
-
- The non-Web Animations transition code did this correctly, just unioning the bounds transformed by
- the start and end state.
-
- The non-Web Animations keyframe code, and the Web Animations KeyframeEffect code (used for both CSS transitions
- and animations) also unioned with the unanimated bounds, which could create overly large extents in some
- cases, contributing to jetsams on iOS (rdar://problem/59020443).
-
- Fix KeyframeAnimation and KeyframeEffect to not union with the untransformed bounds.
-
- Tests: compositing/backing/backing-store-attachment-animating-outside-viewport.html
- legacy-animation-engine/compositing/backing/backing-store-attachment-animating-outside-viewport.html
-
- * animation/KeyframeEffect.cpp:
- (WebCore::KeyframeEffect::computeExtentOfTransformAnimation const):
- * page/animation/KeyframeAnimation.cpp:
- (WebCore::KeyframeAnimation::computeExtentOfTransformAnimation const):
-
- LayoutTests:
-
- New test that checks backing store attachment and overlap for an element which is positioned in-view,
- but is move offscreen by the animation.
-
- New baselines for overlap tests, since overlap no longer considers the unanimated position.
-
- * compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt: Added.
- * compositing/backing/backing-store-attachment-animating-outside-viewport.html: Added.
- * compositing/layer-creation/translate-animation-overlap-expected.txt:
- * compositing/layer-creation/translate-scale-animation-overlap-expected.txt:
- * legacy-animation-engine/compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt: Added.
- * legacy-animation-engine/compositing/backing/backing-store-attachment-animating-outside-viewport.html: Added.
- * legacy-animation-engine/compositing/layer-creation/translate-animation-overlap-expected.txt:
- * legacy-animation-engine/compositing/layer-creation/translate-scale-animation-overlap-expected.txt:
- * platform/ios-wk2/compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt: Added.
- * platform/ios-wk2/legacy-animation-engine/compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt: Added.
-
-
- git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256095 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 2020-02-08 Simon Fraser <simon.fra...@apple.com>
-
- Extent of a composited animation should not include the untransformed position
- https://bugs.webkit.org/show_bug.cgi?id=207434
-
- Reviewed by Sam Weinig.
-
- To determine whether to create ("attach") backing store for layers with transform animations,
- we compute the union of all the states of the animation as an "extent", and ask whether it intersects
- the coverage rect in GraphicsLayerCA.
-
- The non-Web Animations transition code did this correctly, just unioning the bounds transformed by
- the start and end state.
-
- The non-Web Animations keyframe code, and the Web Animations KeyframeEffect code (used for both CSS transitions
- and animations) also unioned with the unanimated bounds, which could create overly large extents in some
- cases, contributing to jetsams on iOS (rdar://problem/59020443).
-
- Fix KeyframeAnimation and KeyframeEffect to not union with the untransformed bounds.
-
- Tests: compositing/backing/backing-store-attachment-animating-outside-viewport.html
- legacy-animation-engine/compositing/backing/backing-store-attachment-animating-outside-viewport.html
-
- * animation/KeyframeEffect.cpp:
- (WebCore::KeyframeEffect::computeExtentOfTransformAnimation const):
- * page/animation/KeyframeAnimation.cpp:
- (WebCore::KeyframeAnimation::computeExtentOfTransformAnimation const):
-
-2020-02-11 Russell Epstein <repst...@apple.com>
-
- Cherry-pick r255810. rdar://problem/59349189
-
-2020-02-10 Simon Fraser <simon.fra...@apple.com>
-
- WebContent jetsams on Sony lens webpage due to spike of IOSurfaces
- https://bugs.webkit.org/show_bug.cgi?id=207493
- rdar://problem/59020443
-
- Reviewed by Zalan Bujtas.
-
- There were three issues that contributed to massive backing store allocation on
- <https://www.sony.com/electronics/lenses/t/camera-lenses>.
-
- The first, fixed in r256095, was that the Web Animations code unioned the untransitioning
- bounds with the transitioning bounds, causing the computation of large extent rects.
-
- The second, fixed in r256181, was that GraphicsLayerCA would keep hold of a transform
- animation for an extra frame, causing a rendering update where
- RenderLayerBacking::updateGeometry() would have cleared the extent, but GraphicsLayerCA
- still thought transform was animating, causing GraphicsLayerCA::updateCoverage() to keep
- backing store attached.
-
- This patch is the final fix; when animations start and end, we need to ensure that
- RenderLayerBacking::updateGeometry() is called so that we compute the animation extent in
- the same frame that adds the animation.
-
- Test: compositing/backing/transition-extent.html
-
- * rendering/RenderLayerBacking.cpp:
- (WebCore::RenderLayerBacking::startAnimation):
- (WebCore::RenderLayerBacking::animationFinished):
-
- [Web Animations] Canceling an accelerated animation before it was committed does not prevent it from playing
- https://bugs.webkit.org/show_bug.cgi?id=207253
- <rdar://problem/59143624>
-
- Reviewed by Antti Koivisto.
-
- Source/WebCore:
-
- Test: webanimations/accelerated-animation-canceled-before-commit.html
-
- Merely checking whether an accelerated animation is running prior to enqueuing an action to cancel it is not sufficient
- since there could be an uncommitted change to start it upon the next animation frame. The same logic would need to apply
- in other situations where the playback state changes for a potentially in-flight animation.
-
- * animation/KeyframeEffect.cpp:
- (WebCore::KeyframeEffect::animationDidSeek):
- (WebCore::KeyframeEffect::animationWasCanceled):
- (WebCore::KeyframeEffect::willChangeRenderer):
- (WebCore::KeyframeEffect::animationSuspensionStateDidChange):
-
- LayoutTests:
-
- Add a new test that checks that an accelerated animation that has been enqueued to start but has
- not yet been committed is correctly canceled when the cancel() method is called. This test fails
- prior to this source change.
-
- * webanimations/accelerated-animation-canceled-before-commit-expected.html: Added.
- * webanimations/accelerated-animation-canceled-before-commit.html: Added.
-
- git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255810 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 2020-02-05 Antoine Quint <grao...@apple.com>
-
- [Web Animations] Canceling an accelerated animation before it was committed does not prevent it from playing
- https://bugs.webkit.org/show_bug.cgi?id=207253
- <rdar://problem/59143624>
-
- Reviewed by Antti Koivisto.
-
- Test: webanimations/accelerated-animation-canceled-before-commit.html
-
- Merely checking whether an accelerated animation is running prior to enqueuing an action to cancel it is not sufficient
- since there could be an uncommitted change to start it upon the next animation frame. The same logic would need to apply
- in other situations where the playback state changes for a potentially in-flight animation.
-
- * animation/KeyframeEffect.cpp:
- (WebCore::KeyframeEffect::animationDidSeek):
- (WebCore::KeyframeEffect::animationWasCanceled):
- (WebCore::KeyframeEffect::willChangeRenderer):
- (WebCore::KeyframeEffect::animationSuspensionStateDidChange):
-
-2020-02-11 Russell Epstein <repst...@apple.com>
-
- Cherry-pick r255663. rdar://problem/59349185
-
- Accelerated animations freeze on render tree rebuild
- https://bugs.webkit.org/show_bug.cgi?id=201048
- <rdar://problem/54612621>
-
- Reviewed by Antoine Quint.
-
- Source/WebCore:
-
- If there is an accelerated animation in progress for a renderer and the render tree is rebuild the animation
- does not continue with the new renderer.
-
- To fix, make sure that the animation leaves the accelerated state when the renderer is removed. The new renderer
- will then become accelerated automatically.
-
- Original test case by Tim Guan-tin Chien.
-
- Test: webanimations/accelerated-animation-renderer-change.html
-
- * animation/AnimationTimeline.cpp:
- (WebCore::AnimationTimeline::willChangeRendererForElement):
- * animation/AnimationTimeline.h:
- * animation/KeyframeEffect.cpp:
- (WebCore::KeyframeEffect::willChangeRenderer):
- * animation/KeyframeEffect.h:
- * animation/WebAnimation.cpp:
- (WebCore::WebAnimation::willChangeRenderer):
- * animation/WebAnimation.h:
- * rendering/updating/RenderTreeUpdater.cpp:
- (WebCore::RenderTreeUpdater::tearDownRenderers):
-
- LayoutTests:
-
- * webanimations/accelerated-animation-renderer-change-expected.html: Added.
- * webanimations/accelerated-animation-renderer-change.html: Added.
-
-
- git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255663 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 2020-02-03 Antti Koivisto <an...@apple.com>
-
- Accelerated animations freeze on render tree rebuild
- https://bugs.webkit.org/show_bug.cgi?id=201048
- <rdar://problem/54612621>
-
- Reviewed by Antoine Quint.
-
- If there is an accelerated animation in progress for a renderer and the render tree is rebuild the animation
- does not continue with the new renderer.
-
- To fix, make sure that the animation leaves the accelerated state when the renderer is removed. The new renderer
- will then become accelerated automatically.
-
- Original test case by Tim Guan-tin Chien.
-
- Test: webanimations/accelerated-animation-renderer-change.html
-
- * animation/AnimationTimeline.cpp:
- (WebCore::AnimationTimeline::willChangeRendererForElement):
- * animation/AnimationTimeline.h:
- * animation/KeyframeEffect.cpp:
- (WebCore::KeyframeEffect::willChangeRenderer):
- * animation/KeyframeEffect.h:
- * animation/WebAnimation.cpp:
- (WebCore::WebAnimation::willChangeRenderer):
- * animation/WebAnimation.h:
- * rendering/updating/RenderTreeUpdater.cpp:
- (WebCore::RenderTreeUpdater::tearDownRenderers):
-
-2020-02-11 Russell Epstein <repst...@apple.com>
-
- Cherry-pick r255593. rdar://problem/59349198
-
- [Web Animations] Accelerated animations don't run until their natural completion
- https://bugs.webkit.org/show_bug.cgi?id=207130
- <rdar://problem/59106047>
-
- Reviewed by Dean Jackson.
-
- Source/WebCore:
-
- Tests: webanimations/transform-accelerated-animation-finishes-before-removal.html
- webanimations/transform-accelerated-animation-removed-one-frame-after-finished-promise.html
-
- Ensure we don't tear down a composited renderer until all of its runnning accelerated animations are completed.
- The accelerated animations will be queued for removal in the next animation frame.
-
- * animation/KeyframeEffect.cpp:
- (WebCore::KeyframeEffect::isRunningAcceleratedAnimationForProperty const):
- * animation/KeyframeEffect.h:
- * animation/KeyframeEffectStack.cpp:
- (WebCore::KeyframeEffectStack::isCurrentlyAffectingProperty const):
-
- LayoutTests:
-
- Add two new tests that ensures that an accelerated animation still yields compositing on an element when
- its finished promise is resolved, but that it's no longer the case on the next frame.
-
- This required an existing test to be updated to wait until the next frame before checking the composited
- status of an element on which an animation had just completed.
-
- * compositing/geometry/limit-layer-bounds-opacity-transition.html:
- * webanimations/transform-accelerated-animation-finishes-before-removal-expected.txt: Added.
- * webanimations/transform-accelerated-animation-finishes-before-removal.html: Added.
- * webanimations/transform-accelerated-animation-removed-one-frame-after-finished-promise-expected.txt: Added.
- * webanimations/transform-accelerated-animation-removed-one-frame-after-finished-promise.html: Added.
-
- git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255593 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 2020-02-03 Antoine Quint <grao...@apple.com>
-
- [Web Animations] Accelerated animations don't run until their natural completion
- https://bugs.webkit.org/show_bug.cgi?id=207130
- <rdar://problem/59106047>
-
- Reviewed by Dean Jackson.
-
- Tests: webanimations/transform-accelerated-animation-finishes-before-removal.html
- webanimations/transform-accelerated-animation-removed-one-frame-after-finished-promise.html
-
- Ensure we don't tear down a composited renderer until all of its runnning accelerated animations are completed.
- The accelerated animations will be queued for removal in the next animation frame.
-
- * animation/KeyframeEffect.cpp:
- (WebCore::KeyframeEffect::isRunningAcceleratedAnimationForProperty const):
- * animation/KeyframeEffect.h:
- * animation/KeyframeEffectStack.cpp:
- (WebCore::KeyframeEffectStack::isCurrentlyAffectingProperty const):
-
-2020-02-11 Russell Epstein <repst...@apple.com>
-
- Cherry-pick r255552. rdar://problem/59349213
-
- ASSERTION FAILED: !HashTranslator::equal(KeyTraits::emptyValue(), key) on animations/keyframe-autoclose-brace.html
- https://bugs.webkit.org/show_bug.cgi?id=207071
- <rdar://problem/59076249>
-
- Patch by Antoine Quint <grao...@apple.com> on 2020-02-02
- Reviewed by Dean Jackson.
-
- Source/WebCore:
-
- We cannot add CSSPropertyInvalid to a HashSet<CSSPropertyID>, because it triggers an ASSERT, and also we shouldn't
- because we wouldn't know how to animate that CSS property.
-
- * animation/AnimationTimeline.cpp:
- (WebCore::compileTransitionPropertiesInStyle):
-
- LayoutTests:
-
- The crash is fixed, we can start running the test as expected again.
-
- * platform/ipad/TestExpectations:
-
- git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255552 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 2020-02-02 Antoine Quint <grao...@apple.com>
-
- ASSERTION FAILED: !HashTranslator::equal(KeyTraits::emptyValue(), key) on animations/keyframe-autoclose-brace.html
- https://bugs.webkit.org/show_bug.cgi?id=207071
- <rdar://problem/59076249>
-
- Reviewed by Dean Jackson.
-
- We cannot add CSSPropertyInvalid to a HashSet<CSSPropertyID>, because it triggers an ASSERT, and also we shouldn't
- because we wouldn't know how to animate that CSS property.
-
- * animation/AnimationTimeline.cpp:
- (WebCore::compileTransitionPropertiesInStyle):
-
2020-02-07 Russell Epstein <repst...@apple.com>
Cherry-pick r256017. rdar://problem/59261560
Modified: branches/safari-609.1.17.0-branch/Source/WebCore/animation/AnimationEffect.h (256347 => 256348)
--- branches/safari-609.1.17.0-branch/Source/WebCore/animation/AnimationEffect.h 2020-02-11 21:33:41 UTC (rev 256347)
+++ branches/safari-609.1.17.0-branch/Source/WebCore/animation/AnimationEffect.h 2020-02-11 21:37:42 UTC (rev 256348)
@@ -60,8 +60,6 @@
virtual void apply(RenderStyle&) = 0;
virtual void invalidate() = 0;
- virtual void animationDidTick() = 0;
- virtual void animationDidPlay() = 0;
virtual void animationDidSeek() = 0;
virtual void animationWasCanceled() = 0;
virtual void animationSuspensionStateDidChange(bool) = 0;
Modified: branches/safari-609.1.17.0-branch/Source/WebCore/animation/AnimationTimeline.cpp (256347 => 256348)
--- branches/safari-609.1.17.0-branch/Source/WebCore/animation/AnimationTimeline.cpp 2020-02-11 21:33:41 UTC (rev 256347)
+++ branches/safari-609.1.17.0-branch/Source/WebCore/animation/AnimationTimeline.cpp 2020-02-11 21:37:42 UTC (rev 256348)
@@ -241,12 +241,6 @@
animation->remove();
}
-void AnimationTimeline::willChangeRendererForElement(Element& element)
-{
- for (auto& animation : animationsForElement(element))
- animation->willChangeRenderer();
-}
-
void AnimationTimeline::cancelDeclarativeAnimationsForElement(Element& element)
{
for (auto& cssTransition : m_elementToCSSTransitionsMap.get(&element))
@@ -421,7 +415,7 @@
auto shorthand = shorthandForProperty(property);
for (size_t j = 0; j < shorthand.length(); ++j)
transitionProperties.add(shorthand.properties()[j]);
- } else if (property != CSSPropertyInvalid)
+ } else
transitionProperties.add(property);
} else if (mode == Animation::AnimateAll) {
transitionPropertiesContainAll = true;
Modified: branches/safari-609.1.17.0-branch/Source/WebCore/animation/AnimationTimeline.h (256347 => 256348)
--- branches/safari-609.1.17.0-branch/Source/WebCore/animation/AnimationTimeline.h 2020-02-11 21:33:41 UTC (rev 256347)
+++ branches/safari-609.1.17.0-branch/Source/WebCore/animation/AnimationTimeline.h 2020-02-11 21:37:42 UTC (rev 256348)
@@ -61,7 +61,6 @@
Vector<RefPtr<WebAnimation>> animationsForElement(Element&, Ordering ordering = Ordering::Unsorted) const;
void elementWasRemoved(Element&);
void removeAnimationsForElement(Element&);
- void willChangeRendererForElement(Element&);
void cancelDeclarativeAnimationsForElement(Element&);
virtual void animationWasAddedToElement(WebAnimation&, Element&);
virtual void animationWasRemovedFromElement(WebAnimation&, Element&);
Modified: branches/safari-609.1.17.0-branch/Source/WebCore/animation/KeyframeEffect.cpp (256347 => 256348)
--- branches/safari-609.1.17.0-branch/Source/WebCore/animation/KeyframeEffect.cpp 2020-02-11 21:33:41 UTC (rev 256347)
+++ branches/safari-609.1.17.0-branch/Source/WebCore/animation/KeyframeEffect.cpp 2020-02-11 21:37:42 UTC (rev 256348)
@@ -1084,6 +1084,8 @@
auto computedTiming = getComputedTiming();
m_phaseAtLastApplication = computedTiming.phase;
+ updateAcceleratedActions(computedTiming);
+
InspectorInstrumentation::willApplyKeyframeEffect(*m_target, *this, computedTiming);
if (!computedTiming.progress)
@@ -1103,11 +1105,6 @@
return m_phaseAtLastApplication == AnimationEffectPhase::Active;
}
-bool KeyframeEffect::isRunningAcceleratedAnimationForProperty(CSSPropertyID property) const
-{
- return m_isRunningAccelerated && CSSPropertyAnimation::animationOfPropertyIsAccelerated(property) && m_blendingKeyframes.properties().contains(property);
-}
-
void KeyframeEffect::invalidate()
{
invalidateElement(m_target.get());
@@ -1329,13 +1326,11 @@
return nullptr;
}
-void KeyframeEffect::updateAcceleratedActions()
+void KeyframeEffect::updateAcceleratedActions(ComputedEffectTiming computedTiming)
{
if (m_acceleratedPropertiesState == AcceleratedProperties::None)
return;
- auto computedTiming = getComputedTiming();
-
// If we're not already running accelerated, the only thing we're interested in is whether we need to start the animation
// which we need to do once we're in the active phase. Otherwise, there's no change in accelerated state to consider.
bool isActive = computedTiming.phase == AnimationEffectPhase::Active;
@@ -1378,41 +1373,23 @@
animation()->acceleratedStateDidChange();
}
-void KeyframeEffect::animationDidTick()
-{
- invalidate();
- updateAcceleratedActions();
-}
-
-void KeyframeEffect::animationDidPlay()
-{
- if (m_acceleratedPropertiesState != AcceleratedProperties::None)
- addPendingAcceleratedAction(AcceleratedAction::Play);
-}
-
void KeyframeEffect::animationDidSeek()
{
// There is no need to seek if we're not playing an animation already. If seeking
// means we're moving into an active lexicalGlobalObject, we'll pick this up in apply().
- if (m_isRunningAccelerated || isAboutToRunAccelerated())
+ if (m_isRunningAccelerated)
addPendingAcceleratedAction(AcceleratedAction::Seek);
}
void KeyframeEffect::animationWasCanceled()
{
- if (m_isRunningAccelerated || isAboutToRunAccelerated())
+ if (m_isRunningAccelerated)
addPendingAcceleratedAction(AcceleratedAction::Stop);
}
-void KeyframeEffect::willChangeRenderer()
-{
- if (m_isRunningAccelerated || isAboutToRunAccelerated())
- addPendingAcceleratedAction(AcceleratedAction::Stop);
-}
-
void KeyframeEffect::animationSuspensionStateDidChange(bool animationIsSuspended)
{
- if (m_isRunningAccelerated || isAboutToRunAccelerated())
+ if (m_isRunningAccelerated)
addPendingAcceleratedAction(animationIsSuspended ? AcceleratedAction::Pause : AcceleratedAction::Play);
}
@@ -1538,7 +1515,7 @@
auto& box = downcast<RenderBox>(*renderer());
auto rendererBox = snapRectToDevicePixels(box.borderBoxRect(), box.document().deviceScaleFactor());
- LayoutRect cumulativeBounds;
+ auto cumulativeBounds = bounds;
for (const auto& keyframe : m_blendingKeyframes.keyframes()) {
const auto* keyframeStyle = keyframe.style();
Modified: branches/safari-609.1.17.0-branch/Source/WebCore/animation/KeyframeEffect.h (256347 => 256348)
--- branches/safari-609.1.17.0-branch/Source/WebCore/animation/KeyframeEffect.h 2020-02-11 21:33:41 UTC (rev 256347)
+++ branches/safari-609.1.17.0-branch/Source/WebCore/animation/KeyframeEffect.h 2020-02-11 21:37:42 UTC (rev 256348)
@@ -115,8 +115,6 @@
void getAnimatedStyle(std::unique_ptr<RenderStyle>& animatedStyle);
void apply(RenderStyle&) override;
void invalidate() override;
- void animationDidTick() final;
- void animationDidPlay() final;
void animationDidSeek() final;
void animationWasCanceled() final;
void animationSuspensionStateDidChange(bool) final;
@@ -124,8 +122,6 @@
void animationTimingDidChange();
void applyPendingAcceleratedActions();
- void willChangeRenderer();
-
void setAnimation(WebAnimation*) final;
RenderElement* renderer() const override;
@@ -152,7 +148,6 @@
enum class Accelerated : uint8_t { Yes, No };
bool isCurrentlyAffectingProperty(CSSPropertyID, Accelerated = Accelerated::No) const;
- bool isRunningAcceleratedAnimationForProperty(CSSPropertyID) const;
private:
KeyframeEffect(Element*);
@@ -165,7 +160,7 @@
void copyPropertiesFromSource(Ref<KeyframeEffect>&&);
ExceptionOr<void> processKeyframes(JSC::JSGlobalObject&, JSC::Strong<JSC::JSObject>&&);
void addPendingAcceleratedAction(AcceleratedAction);
- void updateAcceleratedActions();
+ void updateAcceleratedActions(ComputedEffectTiming);
void setAnimatedPropertiesInStyle(RenderStyle&, double);
TimingFunction* timingFunctionForKeyframeAtIndex(size_t);
Ref<const Animation> backingAnimationForCompositedRenderer() const;
Modified: branches/safari-609.1.17.0-branch/Source/WebCore/animation/KeyframeEffectStack.cpp (256347 => 256348)
--- branches/safari-609.1.17.0-branch/Source/WebCore/animation/KeyframeEffectStack.cpp 2020-02-11 21:33:41 UTC (rev 256347)
+++ branches/safari-609.1.17.0-branch/Source/WebCore/animation/KeyframeEffectStack.cpp 2020-02-11 21:37:42 UTC (rev 256348)
@@ -63,7 +63,7 @@
bool KeyframeEffectStack::isCurrentlyAffectingProperty(CSSPropertyID property) const
{
for (auto& effect : m_effects) {
- if (effect->isCurrentlyAffectingProperty(property) || effect->isRunningAcceleratedAnimationForProperty(property))
+ if (effect->isCurrentlyAffectingProperty(property))
return true;
}
return false;
Modified: branches/safari-609.1.17.0-branch/Source/WebCore/animation/WebAnimation.cpp (256347 => 256348)
--- branches/safari-609.1.17.0-branch/Source/WebCore/animation/WebAnimation.cpp 2020-02-11 21:33:41 UTC (rev 256347)
+++ branches/safari-609.1.17.0-branch/Source/WebCore/animation/WebAnimation.cpp 2020-02-11 21:37:42 UTC (rev 256348)
@@ -667,12 +667,6 @@
m_effect->animationWasCanceled();
}
-void WebAnimation::willChangeRenderer()
-{
- if (is<KeyframeEffect>(m_effect))
- downcast<KeyframeEffect>(*m_effect).willChangeRenderer();
-}
-
void WebAnimation::enqueueAnimationPlaybackEvent(const AtomString& type, Optional<Seconds> currentTime, Optional<Seconds> timelineTime)
{
auto event = AnimationPlaybackEvent::create(type, currentTime, timelineTime);
@@ -974,9 +968,6 @@
invalidateEffect();
- if (m_effect)
- m_effect->animationDidPlay();
-
return { };
}
@@ -1192,8 +1183,7 @@
if (hasPendingPlayTask())
runPendingPlayTask();
- if (!isEffectInvalidationSuspended() && m_effect)
- m_effect->animationDidTick();
+ invalidateEffect();
}
void WebAnimation::resolve(RenderStyle& targetStyle)
Modified: branches/safari-609.1.17.0-branch/Source/WebCore/animation/WebAnimation.h (256347 => 256348)
--- branches/safari-609.1.17.0-branch/Source/WebCore/animation/WebAnimation.h 2020-02-11 21:33:41 UTC (rev 256347)
+++ branches/safari-609.1.17.0-branch/Source/WebCore/animation/WebAnimation.h 2020-02-11 21:37:42 UTC (rev 256348)
@@ -123,7 +123,6 @@
void effectTargetDidChange(Element* previousTarget, Element* newTarget);
void acceleratedStateDidChange();
void applyPendingAcceleratedActions();
- void willChangeRenderer();
bool isRunningAccelerated() const;
bool isCompletelyAccelerated() const;
Modified: branches/safari-609.1.17.0-branch/Source/WebCore/page/animation/KeyframeAnimation.cpp (256347 => 256348)
--- branches/safari-609.1.17.0-branch/Source/WebCore/page/animation/KeyframeAnimation.cpp 2020-02-11 21:33:41 UTC (rev 256347)
+++ branches/safari-609.1.17.0-branch/Source/WebCore/page/animation/KeyframeAnimation.cpp 2020-02-11 21:37:42 UTC (rev 256348)
@@ -253,7 +253,7 @@
auto& box = downcast<RenderBox>(*renderer());
auto rendererBox = snapRectToDevicePixels(box.borderBoxRect(), box.document().deviceScaleFactor());
- LayoutRect cumulativeBounds;
+ auto cumulativeBounds = bounds;
for (auto& keyframe : m_keyframes.keyframes()) {
const RenderStyle* keyframeStyle = keyframe.style();
Modified: branches/safari-609.1.17.0-branch/Source/WebCore/rendering/RenderLayerBacking.cpp (256347 => 256348)
--- branches/safari-609.1.17.0-branch/Source/WebCore/rendering/RenderLayerBacking.cpp 2020-02-11 21:33:41 UTC (rev 256347)
+++ branches/safari-609.1.17.0-branch/Source/WebCore/rendering/RenderLayerBacking.cpp 2020-02-11 21:37:42 UTC (rev 256348)
@@ -3283,10 +3283,8 @@
didAnimate = true;
#endif
- if (didAnimate) {
+ if (didAnimate)
m_owningLayer.setNeedsPostLayoutCompositingUpdate();
- m_owningLayer.setNeedsCompositingGeometryUpdate();
- }
return didAnimate;
}
@@ -3305,7 +3303,6 @@
{
m_graphicsLayer->removeAnimation(animationName);
m_owningLayer.setNeedsPostLayoutCompositingUpdate();
- m_owningLayer.setNeedsCompositingGeometryUpdate();
}
bool RenderLayerBacking::startTransition(double timeOffset, CSSPropertyID property, const RenderStyle* fromStyle, const RenderStyle* toStyle)
Modified: branches/safari-609.1.17.0-branch/Source/WebCore/rendering/updating/RenderTreeUpdater.cpp (256347 => 256348)
--- branches/safari-609.1.17.0-branch/Source/WebCore/rendering/updating/RenderTreeUpdater.cpp 2020-02-11 21:33:41 UTC (rev 256347)
+++ branches/safari-609.1.17.0-branch/Source/WebCore/rendering/updating/RenderTreeUpdater.cpp 2020-02-11 21:37:42 UTC (rev 256348)
@@ -560,9 +560,7 @@
while (teardownStack.size() > depth) {
auto& element = *teardownStack.takeLast();
- switch (teardownType) {
- case TeardownType::Full:
- case TeardownType::RendererUpdateCancelingAnimations:
+ if (teardownType == TeardownType::Full || teardownType == TeardownType::RendererUpdateCancelingAnimations) {
if (timeline) {
if (document.renderTreeBeingDestroyed())
timeline->elementWasRemoved(element);
@@ -570,11 +568,6 @@
timeline->cancelDeclarativeAnimationsForElement(element);
}
animationController.cancelAnimations(element);
- break;
- case TeardownType::RendererUpdate:
- if (timeline)
- timeline->willChangeRendererForElement(element);
- break;
}
if (teardownType == TeardownType::Full)