haikuwebkit/LayoutTests/animations/missing-from-to-transforms....

117 lines
3.6 KiB
HTML
Raw Permalink Normal View History

[Web Animations] Turn Web Animations with CSS integration on https://bugs.webkit.org/show_bug.cgi?id=184819 <rdar://problem/39597337> Reviewed by Dean Jackson. LayoutTests/imported/mozilla: * css-animations/test_animation-cancel.html: * css-animations/test_animation-computed-timing.html: * css-animations/test_animation-currenttime.html: * css-animations/test_animation-finish.html: * css-animations/test_animation-finished.html: * css-animations/test_animation-id.html: * css-animations/test_animation-pausing.html: * css-animations/test_animation-playstate.html: * css-animations/test_animation-ready.html: * css-animations/test_animation-reverse.html: * css-animations/test_animation-starttime.html: * css-animations/test_animations-dynamic-changes.html: * css-animations/test_cssanimation-animationname.html: * css-animations/test_document-get-animations.html: * css-animations/test_effect-target.html: * css-animations/test_element-get-animations.html: * css-animations/test_event-dispatch.html: * css-animations/test_event-order.html: * css-animations/test_keyframeeffect-getkeyframes.html: * css-animations/test_pseudoElement-get-animations.html: * css-animations/test_setting-effect.html: * css-transitions/test_animation-cancel.html: * css-transitions/test_animation-computed-timing.html: * css-transitions/test_animation-currenttime.html: * css-transitions/test_animation-finished.html: * css-transitions/test_animation-pausing.html: * css-transitions/test_animation-ready.html: * css-transitions/test_animation-starttime.html: * css-transitions/test_csstransition-transitionproperty.html: * css-transitions/test_document-get-animations.html: * css-transitions/test_effect-target.html: * css-transitions/test_element-get-animations.html: * css-transitions/test_event-dispatch.html: * css-transitions/test_keyframeeffect-getkeyframes.html: * css-transitions/test_pseudoElement-get-animations.html: * css-transitions/test_setting-effect.html: LayoutTests/imported/w3c: * web-platform-tests/css-timing-1/frames-timing-functions-output.html: * web-platform-tests/css/css-logical/animation-003.tentative.html: * web-platform-tests/css/css-scoping/keyframes-001.html: * web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-context.html: * web-platform-tests/web-animations/interfaces/Animatable/animate.html: * web-platform-tests/web-animations/timing-model/animations/current-time.html: Source/WebCore: * page/RuntimeEnabledFeatures.h: Source/WebKit: * Shared/WebPreferences.yaml: Source/WebKitLegacy/mac: * WebView/WebPreferences.mm: (+[WebPreferences initialize]): Source/WebKitLegacy/win: * WebPreferences.cpp: (WebPreferences::initializeDefaultSettings): Tools: * DumpRenderTree/TestOptions.h: LayoutTests: * TestExpectations: * animations/3d/matrix-transform-type-animation.html: * animations/3d/replace-filling-transform.html: * animations/3d/transform-origin-vs-functions.html: * animations/3d/transform-perspective.html: * animations/additive-transform-animations.html: * animations/animation-border-overflow.html: * animations/animation-callback-timestamp.html: * animations/animation-controller-drt-api.html: * animations/animation-direction-alternate-reverse-expected.txt: * animations/animation-direction-alternate-reverse.html: * animations/animation-direction-reverse-fill-mode-hardware.html: * animations/animation-direction-reverse-hardware-opacity.html: * animations/animation-direction-reverse-hardware.html: * animations/animation-direction-reverse-non-hardware.html: * animations/animation-direction-reverse-timing-functions-hardware.html: * animations/animation-direction-reverse-timing-functions.html: * animations/animation-direction.html: * animations/animation-followed-by-transition.html: * animations/animation-hit-test-transform.html: * animations/animation-hit-test.html: * animations/animation-internals-api-expected.txt: Removed. * animations/animation-internals-api-multiple-keyframes-expected.txt: Removed. * animations/animation-internals-api-multiple-keyframes.html: Removed. * animations/animation-internals-api.html: Removed. * animations/animation-offscreen-to-onscreen.html: * animations/animation-playstate-paused-style-resolution.html: * animations/big-rotation-expected.txt: * animations/big-rotation.html: * animations/change-completed-animation-transform.html: * animations/change-keyframes.html: * animations/combo-transform-rotate+scale.html: * animations/cross-fade-background-image.html: * animations/cross-fade-border-image-source.html: * animations/cross-fade-list-style-image.html: * animations/cross-fade-webkit-mask-box-image.html: * animations/duplicate-keys-expected.html: * animations/duplicate-keys.html: * animations/duplicated-keyframes-name.html: * animations/fill-forwards-end-state.html: * animations/fill-mode-forwards-zero-duration-expected.txt: * animations/fill-mode-forwards-zero-duration.html: * animations/fill-mode-removed.html: * animations/font-variations/font-stretch.html: * animations/font-variations/font-style.html: * animations/font-variations/font-variation-settings-order.html: * animations/font-variations/font-variation-settings-unlike.html: * animations/font-variations/font-variation-settings.html: * animations/font-variations/font-weight.html: * animations/generic-from-to.html: * animations/import.html: * animations/keyframe-multiple-timing-functions-transform.html: * animations/keyframe-timing-functions-transform.html: * animations/keyframe-timing-functions.html: * animations/keyframe-timing-functions2.html: * animations/keyframes-comma-separated.html: * animations/keyframes-dynamic.html: * animations/keyframes-infinite-iterations.html: * animations/keyframes-invalid-keys.html: * animations/keyframes-out-of-order.html: * animations/keyframes.html: * animations/leak-document-with-css-animation.html: * animations/lineheight-animation.html: * animations/longhand-timing-function.html: * animations/matrix-anim.html: * animations/missing-from-to-transforms.html: * animations/missing-from-to.html: * animations/missing-keyframe-properties-repeating.html: * animations/missing-keyframe-properties-timing-function.html: * animations/missing-keyframe-properties.html: * animations/missing-values-first-keyframe.html: * animations/missing-values-last-keyframe.html: * animations/multiple-animations-timing-function.html: * animations/multiple-animations.html: * animations/multiple-keyframes.html: * animations/negative-delay.html: * animations/pause-crash.html: * animations/play-state-start-paused.html: * animations/resources/animation-leak-iframe.html: * animations/simultaneous-start-left.html: * animations/simultaneous-start-transform.html: * animations/spring-function.html: * animations/stacking-context-unchanged-while-running.html: * animations/stop-animation-on-suspend.html: * animations/suspend-resume-animation-events.html: * animations/timing-functions.html: * animations/transition-and-animation-1.html: * animations/transition-and-animation-2.html: * animations/transition-and-animation-3.html: * animations/trigger-container-scroll-boundaries.html: * animations/trigger-container-scroll-empty.html: * animations/trigger-container-scroll-simple.html: * animations/unanimated-style.html: * animations/unprefixed-keyframes.html: * animations/width-using-ems.html: * compositing/animation/animated-composited-inside-hidden.html: * compositing/animation/computed-style-during-delay.html: * compositing/animation/layer-for-filling-animation.html: * compositing/backing/backface-visibility-flip.html: * compositing/backing/transform-transition-from-outside-view.html: * compositing/contents-scale/animating.html: * compositing/layer-creation/animation-overlap-with-children.html: * compositing/layer-creation/mismatched-rotated-transform-animation-overlap.html: * compositing/layer-creation/mismatched-rotated-transform-transition-overlap.html: * compositing/layer-creation/mismatched-transform-transition-overlap.html: * compositing/layer-creation/multiple-keyframes-animation-overlap.html: * compositing/layer-creation/overlap-animation-clipping.html: * compositing/layer-creation/overlap-animation-container.html: * compositing/layer-creation/overlap-animation.html: * compositing/layer-creation/scale-rotation-animation-overlap.html: * compositing/layer-creation/scale-rotation-transition-overlap.html: * compositing/layer-creation/translate-animation-overlap.html: * compositing/layer-creation/translate-scale-animation-overlap.html: * compositing/layer-creation/translate-scale-transition-overlap.html: * compositing/layer-creation/translate-transition-overlap.html: * compositing/overflow/overflow-positioning.html: * compositing/reflections/animation-inside-reflection.html: * compositing/reflections/nested-reflection-animated.html: * compositing/reflections/nested-reflection-transition.html: * compositing/scrolling/touch-scroll-to-clip.html: * compositing/transitions/scale-transition-no-start.html: * compositing/transitions/singular-scale-transition.html: * compositing/visible-rect/animated-from-none.html: * compositing/visible-rect/animated.html: * css3/calc/transitions-dependent.html: * css3/calc/transitions.html: * css3/filters/backdrop/animation.html: * css3/filters/composited-during-animation.html: * css3/filters/filter-animation-from-none-hw.html: * css3/filters/filter-animation-from-none-multi-hw.html: * css3/filters/filter-animation-from-none-multi.html: * css3/filters/filter-animation-from-none.html: * css3/filters/filter-animation-hw.html: * css3/filters/filter-animation-multi-hw.html: * css3/filters/filter-animation-multi.html: * css3/filters/filter-animation.html: * css3/masking/clip-path-animation.html: * fast/animation/css-animation-resuming-when-visible-with-style-change.html: * fast/animation/css-animation-resuming-when-visible-with-style-change2.html: * fast/animation/css-animation-resuming-when-visible.html: * fast/animation/css-animation-throttling-lowPowerMode.html: * fast/animation/height-auto-transition-computed-value.html: * fast/css-generated-content/pseudo-animation.html: * fast/css-generated-content/pseudo-transition.html: * fast/filter-image/filter-image-animation.html: * fast/shapes/shape-outside-floats/shape-outside-animation.html: * fast/shapes/shape-outside-floats/shape-outside-shape-image-threshold-animation.html: * fast/shapes/shape-outside-floats/shape-outside-shape-margin-animation.html: * http/wpt/css/css-animations/start-animation-001.html: * imported/blink/transitions/transition-not-interpolable.html: * imported/blink/transitions/unprefixed-transform.html: * platform/ios/TestExpectations: * platform/win/TestExpectations: * transitions/remove-transition-style.html: * transitions/transition-drt-api-delay-expected.txt: Removed. * transitions/transition-drt-api-delay.html: Removed. * transitions/transition-drt-api-expected.txt: Removed. * transitions/transition-drt-api.html: Removed. * transitions/zero-duration-with-non-zero-delay-end.html: Canonical link: https://commits.webkit.org/204981@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@236541 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-09-27 09:49:52 +00:00
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Test animation with missing from and to keyframes</title>
<style type="text/css" media="screen">
.box {
position: relative;
left: 10px;
top: 10px;
height: 20px;
width: 20px;
-webkit-transform: translateX(10px);
background-color: blue;
-webkit-animation-duration: 2s;
-webkit-animation-timing-function: linear;
}
#box1 {
-webkit-animation-name: anim1;
}
@-webkit-keyframes anim1 {
from { -webkit-transform: translateX(10px); }
40% { -webkit-transform: translateX(30px); }
60% { -webkit-transform: translateX(10px); }
to { -webkit-transform: translateX(20px); }
}
#box2 {
-webkit-animation-name: anim2;
background-color: red;
}
@-webkit-keyframes anim2 {
40% { -webkit-transform: translateX(30px); }
60% { -webkit-transform: translateX(10px); }
to { -webkit-transform: translateX(20px); }
}
#box3 {
-webkit-transform: translateX(20px);
-webkit-animation-name: anim3;
background-color: green;
}
@-webkit-keyframes anim3 {
from { -webkit-transform: translateX(10px); }
40% { -webkit-transform: translateX(30px); }
60% { -webkit-transform: translateX(10px); }
}
#box4 {
-webkit-animation-name: anim4;
background-color: yellow;
}
@-webkit-keyframes anim4 {
40% { -webkit-transform: translateX(30px); }
60% { -webkit-transform: translateX(20px); }
}
#box5 {
-webkit-animation-name: anim5;
background-color: orange;
}
@-webkit-keyframes anim5 {
}
#result {
margin-top: 20px;
}
</style>
2011-04-25 Simon Fraser <simon.fraser@apple.com> Reviewed by Daniel Bates. Move animation-test-helpers.js into resources directory https://bugs.webkit.org/show_bug.cgi?id=59365 Move animation-test-helpers.js and fix the tests accordingly. * animations/3d/matrix-transform-type-animation.html: * animations/3d/transform-perspective.html: * animations/animation-direction.html: * animations/animation-drt-api-multiple-keyframes.html: * animations/animation-drt-api.html: * animations/animation-hit-test-transform.html: * animations/animation-hit-test.html: * animations/big-rotation.html: * animations/change-keyframes-name.html: * animations/change-keyframes.html: * animations/change-one-anim.html: * animations/combo-transform-rotate+scale.html: * animations/dynamic-stylesheet-loading.html: * animations/generic-from-to.html: * animations/import.html: * animations/keyframe-timing-functions-transform.html: * animations/keyframe-timing-functions.html: * animations/keyframe-timing-functions2.html: * animations/keyframes-comma-separated.html: * animations/keyframes-out-of-order.html: * animations/keyframes.html: * animations/lineheight-animation.html: * animations/longhand-timing-function.html: * animations/matrix-anim.html: * animations/missing-from-to-transforms.html: * animations/missing-from-to.html: * animations/missing-keyframe-properties-repeating.html: * animations/missing-keyframe-properties-timing-function.html: * animations/missing-keyframe-properties.html: * animations/missing-values-first-keyframe.html: * animations/missing-values-last-keyframe.html: * animations/multiple-animations.html: * animations/multiple-keyframes.html: * animations/negative-delay.html: * animations/opacity-transform-animation.html: * animations/play-state-suspend.html: * animations/play-state.html: * animations/resources/animation-test-helpers.js: (isCloseEnough): (matrixStringToArray): (checkExpectedValue): (endTest): (startTest): (runAnimationTest.else): (runAnimationTest): (waitForAnimationToStart): * animations/simultaneous-start-left.html: * animations/simultaneous-start-transform.html: * animations/stop-animation-on-suspend.html: * animations/suspend-resume-animation.html: * animations/timing-functions.html: * animations/transition-and-animation-1.html: * animations/transition-and-animation-2.html: * animations/transition-and-animation-3.html: * animations/unanimated-style.html: * animations/width-using-ems.html: Canonical link: https://commits.webkit.org/74594@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@84872 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2011-04-26 03:16:31 +00:00
<script src="resources/animation-test-helpers.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">
[Web Animations] Tests using the new animation engine may crash under WebCore::FrameView::didDestroyRenderTree when using internals methods https://bugs.webkit.org/show_bug.cgi?id=185612 <rdar://problem/39579344> Reviewed by Dean Jackson. Source/WebCore: Add a new internals.pseudoElement() method to obtain a pseudo element matching a given pseudo-id. This is necessary to be able to move off internals.pauseTransitionAtTimeOnPseudoElement() and internals.pauseAnimationAtTimeOnPseudoElement() for Web Animations testing. * testing/Internals.cpp: (WebCore::Internals::pseudoElement): * testing/Internals.h: * testing/Internals.idl: LayoutTests: Some tests that were opting into the new animation engine were using internals methods (pauseAnimationAtTimeOnElement, pauseTransitionAtTimeOnElement, etc.) that enforce the creation of animations in the old animation engine. Meanwhile, the code that toggles the animation engine used based on HTML comments is run prior to teardown of the previous test and so a test running with the new engine would run with the legacy engine during teardown. These two factors would cause `ASSERT(!frame().animation().hasAnimations())` to fail under FrameView::didDestroyRenderTree(). We update tests that use these internals method to use the Web Animations API instead and opt into the new animation engine if they didn't already do that. * animations/animation-hit-test-transform.html: * animations/keyframes-dynamic-expected.txt: * animations/keyframes-dynamic.html: * animations/missing-from-to-expected.txt: * animations/missing-from-to-transforms-expected.txt: * animations/missing-from-to-transforms.html: * animations/missing-from-to.html: * fast/css-generated-content/pseudo-animation.html: * transitions/transition-hit-test-transform.html: Canonical link: https://commits.webkit.org/201087@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231766 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-05-14 18:19:30 +00:00
runAnimationTest([
// [animation-name, time, element-id, property, expected-value, tolerance]
["anim1", 0.4, "box1", "webkitTransform.4", 20, 2],
["anim1", 1.0, "box1", "webkitTransform.4", 20, 2],
["anim1", 1.6, "box1", "webkitTransform.4", 15, 2],
["anim2", 0.4, "box2", "webkitTransform.4", 20, 2],
["anim2", 1.0, "box2", "webkitTransform.4", 20, 2],
["anim2", 1.6, "box2", "webkitTransform.4", 15, 2],
["anim3", 0.4, "box3", "webkitTransform.4", 20, 2],
["anim3", 1.0, "box3", "webkitTransform.4", 20, 2],
["anim3", 1.6, "box3", "webkitTransform.4", 15, 2],
["anim4", 0.4, "box4", "webkitTransform.4", 20, 2],
["anim4", 1.0, "box4", "webkitTransform.4", 25, 2],
[Web Animations] Tests using the new animation engine may crash under WebCore::FrameView::didDestroyRenderTree when using internals methods https://bugs.webkit.org/show_bug.cgi?id=185612 <rdar://problem/39579344> Reviewed by Dean Jackson. Source/WebCore: Add a new internals.pseudoElement() method to obtain a pseudo element matching a given pseudo-id. This is necessary to be able to move off internals.pauseTransitionAtTimeOnPseudoElement() and internals.pauseAnimationAtTimeOnPseudoElement() for Web Animations testing. * testing/Internals.cpp: (WebCore::Internals::pseudoElement): * testing/Internals.h: * testing/Internals.idl: LayoutTests: Some tests that were opting into the new animation engine were using internals methods (pauseAnimationAtTimeOnElement, pauseTransitionAtTimeOnElement, etc.) that enforce the creation of animations in the old animation engine. Meanwhile, the code that toggles the animation engine used based on HTML comments is run prior to teardown of the previous test and so a test running with the new engine would run with the legacy engine during teardown. These two factors would cause `ASSERT(!frame().animation().hasAnimations())` to fail under FrameView::didDestroyRenderTree(). We update tests that use these internals method to use the Web Animations API instead and opt into the new animation engine if they didn't already do that. * animations/animation-hit-test-transform.html: * animations/keyframes-dynamic-expected.txt: * animations/keyframes-dynamic.html: * animations/missing-from-to-expected.txt: * animations/missing-from-to-transforms-expected.txt: * animations/missing-from-to-transforms.html: * animations/missing-from-to.html: * fast/css-generated-content/pseudo-animation.html: * transitions/transition-hit-test-transform.html: Canonical link: https://commits.webkit.org/201087@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231766 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-05-14 18:19:30 +00:00
["anim4", 1.6, "box4", "webkitTransform.4", 15, 2],
["anim5", 0.4, "box5", "webkitTransform.4", 10, 0],
["anim5", 1.0, "box5", "webkitTransform.4", 10, 0],
["anim5", 1.6, "box5", "webkitTransform.4", 10, 0]
]);
</script>
</head>
<body>
This test performs animations of the transform property on five boxes over 2 seconds.
Box 1 has all keyframes. Box 2 has a missing "from" keyframe.
Box 3 has a missing "to" keyframe.
Box 4 has both "from" and "to" keyframes missing, but other keyframes which
should trigger the generation of "from" and "to". Box 5 has no keyframes, and
should not animate.
The test takes 3 snapshots each and expects each result to be within a specified range.
<div class="box" id="box1">
</div>
<div class="box" id="box2">
</div>
<div class="box" id="box3">
</div>
<div class="box" id="box4">
</div>
<div class="box" id="box5">
</div>
<div id="result">
</div>
</body>
</html>