From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- dom/animation/test/chrome.ini | 29 + dom/animation/test/chrome/file_animate_xrays.html | 18 + dom/animation/test/chrome/test_animate_xrays.html | 40 + .../chrome/test_animation_observers_async.html | 665 ++++++ .../test/chrome/test_animation_observers_sync.html | 1587 ++++++++++++++ .../chrome/test_animation_performance_warning.html | 1692 +++++++++++++++ .../test/chrome/test_animation_properties.html | 838 +++++++ .../chrome/test_animation_properties_display.html | 43 + .../test_cssanimation_missing_keyframes.html | 73 + .../test_generated_content_getAnimations.html | 83 + .../test/chrome/test_keyframe_effect_xrays.html | 45 + ...bserver_for_element_removal_in_shadow_tree.html | 45 + .../test/chrome/test_running_on_compositor.html | 1516 +++++++++++++ .../test_simulate_compute_values_failure.html | 371 ++++ dom/animation/test/crashtests/1134538.html | 8 + dom/animation/test/crashtests/1216842-1.html | 35 + dom/animation/test/crashtests/1216842-2.html | 35 + dom/animation/test/crashtests/1216842-3.html | 27 + dom/animation/test/crashtests/1216842-4.html | 27 + dom/animation/test/crashtests/1216842-5.html | 38 + dom/animation/test/crashtests/1216842-6.html | 38 + dom/animation/test/crashtests/1239889-1.html | 16 + dom/animation/test/crashtests/1244595-1.html | 3 + dom/animation/test/crashtests/1272475-1.html | 20 + dom/animation/test/crashtests/1272475-2.html | 20 + dom/animation/test/crashtests/1277272-1-inner.html | 19 + dom/animation/test/crashtests/1277272-1.html | 25 + dom/animation/test/crashtests/1278485-1.html | 26 + dom/animation/test/crashtests/1282691-1.html | 23 + dom/animation/test/crashtests/1291413-1.html | 20 + dom/animation/test/crashtests/1291413-2.html | 21 + dom/animation/test/crashtests/1304886-1.html | 14 + dom/animation/test/crashtests/1309198-1.html | 40 + dom/animation/test/crashtests/1322291-1.html | 24 + dom/animation/test/crashtests/1322291-2.html | 31 + dom/animation/test/crashtests/1322382-1.html | 16 + dom/animation/test/crashtests/1323114-1.html | 12 + dom/animation/test/crashtests/1323114-2.html | 18 + dom/animation/test/crashtests/1323119-1.html | 13 + dom/animation/test/crashtests/1324554-1.html | 19 + dom/animation/test/crashtests/1325193-1.html | 18 + dom/animation/test/crashtests/1330190-1.html | 11 + dom/animation/test/crashtests/1330190-2.html | 36 + dom/animation/test/crashtests/1330513-1.html | 8 + dom/animation/test/crashtests/1332588-1.html | 25 + dom/animation/test/crashtests/1333539-1.html | 30 + dom/animation/test/crashtests/1333539-2.html | 38 + dom/animation/test/crashtests/1334582-1.html | 11 + dom/animation/test/crashtests/1334582-2.html | 11 + dom/animation/test/crashtests/1334583-1.html | 9 + dom/animation/test/crashtests/1335998-1.html | 28 + dom/animation/test/crashtests/1343589-1.html | 18 + dom/animation/test/crashtests/1359658-1.html | 33 + dom/animation/test/crashtests/1373712-1.html | 11 + dom/animation/test/crashtests/1379606-1.html | 21 + dom/animation/test/crashtests/1393605-1.html | 15 + dom/animation/test/crashtests/1400022-1.html | 10 + dom/animation/test/crashtests/1401809.html | 14 + dom/animation/test/crashtests/1411318-1.html | 15 + dom/animation/test/crashtests/1467277-1.html | 6 + dom/animation/test/crashtests/1468294-1.html | 7 + dom/animation/test/crashtests/1524480-1.html | 37 + dom/animation/test/crashtests/1575926.html | 24 + dom/animation/test/crashtests/1585770.html | 22 + dom/animation/test/crashtests/1604500-1.html | 24 + dom/animation/test/crashtests/1611847.html | 23 + dom/animation/test/crashtests/1612891-1.html | 15 + dom/animation/test/crashtests/1612891-2.html | 15 + dom/animation/test/crashtests/1612891-3.html | 10 + dom/animation/test/crashtests/1633442.html | 15 + dom/animation/test/crashtests/1633486.html | 20 + dom/animation/test/crashtests/1656419.html | 23 + dom/animation/test/crashtests/1699890.html | 13 + dom/animation/test/crashtests/1706157.html | 19 + dom/animation/test/crashtests/1714421.html | 8 + dom/animation/test/crashtests/1807966.html | 13 + dom/animation/test/crashtests/crashtests.list | 61 + .../document-timeline/test_document-timeline.html | 147 ++ .../test_request_animation_frame.html | 27 + dom/animation/test/mochitest.ini | 81 + dom/animation/test/mozilla/empty.html | 2 + .../test/mozilla/file_deferred_start.html | 179 ++ .../file_disable_animations_api_autoremove.html | 69 + .../file_disable_animations_api_compositing.html | 137 ++ ...file_disable_animations_api_get_animations.html | 20 + ..._disable_animations_api_implicit_keyframes.html | 48 + .../file_disable_animations_api_timelines.html | 30 + .../test/mozilla/file_discrete_animations.html | 122 ++ dom/animation/test/mozilla/file_restyles.html | 2275 ++++++++++++++++++++ .../file_transition_finish_on_compositor.html | 67 + dom/animation/test/mozilla/test_cascade.html | 37 + .../test/mozilla/test_cubic_bezier_limits.html | 168 ++ .../test/mozilla/test_deferred_start.html | 21 + .../test_disable_animations_api_autoremove.html | 15 + .../test_disable_animations_api_compositing.html | 14 + ...test_disable_animations_api_get_animations.html | 14 + ..._disable_animations_api_implicit_keyframes.html | 14 + .../test_disable_animations_api_timelines.html | 16 + .../test/mozilla/test_disabled_properties.html | 73 + .../test/mozilla/test_discrete_animations.html | 16 + .../test/mozilla/test_distance_of_basic_shape.html | 91 + .../test/mozilla/test_distance_of_filter.html | 248 +++ .../mozilla/test_distance_of_path_function.html | 140 ++ .../test/mozilla/test_distance_of_transform.html | 404 ++++ .../test_document_timeline_origin_time_range.html | 32 + .../test/mozilla/test_event_listener_leaks.html | 43 + .../test_get_animations_on_scroll_animations.html | 74 + dom/animation/test/mozilla/test_hide_and_show.html | 198 ++ .../test_mainthread_synchronization_pref.html | 42 + .../test/mozilla/test_moz_prefixed_properties.html | 93 + .../mozilla/test_pending_animation_tracker.html | 134 ++ dom/animation/test/mozilla/test_restyles.html | 22 + .../test/mozilla/test_restyling_xhr_doc.html | 106 + dom/animation/test/mozilla/test_set_easing.html | 36 + .../test_style_after_finished_on_compositor.html | 138 ++ .../test/mozilla/test_transform_limits.html | 56 + .../test_transition_finish_on_compositor.html | 22 + .../mozilla/test_underlying_discrete_value.html | 188 ++ dom/animation/test/mozilla/test_unstyled.html | 54 + dom/animation/test/mozilla/xhr_doc.html | 2 + .../test_animation-seeking-with-current-time.html | 123 ++ .../test_animation-seeking-with-start-time.html | 123 ++ .../test/style/test_animation-setting-effect.html | 127 ++ dom/animation/test/style/test_composite.html | 142 ++ ...terpolation-from-interpolatematrix-to-none.html | 43 + .../style/test_missing-keyframe-on-compositor.html | 577 +++++ .../test/style/test_missing-keyframe.html | 110 + .../test_transform-non-normalizable-rotate3d.html | 28 + dom/animation/test/testcommon.js | 527 +++++ 129 files changed, 15865 insertions(+) create mode 100644 dom/animation/test/chrome.ini create mode 100644 dom/animation/test/chrome/file_animate_xrays.html create mode 100644 dom/animation/test/chrome/test_animate_xrays.html create mode 100644 dom/animation/test/chrome/test_animation_observers_async.html create mode 100644 dom/animation/test/chrome/test_animation_observers_sync.html create mode 100644 dom/animation/test/chrome/test_animation_performance_warning.html create mode 100644 dom/animation/test/chrome/test_animation_properties.html create mode 100644 dom/animation/test/chrome/test_animation_properties_display.html create mode 100644 dom/animation/test/chrome/test_cssanimation_missing_keyframes.html create mode 100644 dom/animation/test/chrome/test_generated_content_getAnimations.html create mode 100644 dom/animation/test/chrome/test_keyframe_effect_xrays.html create mode 100644 dom/animation/test/chrome/test_mutation_observer_for_element_removal_in_shadow_tree.html create mode 100644 dom/animation/test/chrome/test_running_on_compositor.html create mode 100644 dom/animation/test/chrome/test_simulate_compute_values_failure.html create mode 100644 dom/animation/test/crashtests/1134538.html create mode 100644 dom/animation/test/crashtests/1216842-1.html create mode 100644 dom/animation/test/crashtests/1216842-2.html create mode 100644 dom/animation/test/crashtests/1216842-3.html create mode 100644 dom/animation/test/crashtests/1216842-4.html create mode 100644 dom/animation/test/crashtests/1216842-5.html create mode 100644 dom/animation/test/crashtests/1216842-6.html create mode 100644 dom/animation/test/crashtests/1239889-1.html create mode 100644 dom/animation/test/crashtests/1244595-1.html create mode 100644 dom/animation/test/crashtests/1272475-1.html create mode 100644 dom/animation/test/crashtests/1272475-2.html create mode 100644 dom/animation/test/crashtests/1277272-1-inner.html create mode 100644 dom/animation/test/crashtests/1277272-1.html create mode 100644 dom/animation/test/crashtests/1278485-1.html create mode 100644 dom/animation/test/crashtests/1282691-1.html create mode 100644 dom/animation/test/crashtests/1291413-1.html create mode 100644 dom/animation/test/crashtests/1291413-2.html create mode 100644 dom/animation/test/crashtests/1304886-1.html create mode 100644 dom/animation/test/crashtests/1309198-1.html create mode 100644 dom/animation/test/crashtests/1322291-1.html create mode 100644 dom/animation/test/crashtests/1322291-2.html create mode 100644 dom/animation/test/crashtests/1322382-1.html create mode 100644 dom/animation/test/crashtests/1323114-1.html create mode 100644 dom/animation/test/crashtests/1323114-2.html create mode 100644 dom/animation/test/crashtests/1323119-1.html create mode 100644 dom/animation/test/crashtests/1324554-1.html create mode 100644 dom/animation/test/crashtests/1325193-1.html create mode 100644 dom/animation/test/crashtests/1330190-1.html create mode 100644 dom/animation/test/crashtests/1330190-2.html create mode 100644 dom/animation/test/crashtests/1330513-1.html create mode 100644 dom/animation/test/crashtests/1332588-1.html create mode 100644 dom/animation/test/crashtests/1333539-1.html create mode 100644 dom/animation/test/crashtests/1333539-2.html create mode 100644 dom/animation/test/crashtests/1334582-1.html create mode 100644 dom/animation/test/crashtests/1334582-2.html create mode 100644 dom/animation/test/crashtests/1334583-1.html create mode 100644 dom/animation/test/crashtests/1335998-1.html create mode 100644 dom/animation/test/crashtests/1343589-1.html create mode 100644 dom/animation/test/crashtests/1359658-1.html create mode 100644 dom/animation/test/crashtests/1373712-1.html create mode 100644 dom/animation/test/crashtests/1379606-1.html create mode 100644 dom/animation/test/crashtests/1393605-1.html create mode 100644 dom/animation/test/crashtests/1400022-1.html create mode 100644 dom/animation/test/crashtests/1401809.html create mode 100644 dom/animation/test/crashtests/1411318-1.html create mode 100644 dom/animation/test/crashtests/1467277-1.html create mode 100644 dom/animation/test/crashtests/1468294-1.html create mode 100644 dom/animation/test/crashtests/1524480-1.html create mode 100644 dom/animation/test/crashtests/1575926.html create mode 100644 dom/animation/test/crashtests/1585770.html create mode 100644 dom/animation/test/crashtests/1604500-1.html create mode 100644 dom/animation/test/crashtests/1611847.html create mode 100644 dom/animation/test/crashtests/1612891-1.html create mode 100644 dom/animation/test/crashtests/1612891-2.html create mode 100644 dom/animation/test/crashtests/1612891-3.html create mode 100644 dom/animation/test/crashtests/1633442.html create mode 100644 dom/animation/test/crashtests/1633486.html create mode 100644 dom/animation/test/crashtests/1656419.html create mode 100644 dom/animation/test/crashtests/1699890.html create mode 100644 dom/animation/test/crashtests/1706157.html create mode 100644 dom/animation/test/crashtests/1714421.html create mode 100644 dom/animation/test/crashtests/1807966.html create mode 100644 dom/animation/test/crashtests/crashtests.list create mode 100644 dom/animation/test/document-timeline/test_document-timeline.html create mode 100644 dom/animation/test/document-timeline/test_request_animation_frame.html create mode 100644 dom/animation/test/mochitest.ini create mode 100644 dom/animation/test/mozilla/empty.html create mode 100644 dom/animation/test/mozilla/file_deferred_start.html create mode 100644 dom/animation/test/mozilla/file_disable_animations_api_autoremove.html create mode 100644 dom/animation/test/mozilla/file_disable_animations_api_compositing.html create mode 100644 dom/animation/test/mozilla/file_disable_animations_api_get_animations.html create mode 100644 dom/animation/test/mozilla/file_disable_animations_api_implicit_keyframes.html create mode 100644 dom/animation/test/mozilla/file_disable_animations_api_timelines.html create mode 100644 dom/animation/test/mozilla/file_discrete_animations.html create mode 100644 dom/animation/test/mozilla/file_restyles.html create mode 100644 dom/animation/test/mozilla/file_transition_finish_on_compositor.html create mode 100644 dom/animation/test/mozilla/test_cascade.html create mode 100644 dom/animation/test/mozilla/test_cubic_bezier_limits.html create mode 100644 dom/animation/test/mozilla/test_deferred_start.html create mode 100644 dom/animation/test/mozilla/test_disable_animations_api_autoremove.html create mode 100644 dom/animation/test/mozilla/test_disable_animations_api_compositing.html create mode 100644 dom/animation/test/mozilla/test_disable_animations_api_get_animations.html create mode 100644 dom/animation/test/mozilla/test_disable_animations_api_implicit_keyframes.html create mode 100644 dom/animation/test/mozilla/test_disable_animations_api_timelines.html create mode 100644 dom/animation/test/mozilla/test_disabled_properties.html create mode 100644 dom/animation/test/mozilla/test_discrete_animations.html create mode 100644 dom/animation/test/mozilla/test_distance_of_basic_shape.html create mode 100644 dom/animation/test/mozilla/test_distance_of_filter.html create mode 100644 dom/animation/test/mozilla/test_distance_of_path_function.html create mode 100644 dom/animation/test/mozilla/test_distance_of_transform.html create mode 100644 dom/animation/test/mozilla/test_document_timeline_origin_time_range.html create mode 100644 dom/animation/test/mozilla/test_event_listener_leaks.html create mode 100644 dom/animation/test/mozilla/test_get_animations_on_scroll_animations.html create mode 100644 dom/animation/test/mozilla/test_hide_and_show.html create mode 100644 dom/animation/test/mozilla/test_mainthread_synchronization_pref.html create mode 100644 dom/animation/test/mozilla/test_moz_prefixed_properties.html create mode 100644 dom/animation/test/mozilla/test_pending_animation_tracker.html create mode 100644 dom/animation/test/mozilla/test_restyles.html create mode 100644 dom/animation/test/mozilla/test_restyling_xhr_doc.html create mode 100644 dom/animation/test/mozilla/test_set_easing.html create mode 100644 dom/animation/test/mozilla/test_style_after_finished_on_compositor.html create mode 100644 dom/animation/test/mozilla/test_transform_limits.html create mode 100644 dom/animation/test/mozilla/test_transition_finish_on_compositor.html create mode 100644 dom/animation/test/mozilla/test_underlying_discrete_value.html create mode 100644 dom/animation/test/mozilla/test_unstyled.html create mode 100644 dom/animation/test/mozilla/xhr_doc.html create mode 100644 dom/animation/test/style/test_animation-seeking-with-current-time.html create mode 100644 dom/animation/test/style/test_animation-seeking-with-start-time.html create mode 100644 dom/animation/test/style/test_animation-setting-effect.html create mode 100644 dom/animation/test/style/test_composite.html create mode 100644 dom/animation/test/style/test_interpolation-from-interpolatematrix-to-none.html create mode 100644 dom/animation/test/style/test_missing-keyframe-on-compositor.html create mode 100644 dom/animation/test/style/test_missing-keyframe.html create mode 100644 dom/animation/test/style/test_transform-non-normalizable-rotate3d.html create mode 100644 dom/animation/test/testcommon.js (limited to 'dom/animation/test') diff --git a/dom/animation/test/chrome.ini b/dom/animation/test/chrome.ini new file mode 100644 index 0000000000..4001899a50 --- /dev/null +++ b/dom/animation/test/chrome.ini @@ -0,0 +1,29 @@ +[DEFAULT] +prefs = + dom.animations-api.autoremove.enabled=true + dom.animations-api.compositing.enabled=true + dom.animations.mainthread-synchronization-with-geometric-animations=true + gfx.omta.background-color=true + layout.css.individual-transform.enabled=true + layout.css.motion-path.enabled=true +support-files = + testcommon.js + ../../imptests/testharness.js + ../../imptests/testharnessreport.js + !/dom/animation/test/chrome/file_animate_xrays.html + +[chrome/test_animate_xrays.html] +# file_animate_xrays.html needs to go in mochitest.ini since it is served +# over HTTP +[chrome/test_keyframe_effect_xrays.html] +[chrome/test_animation_observers_async.html] +[chrome/test_animation_observers_sync.html] +[chrome/test_animation_performance_warning.html] +[chrome/test_animation_properties.html] +[chrome/test_animation_properties_display.html] +[chrome/test_cssanimation_missing_keyframes.html] +[chrome/test_generated_content_getAnimations.html] +[chrome/test_mutation_observer_for_element_removal_in_shadow_tree.html] +[chrome/test_running_on_compositor.html] +[chrome/test_simulate_compute_values_failure.html] +skip-if = !debug diff --git a/dom/animation/test/chrome/file_animate_xrays.html b/dom/animation/test/chrome/file_animate_xrays.html new file mode 100644 index 0000000000..2fa15b1764 --- /dev/null +++ b/dom/animation/test/chrome/file_animate_xrays.html @@ -0,0 +1,18 @@ + + + + + + +
+ + diff --git a/dom/animation/test/chrome/test_animate_xrays.html b/dom/animation/test/chrome/test_animate_xrays.html new file mode 100644 index 0000000000..64df6db720 --- /dev/null +++ b/dom/animation/test/chrome/test_animate_xrays.html @@ -0,0 +1,40 @@ + + + + + + + + +Mozilla Bug 1414674 +
+ + + diff --git a/dom/animation/test/chrome/test_animation_observers_async.html b/dom/animation/test/chrome/test_animation_observers_async.html new file mode 100644 index 0000000000..7505baca53 --- /dev/null +++ b/dom/animation/test/chrome/test_animation_observers_async.html @@ -0,0 +1,665 @@ + + + +Test chrome-only MutationObserver animation notifications (async tests) + + + + + +
+ +
+ diff --git a/dom/animation/test/chrome/test_animation_observers_sync.html b/dom/animation/test/chrome/test_animation_observers_sync.html new file mode 100644 index 0000000000..7a890fd2f4 --- /dev/null +++ b/dom/animation/test/chrome/test_animation_observers_sync.html @@ -0,0 +1,1587 @@ + + + +Test chrome-only MutationObserver animation notifications (sync tests) + + + + + +
+ + diff --git a/dom/animation/test/chrome/test_animation_performance_warning.html b/dom/animation/test/chrome/test_animation_performance_warning.html new file mode 100644 index 0000000000..ca0572cfaa --- /dev/null +++ b/dom/animation/test/chrome/test_animation_performance_warning.html @@ -0,0 +1,1692 @@ + + + +Bug 1196114 - Test metadata related to which animation properties + are running on the compositor + + + + + + +Mozilla Bug 1196114 +
+ + + diff --git a/dom/animation/test/chrome/test_animation_properties.html b/dom/animation/test/chrome/test_animation_properties.html new file mode 100644 index 0000000000..b9d6dcbef1 --- /dev/null +++ b/dom/animation/test/chrome/test_animation_properties.html @@ -0,0 +1,838 @@ + + + +Bug 1254419 - Test the values returned by + KeyframeEffect.getProperties() + + + + + +Mozilla Bug 1254419 +
+ + + diff --git a/dom/animation/test/chrome/test_animation_properties_display.html b/dom/animation/test/chrome/test_animation_properties_display.html new file mode 100644 index 0000000000..184fc9d3bc --- /dev/null +++ b/dom/animation/test/chrome/test_animation_properties_display.html @@ -0,0 +1,43 @@ + + + +Bug 1536688 - Test that 'display' is not included in + KeyframeEffect.getProperties() when using shorthand 'all' + + + + + +Mozilla Bug 1536688 +
+ + diff --git a/dom/animation/test/chrome/test_cssanimation_missing_keyframes.html b/dom/animation/test/chrome/test_cssanimation_missing_keyframes.html new file mode 100644 index 0000000000..1d19386712 --- /dev/null +++ b/dom/animation/test/chrome/test_cssanimation_missing_keyframes.html @@ -0,0 +1,73 @@ + + + +Bug 1339332 - Test for missing keyframes in CSS Animation + + + + + +Mozilla Bug 1339332 +
+ + + diff --git a/dom/animation/test/chrome/test_generated_content_getAnimations.html b/dom/animation/test/chrome/test_generated_content_getAnimations.html new file mode 100644 index 0000000000..08de27f57d --- /dev/null +++ b/dom/animation/test/chrome/test_generated_content_getAnimations.html @@ -0,0 +1,83 @@ + + + +Test getAnimations() for generated-content elements + + + + + + +
+
+
+
+ + diff --git a/dom/animation/test/chrome/test_keyframe_effect_xrays.html b/dom/animation/test/chrome/test_keyframe_effect_xrays.html new file mode 100644 index 0000000000..ca3e712ac5 --- /dev/null +++ b/dom/animation/test/chrome/test_keyframe_effect_xrays.html @@ -0,0 +1,45 @@ + + + + + + + + +Mozilla Bug 1414674 +
+ + + diff --git a/dom/animation/test/chrome/test_mutation_observer_for_element_removal_in_shadow_tree.html b/dom/animation/test/chrome/test_mutation_observer_for_element_removal_in_shadow_tree.html new file mode 100644 index 0000000000..f8efaa6baf --- /dev/null +++ b/dom/animation/test/chrome/test_mutation_observer_for_element_removal_in_shadow_tree.html @@ -0,0 +1,45 @@ + + + + + +
+ diff --git a/dom/animation/test/chrome/test_running_on_compositor.html b/dom/animation/test/chrome/test_running_on_compositor.html new file mode 100644 index 0000000000..532c11258f --- /dev/null +++ b/dom/animation/test/chrome/test_running_on_compositor.html @@ -0,0 +1,1516 @@ + + + +Bug 1045994 - Add a chrome-only property to inspect if an animation is + running on the compositor or not + + + + + + +Mozilla Bug 1045994 +
+ + diff --git a/dom/animation/test/chrome/test_simulate_compute_values_failure.html b/dom/animation/test/chrome/test_simulate_compute_values_failure.html new file mode 100644 index 0000000000..2ee041c9f8 --- /dev/null +++ b/dom/animation/test/chrome/test_simulate_compute_values_failure.html @@ -0,0 +1,371 @@ + + + +Bug 1276688 - Test for properties that parse correctly but which we fail + to convert to computed values + + + + + +Mozilla Bug 1276688 +
+ + diff --git a/dom/animation/test/crashtests/1134538.html b/dom/animation/test/crashtests/1134538.html new file mode 100644 index 0000000000..136d63deee --- /dev/null +++ b/dom/animation/test/crashtests/1134538.html @@ -0,0 +1,8 @@ + +
+ diff --git a/dom/animation/test/crashtests/1216842-1.html b/dom/animation/test/crashtests/1216842-1.html new file mode 100644 index 0000000000..6ac40b2fb8 --- /dev/null +++ b/dom/animation/test/crashtests/1216842-1.html @@ -0,0 +1,35 @@ + + + + Bug 1216842: effect-level easing function produces negative values (compositor thread) + + + +
+ + + diff --git a/dom/animation/test/crashtests/1216842-2.html b/dom/animation/test/crashtests/1216842-2.html new file mode 100644 index 0000000000..7bae8a3116 --- /dev/null +++ b/dom/animation/test/crashtests/1216842-2.html @@ -0,0 +1,35 @@ + + + + Bug 1216842: effect-level easing function produces values greater than 1 (compositor thread) + + + +
+ + + diff --git a/dom/animation/test/crashtests/1216842-3.html b/dom/animation/test/crashtests/1216842-3.html new file mode 100644 index 0000000000..1bc2179a86 --- /dev/null +++ b/dom/animation/test/crashtests/1216842-3.html @@ -0,0 +1,27 @@ + + + + Bug 1216842: effect-level easing function produces values greater than 1 (main-thread) + + +
+ + + diff --git a/dom/animation/test/crashtests/1216842-4.html b/dom/animation/test/crashtests/1216842-4.html new file mode 100644 index 0000000000..eba13c396a --- /dev/null +++ b/dom/animation/test/crashtests/1216842-4.html @@ -0,0 +1,27 @@ + + + + Bug 1216842: effect-level easing function produces negative values (main-thread) + + +
+ + + diff --git a/dom/animation/test/crashtests/1216842-5.html b/dom/animation/test/crashtests/1216842-5.html new file mode 100644 index 0000000000..73b6f22c4b --- /dev/null +++ b/dom/animation/test/crashtests/1216842-5.html @@ -0,0 +1,38 @@ + + + + + Bug 1216842: effect-level easing function produces negative values passed + to step-end function (compositor thread) + + + + +
+ + + diff --git a/dom/animation/test/crashtests/1216842-6.html b/dom/animation/test/crashtests/1216842-6.html new file mode 100644 index 0000000000..aaf80eeec3 --- /dev/null +++ b/dom/animation/test/crashtests/1216842-6.html @@ -0,0 +1,38 @@ + + + + + Bug 1216842: effect-level easing function produces values greater than 1 + which are passed to step-end function (compositor thread) + + + + +
+ + + diff --git a/dom/animation/test/crashtests/1239889-1.html b/dom/animation/test/crashtests/1239889-1.html new file mode 100644 index 0000000000..aa10ff3ab8 --- /dev/null +++ b/dom/animation/test/crashtests/1239889-1.html @@ -0,0 +1,16 @@ + + + + Bug 1239889 + + + + + diff --git a/dom/animation/test/crashtests/1244595-1.html b/dom/animation/test/crashtests/1244595-1.html new file mode 100644 index 0000000000..13b2e2d7e7 --- /dev/null +++ b/dom/animation/test/crashtests/1244595-1.html @@ -0,0 +1,3 @@ +
diff --git a/dom/animation/test/crashtests/1272475-1.html b/dom/animation/test/crashtests/1272475-1.html new file mode 100644 index 0000000000..e0b0495388 --- /dev/null +++ b/dom/animation/test/crashtests/1272475-1.html @@ -0,0 +1,20 @@ + + + + Bug 1272475 - scale function with an extreme large value + + + + + diff --git a/dom/animation/test/crashtests/1272475-2.html b/dom/animation/test/crashtests/1272475-2.html new file mode 100644 index 0000000000..da0e8605bd --- /dev/null +++ b/dom/animation/test/crashtests/1272475-2.html @@ -0,0 +1,20 @@ + + + + Bug 1272475 - rotate function with an extreme large value + + + + + diff --git a/dom/animation/test/crashtests/1277272-1-inner.html b/dom/animation/test/crashtests/1277272-1-inner.html new file mode 100644 index 0000000000..2565aa6eb8 --- /dev/null +++ b/dom/animation/test/crashtests/1277272-1-inner.html @@ -0,0 +1,19 @@ + + + + + + diff --git a/dom/animation/test/crashtests/1277272-1.html b/dom/animation/test/crashtests/1277272-1.html new file mode 100644 index 0000000000..71b6c24148 --- /dev/null +++ b/dom/animation/test/crashtests/1277272-1.html @@ -0,0 +1,25 @@ + + + + + + + + +
+ diff --git a/dom/animation/test/document-timeline/test_request_animation_frame.html b/dom/animation/test/document-timeline/test_request_animation_frame.html new file mode 100644 index 0000000000..3da4e4deb2 --- /dev/null +++ b/dom/animation/test/document-timeline/test_request_animation_frame.html @@ -0,0 +1,27 @@ + + +Test RequestAnimationFrame Timestamps are monotonically increasing + + + diff --git a/dom/animation/test/mochitest.ini b/dom/animation/test/mochitest.ini new file mode 100644 index 0000000000..bd4bfe8a61 --- /dev/null +++ b/dom/animation/test/mochitest.ini @@ -0,0 +1,81 @@ +[DEFAULT] +prefs = + dom.animations-api.compositing.enabled=true + dom.animations-api.core.enabled=true + dom.animations-api.getAnimations.enabled=true + dom.animations-api.implicit-keyframes.enabled=true + dom.animations-api.timelines.enabled=true + gfx.omta.background-color=true + layout.css.motion-path.enabled=true + layout.css.individual-transform.enabled=true + layout.css.scroll-driven-animations.enabled=true + gfx.font_loader.delay=0 +# Support files for chrome tests that we want to load over HTTP need +# to go in here, not chrome.ini. +support-files = + chrome/file_animate_xrays.html + mozilla/xhr_doc.html + mozilla/file_deferred_start.html + mozilla/file_disable_animations_api_autoremove.html + mozilla/file_disable_animations_api_compositing.html + mozilla/file_disable_animations_api_get_animations.html + mozilla/file_disable_animations_api_implicit_keyframes.html + mozilla/file_disable_animations_api_timelines.html + mozilla/file_discrete_animations.html + mozilla/file_transition_finish_on_compositor.html + ../../../layout/style/test/property_database.js + testcommon.js + !/dom/events/test/event_leak_utils.js + +[document-timeline/test_document-timeline.html] +[document-timeline/test_request_animation_frame.html] +[mozilla/test_cascade.html] +[mozilla/test_cubic_bezier_limits.html] +[mozilla/test_deferred_start.html] +skip-if = (os == 'win' && bits == 64) # Bug 1363957 +[mozilla/test_disable_animations_api_autoremove.html] +[mozilla/test_disable_animations_api_compositing.html] +[mozilla/test_disable_animations_api_get_animations.html] +[mozilla/test_disable_animations_api_implicit_keyframes.html] +[mozilla/test_disable_animations_api_timelines.html] +[mozilla/test_disabled_properties.html] +[mozilla/test_discrete_animations.html] +[mozilla/test_distance_of_basic_shape.html] +[mozilla/test_distance_of_filter.html] +[mozilla/test_distance_of_path_function.html] +[mozilla/test_distance_of_transform.html] +[mozilla/test_document_timeline_origin_time_range.html] +[mozilla/test_get_animations_on_scroll_animations.html] +[mozilla/test_hide_and_show.html] +[mozilla/test_mainthread_synchronization_pref.html] +[mozilla/test_moz_prefixed_properties.html] +[mozilla/test_pending_animation_tracker.html] +[mozilla/test_restyles.html] +support-files = + mozilla/file_restyles.html + mozilla/empty.html +skip-if = + (os == 'android' && debug) #Bug 1784931 + (os == 'linux' && tsan) #Bug 1784931 + http3 +[mozilla/test_restyling_xhr_doc.html] +[mozilla/test_set_easing.html] +[mozilla/test_style_after_finished_on_compositor.html] +[mozilla/test_transform_limits.html] +[mozilla/test_transition_finish_on_compositor.html] +skip-if = toolkit == 'android' +[mozilla/test_underlying_discrete_value.html] +[mozilla/test_unstyled.html] +[mozilla/test_event_listener_leaks.html] +skip-if = (os == "win" && processor == "aarch64") #bug 1535784 +[style/test_animation-seeking-with-current-time.html] +[style/test_animation-seeking-with-start-time.html] +[style/test_animation-setting-effect.html] +[style/test_composite.html] +skip-if = xorigin +[style/test_interpolation-from-interpolatematrix-to-none.html] +[style/test_missing-keyframe.html] +[style/test_missing-keyframe-on-compositor.html] +skip-if = + fission && xorigin # Bug 1716403 - New fission platform triage +[style/test_transform-non-normalizable-rotate3d.html] diff --git a/dom/animation/test/mozilla/empty.html b/dom/animation/test/mozilla/empty.html new file mode 100644 index 0000000000..739422cbfa --- /dev/null +++ b/dom/animation/test/mozilla/empty.html @@ -0,0 +1,2 @@ + + diff --git a/dom/animation/test/mozilla/file_deferred_start.html b/dom/animation/test/mozilla/file_deferred_start.html new file mode 100644 index 0000000000..863fc80fec --- /dev/null +++ b/dom/animation/test/mozilla/file_deferred_start.html @@ -0,0 +1,179 @@ + + + + + + + + diff --git a/dom/animation/test/mozilla/file_disable_animations_api_autoremove.html b/dom/animation/test/mozilla/file_disable_animations_api_autoremove.html new file mode 100644 index 0000000000..79cb508467 --- /dev/null +++ b/dom/animation/test/mozilla/file_disable_animations_api_autoremove.html @@ -0,0 +1,69 @@ + + + + + + diff --git a/dom/animation/test/mozilla/file_disable_animations_api_compositing.html b/dom/animation/test/mozilla/file_disable_animations_api_compositing.html new file mode 100644 index 0000000000..6d9ba35dc0 --- /dev/null +++ b/dom/animation/test/mozilla/file_disable_animations_api_compositing.html @@ -0,0 +1,137 @@ + + + + + + diff --git a/dom/animation/test/mozilla/file_disable_animations_api_get_animations.html b/dom/animation/test/mozilla/file_disable_animations_api_get_animations.html new file mode 100644 index 0000000000..3d484444a7 --- /dev/null +++ b/dom/animation/test/mozilla/file_disable_animations_api_get_animations.html @@ -0,0 +1,20 @@ + + + + + + diff --git a/dom/animation/test/mozilla/file_disable_animations_api_implicit_keyframes.html b/dom/animation/test/mozilla/file_disable_animations_api_implicit_keyframes.html new file mode 100644 index 0000000000..9cd05e7d40 --- /dev/null +++ b/dom/animation/test/mozilla/file_disable_animations_api_implicit_keyframes.html @@ -0,0 +1,48 @@ + + + + + + diff --git a/dom/animation/test/mozilla/file_disable_animations_api_timelines.html b/dom/animation/test/mozilla/file_disable_animations_api_timelines.html new file mode 100644 index 0000000000..39fedb299a --- /dev/null +++ b/dom/animation/test/mozilla/file_disable_animations_api_timelines.html @@ -0,0 +1,30 @@ + + + + + diff --git a/dom/animation/test/mozilla/file_discrete_animations.html b/dom/animation/test/mozilla/file_discrete_animations.html new file mode 100644 index 0000000000..e0de609bc5 --- /dev/null +++ b/dom/animation/test/mozilla/file_discrete_animations.html @@ -0,0 +1,122 @@ + + + +Test Mozilla-specific discrete animatable properties + + + + + diff --git a/dom/animation/test/mozilla/file_restyles.html b/dom/animation/test/mozilla/file_restyles.html new file mode 100644 index 0000000000..8d72cb6c44 --- /dev/null +++ b/dom/animation/test/mozilla/file_restyles.html @@ -0,0 +1,2275 @@ + + + + +Tests restyles caused by animations + + + + + + + + + + diff --git a/dom/animation/test/mozilla/file_transition_finish_on_compositor.html b/dom/animation/test/mozilla/file_transition_finish_on_compositor.html new file mode 100644 index 0000000000..4912d05dd1 --- /dev/null +++ b/dom/animation/test/mozilla/file_transition_finish_on_compositor.html @@ -0,0 +1,67 @@ + + + + + + + + diff --git a/dom/animation/test/mozilla/test_cascade.html b/dom/animation/test/mozilla/test_cascade.html new file mode 100644 index 0000000000..4bdb07530e --- /dev/null +++ b/dom/animation/test/mozilla/test_cascade.html @@ -0,0 +1,37 @@ + + + + + + + +
+ + diff --git a/dom/animation/test/mozilla/test_cubic_bezier_limits.html b/dom/animation/test/mozilla/test_cubic_bezier_limits.html new file mode 100644 index 0000000000..bdbc78654f --- /dev/null +++ b/dom/animation/test/mozilla/test_cubic_bezier_limits.html @@ -0,0 +1,168 @@ + + + + + + + +
+ + diff --git a/dom/animation/test/mozilla/test_deferred_start.html b/dom/animation/test/mozilla/test_deferred_start.html new file mode 100644 index 0000000000..7d0a15b1f7 --- /dev/null +++ b/dom/animation/test/mozilla/test_deferred_start.html @@ -0,0 +1,21 @@ + + + + +
+ diff --git a/dom/animation/test/mozilla/test_disable_animations_api_autoremove.html b/dom/animation/test/mozilla/test_disable_animations_api_autoremove.html new file mode 100644 index 0000000000..56e6362273 --- /dev/null +++ b/dom/animation/test/mozilla/test_disable_animations_api_autoremove.html @@ -0,0 +1,15 @@ + + + + +
+ diff --git a/dom/animation/test/mozilla/test_disable_animations_api_compositing.html b/dom/animation/test/mozilla/test_disable_animations_api_compositing.html new file mode 100644 index 0000000000..94216ea62d --- /dev/null +++ b/dom/animation/test/mozilla/test_disable_animations_api_compositing.html @@ -0,0 +1,14 @@ + + + + +
+ diff --git a/dom/animation/test/mozilla/test_disable_animations_api_get_animations.html b/dom/animation/test/mozilla/test_disable_animations_api_get_animations.html new file mode 100644 index 0000000000..a7253439b7 --- /dev/null +++ b/dom/animation/test/mozilla/test_disable_animations_api_get_animations.html @@ -0,0 +1,14 @@ + + + + +
+ diff --git a/dom/animation/test/mozilla/test_disable_animations_api_implicit_keyframes.html b/dom/animation/test/mozilla/test_disable_animations_api_implicit_keyframes.html new file mode 100644 index 0000000000..aaebf1f00a --- /dev/null +++ b/dom/animation/test/mozilla/test_disable_animations_api_implicit_keyframes.html @@ -0,0 +1,14 @@ + + + + +
+ diff --git a/dom/animation/test/mozilla/test_disable_animations_api_timelines.html b/dom/animation/test/mozilla/test_disable_animations_api_timelines.html new file mode 100644 index 0000000000..a20adf4ea2 --- /dev/null +++ b/dom/animation/test/mozilla/test_disable_animations_api_timelines.html @@ -0,0 +1,16 @@ + + + + +
+ diff --git a/dom/animation/test/mozilla/test_disabled_properties.html b/dom/animation/test/mozilla/test_disabled_properties.html new file mode 100644 index 0000000000..2244143ceb --- /dev/null +++ b/dom/animation/test/mozilla/test_disabled_properties.html @@ -0,0 +1,73 @@ + + + + + + +
+ + diff --git a/dom/animation/test/mozilla/test_discrete_animations.html b/dom/animation/test/mozilla/test_discrete_animations.html new file mode 100644 index 0000000000..d4826a74bd --- /dev/null +++ b/dom/animation/test/mozilla/test_discrete_animations.html @@ -0,0 +1,16 @@ + + + + +
+ diff --git a/dom/animation/test/mozilla/test_distance_of_basic_shape.html b/dom/animation/test/mozilla/test_distance_of_basic_shape.html new file mode 100644 index 0000000000..65e403bf06 --- /dev/null +++ b/dom/animation/test/mozilla/test_distance_of_basic_shape.html @@ -0,0 +1,91 @@ + + + + + +
+ + diff --git a/dom/animation/test/mozilla/test_distance_of_filter.html b/dom/animation/test/mozilla/test_distance_of_filter.html new file mode 100644 index 0000000000..33f772d983 --- /dev/null +++ b/dom/animation/test/mozilla/test_distance_of_filter.html @@ -0,0 +1,248 @@ + + + + + +
+ + diff --git a/dom/animation/test/mozilla/test_distance_of_path_function.html b/dom/animation/test/mozilla/test_distance_of_path_function.html new file mode 100644 index 0000000000..af6592c892 --- /dev/null +++ b/dom/animation/test/mozilla/test_distance_of_path_function.html @@ -0,0 +1,140 @@ + + + + + +
+ + diff --git a/dom/animation/test/mozilla/test_distance_of_transform.html b/dom/animation/test/mozilla/test_distance_of_transform.html new file mode 100644 index 0000000000..96ff1eb66d --- /dev/null +++ b/dom/animation/test/mozilla/test_distance_of_transform.html @@ -0,0 +1,404 @@ + + + + + +
+ + diff --git a/dom/animation/test/mozilla/test_document_timeline_origin_time_range.html b/dom/animation/test/mozilla/test_document_timeline_origin_time_range.html new file mode 100644 index 0000000000..b2aeef8a77 --- /dev/null +++ b/dom/animation/test/mozilla/test_document_timeline_origin_time_range.html @@ -0,0 +1,32 @@ + + + + + + +
+ + diff --git a/dom/animation/test/mozilla/test_event_listener_leaks.html b/dom/animation/test/mozilla/test_event_listener_leaks.html new file mode 100644 index 0000000000..bcfadaf9e9 --- /dev/null +++ b/dom/animation/test/mozilla/test_event_listener_leaks.html @@ -0,0 +1,43 @@ + + + + + Bug 1450271 - Test Animation event listener leak conditions + + + + + + + + + diff --git a/dom/animation/test/mozilla/test_get_animations_on_scroll_animations.html b/dom/animation/test/mozilla/test_get_animations_on_scroll_animations.html new file mode 100644 index 0000000000..7d20e5b70b --- /dev/null +++ b/dom/animation/test/mozilla/test_get_animations_on_scroll_animations.html @@ -0,0 +1,74 @@ + + + +Test getAnimations() which doesn't return scroll animations + + + + + + +
+ + diff --git a/dom/animation/test/mozilla/test_hide_and_show.html b/dom/animation/test/mozilla/test_hide_and_show.html new file mode 100644 index 0000000000..f36543bb1e --- /dev/null +++ b/dom/animation/test/mozilla/test_hide_and_show.html @@ -0,0 +1,198 @@ + + + + + + + +
+ + diff --git a/dom/animation/test/mozilla/test_mainthread_synchronization_pref.html b/dom/animation/test/mozilla/test_mainthread_synchronization_pref.html new file mode 100644 index 0000000000..3653fd9536 --- /dev/null +++ b/dom/animation/test/mozilla/test_mainthread_synchronization_pref.html @@ -0,0 +1,42 @@ + + + + + + + +
+ + diff --git a/dom/animation/test/mozilla/test_moz_prefixed_properties.html b/dom/animation/test/mozilla/test_moz_prefixed_properties.html new file mode 100644 index 0000000000..f65d05134d --- /dev/null +++ b/dom/animation/test/mozilla/test_moz_prefixed_properties.html @@ -0,0 +1,93 @@ + + + + Test animations of all properties that have -moz prefix + + + + + + +
+ + + + diff --git a/dom/animation/test/mozilla/test_pending_animation_tracker.html b/dom/animation/test/mozilla/test_pending_animation_tracker.html new file mode 100644 index 0000000000..022efa7bcf --- /dev/null +++ b/dom/animation/test/mozilla/test_pending_animation_tracker.html @@ -0,0 +1,134 @@ + + + +Test animations in PendingAnimationTracker + + + + + +
+ + diff --git a/dom/animation/test/mozilla/test_restyles.html b/dom/animation/test/mozilla/test_restyles.html new file mode 100644 index 0000000000..bc1ab70c74 --- /dev/null +++ b/dom/animation/test/mozilla/test_restyles.html @@ -0,0 +1,22 @@ + + + + +
+ + diff --git a/dom/animation/test/mozilla/test_restyling_xhr_doc.html b/dom/animation/test/mozilla/test_restyling_xhr_doc.html new file mode 100644 index 0000000000..67b6ac8845 --- /dev/null +++ b/dom/animation/test/mozilla/test_restyling_xhr_doc.html @@ -0,0 +1,106 @@ + + + + + +
+ diff --git a/dom/animation/test/mozilla/test_set_easing.html b/dom/animation/test/mozilla/test_set_easing.html new file mode 100644 index 0000000000..55c77f0e8f --- /dev/null +++ b/dom/animation/test/mozilla/test_set_easing.html @@ -0,0 +1,36 @@ + + + +Test setting easing in sandbox + + + + + +
+ + diff --git a/dom/animation/test/mozilla/test_style_after_finished_on_compositor.html b/dom/animation/test/mozilla/test_style_after_finished_on_compositor.html new file mode 100644 index 0000000000..bccae9e0d5 --- /dev/null +++ b/dom/animation/test/mozilla/test_style_after_finished_on_compositor.html @@ -0,0 +1,138 @@ + + + +Test for styles after finished on the compositor + + + + + + +
+ + diff --git a/dom/animation/test/mozilla/test_transform_limits.html b/dom/animation/test/mozilla/test_transform_limits.html new file mode 100644 index 0000000000..92d1b7e1ec --- /dev/null +++ b/dom/animation/test/mozilla/test_transform_limits.html @@ -0,0 +1,56 @@ + + + + + + +
+ + diff --git a/dom/animation/test/mozilla/test_transition_finish_on_compositor.html b/dom/animation/test/mozilla/test_transition_finish_on_compositor.html new file mode 100644 index 0000000000..46a154b9af --- /dev/null +++ b/dom/animation/test/mozilla/test_transition_finish_on_compositor.html @@ -0,0 +1,22 @@ + + + + +
+ diff --git a/dom/animation/test/mozilla/test_underlying_discrete_value.html b/dom/animation/test/mozilla/test_underlying_discrete_value.html new file mode 100644 index 0000000000..3961305df3 --- /dev/null +++ b/dom/animation/test/mozilla/test_underlying_discrete_value.html @@ -0,0 +1,188 @@ + + + + + + +
+ + diff --git a/dom/animation/test/mozilla/test_unstyled.html b/dom/animation/test/mozilla/test_unstyled.html new file mode 100644 index 0000000000..4724979c11 --- /dev/null +++ b/dom/animation/test/mozilla/test_unstyled.html @@ -0,0 +1,54 @@ + + + + + + + +
+ + diff --git a/dom/animation/test/mozilla/xhr_doc.html b/dom/animation/test/mozilla/xhr_doc.html new file mode 100644 index 0000000000..b9fa57e3f5 --- /dev/null +++ b/dom/animation/test/mozilla/xhr_doc.html @@ -0,0 +1,2 @@ + +
diff --git a/dom/animation/test/style/test_animation-seeking-with-current-time.html b/dom/animation/test/style/test_animation-seeking-with-current-time.html new file mode 100644 index 0000000000..265de8f0f5 --- /dev/null +++ b/dom/animation/test/style/test_animation-seeking-with-current-time.html @@ -0,0 +1,123 @@ + + + + + Tests for seeking using Animation.currentTime + + + + + + +
+ + + diff --git a/dom/animation/test/style/test_animation-seeking-with-start-time.html b/dom/animation/test/style/test_animation-seeking-with-start-time.html new file mode 100644 index 0000000000..e56db5f23d --- /dev/null +++ b/dom/animation/test/style/test_animation-seeking-with-start-time.html @@ -0,0 +1,123 @@ + + + + + Tests for seeking using Animation.startTime + + + + + + +
+ + + diff --git a/dom/animation/test/style/test_animation-setting-effect.html b/dom/animation/test/style/test_animation-setting-effect.html new file mode 100644 index 0000000000..8712072a51 --- /dev/null +++ b/dom/animation/test/style/test_animation-setting-effect.html @@ -0,0 +1,127 @@ + + + + + Tests for setting effects by using Animation.effect + + + + + +
+ + + diff --git a/dom/animation/test/style/test_composite.html b/dom/animation/test/style/test_composite.html new file mode 100644 index 0000000000..1383b1b1e6 --- /dev/null +++ b/dom/animation/test/style/test_composite.html @@ -0,0 +1,142 @@ + + + + + + + + +
+ + diff --git a/dom/animation/test/style/test_interpolation-from-interpolatematrix-to-none.html b/dom/animation/test/style/test_interpolation-from-interpolatematrix-to-none.html new file mode 100644 index 0000000000..1da95392eb --- /dev/null +++ b/dom/animation/test/style/test_interpolation-from-interpolatematrix-to-none.html @@ -0,0 +1,43 @@ + + + + + +
+ + diff --git a/dom/animation/test/style/test_missing-keyframe-on-compositor.html b/dom/animation/test/style/test_missing-keyframe-on-compositor.html new file mode 100644 index 0000000000..8b92a89168 --- /dev/null +++ b/dom/animation/test/style/test_missing-keyframe-on-compositor.html @@ -0,0 +1,577 @@ + + + + + + + + +
+ + diff --git a/dom/animation/test/style/test_missing-keyframe.html b/dom/animation/test/style/test_missing-keyframe.html new file mode 100644 index 0000000000..4047e62408 --- /dev/null +++ b/dom/animation/test/style/test_missing-keyframe.html @@ -0,0 +1,110 @@ + + + + + + +
+ + diff --git a/dom/animation/test/style/test_transform-non-normalizable-rotate3d.html b/dom/animation/test/style/test_transform-non-normalizable-rotate3d.html new file mode 100644 index 0000000000..ad2584ac40 --- /dev/null +++ b/dom/animation/test/style/test_transform-non-normalizable-rotate3d.html @@ -0,0 +1,28 @@ + + + + + +
+ + diff --git a/dom/animation/test/testcommon.js b/dom/animation/test/testcommon.js new file mode 100644 index 0000000000..e1645d4a19 --- /dev/null +++ b/dom/animation/test/testcommon.js @@ -0,0 +1,527 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ */ + +/** + * Use this variable if you specify duration or some other properties + * for script animation. + * E.g., div.animate({ opacity: [0, 1] }, 100 * MS_PER_SEC); + * + * NOTE: Creating animations with short duration may cause intermittent + * failures in asynchronous test. For example, the short duration animation + * might be finished when animation.ready has been fulfilled because of slow + * platforms or busyness of the main thread. + * Setting short duration to cancel its animation does not matter but + * if you don't want to cancel the animation, consider using longer duration. + */ +const MS_PER_SEC = 1000; + +/* The recommended minimum precision to use for time values[1]. + * + * [1] https://drafts.csswg.org/web-animations/#precision-of-time-values + */ +var TIME_PRECISION = 0.0005; // ms + +/* + * Allow implementations to substitute an alternative method for comparing + * times based on their precision requirements. + */ +function assert_times_equal(actual, expected, description) { + assert_approx_equals(actual, expected, TIME_PRECISION * 2, description); +} + +/* + * Compare a time value based on its precision requirements with a fixed value. + */ +function assert_time_equals_literal(actual, expected, description) { + assert_approx_equals(actual, expected, TIME_PRECISION, description); +} + +/* + * Compare matrix string like 'matrix(1, 0, 0, 1, 100, 0)'. + * This function allows error, 0.01, because on Android when we are scaling down + * the document, it results in some errors. + */ +function assert_matrix_equals(actual, expected, description) { + var matrixRegExp = /^matrix\((.+),(.+),(.+),(.+),(.+),(.+)\)/; + assert_regexp_match(actual, matrixRegExp, "Actual value should be a matrix"); + assert_regexp_match( + expected, + matrixRegExp, + "Expected value should be a matrix" + ); + + var actualMatrixArray = actual.match(matrixRegExp).slice(1).map(Number); + var expectedMatrixArray = expected.match(matrixRegExp).slice(1).map(Number); + + assert_equals( + actualMatrixArray.length, + expectedMatrixArray.length, + "Array lengths should be equal (got '" + + expected + + "' and '" + + actual + + "'): " + + description + ); + for (var i = 0; i < actualMatrixArray.length; i++) { + assert_approx_equals( + actualMatrixArray[i], + expectedMatrixArray[i], + 0.01, + "Matrix array should be equal (got '" + + expected + + "' and '" + + actual + + "'): " + + description + ); + } +} + +/** + * Compare given values which are same format of + * KeyframeEffectReadonly::GetProperties. + */ +function assert_properties_equal(actual, expected) { + assert_equals(actual.length, expected.length); + + const compareProperties = (a, b) => + a.property == b.property ? 0 : a.property < b.property ? -1 : 1; + + const sortedActual = actual.sort(compareProperties); + const sortedExpected = expected.sort(compareProperties); + + const serializeValues = values => + values + .map( + value => + "{ " + + ["offset", "value", "easing", "composite"] + .map(member => `${member}: ${value[member]}`) + .join(", ") + + " }" + ) + .join(", "); + + for (let i = 0; i < sortedActual.length; i++) { + assert_equals( + sortedActual[i].property, + sortedExpected[i].property, + "CSS property name should match" + ); + assert_equals( + serializeValues(sortedActual[i].values), + serializeValues(sortedExpected[i].values), + `Values arrays do not match for ` + `${sortedActual[i].property} property` + ); + } +} + +/** + * Construct a object which is same to a value of + * KeyframeEffectReadonly::GetProperties(). + * The method returns undefined as a value in case of missing keyframe. + * Therefor, we can use undefined for |value| and |easing| parameter. + * @param offset - keyframe offset. e.g. 0.1 + * @param value - any keyframe value. e.g. undefined '1px', 'center', 0.5 + * @param composite - 'replace', 'add', 'accumulate' + * @param easing - e.g. undefined, 'linear', 'ease' and so on + * @return Object - + * e.g. { offset: 0.1, value: '1px', composite: 'replace', easing: 'ease'} + */ +function valueFormat(offset, value, composite, easing) { + return { offset, value, easing, composite }; +} + +/** + * Appends a div to the document body and creates an animation on the div. + * NOTE: This function asserts when trying to create animations with durations + * shorter than 100s because the shorter duration may cause intermittent + * failures. If you are not sure how long it is suitable, use 100s; it's + * long enough but shorter than our test framework timeout (330s). + * If you really need to use shorter durations, use animate() function directly. + * + * @param t The testharness.js Test object. If provided, this will be used + * to register a cleanup callback to remove the div when the test + * finishes. + * @param attrs A dictionary object with attribute names and values to set on + * the div. + * @param frames The keyframes passed to Element.animate(). + * @param options The options passed to Element.animate(). + */ +function addDivAndAnimate(t, attrs, frames, options) { + let animDur = typeof options === "object" ? options.duration : options; + assert_greater_than_equal( + animDur, + 100 * MS_PER_SEC, + "Clients of this addDivAndAnimate API must request a duration " + + "of at least 100s, to avoid intermittent failures from e.g." + + "the main thread being busy for an extended period" + ); + + return addDiv(t, attrs).animate(frames, options); +} + +/** + * Appends a div to the document body. + * + * @param t The testharness.js Test object. If provided, this will be used + * to register a cleanup callback to remove the div when the test + * finishes. + * + * @param attrs A dictionary object with attribute names and values to set on + * the div. + */ +function addDiv(t, attrs) { + var div = document.createElement("div"); + if (attrs) { + for (var attrName in attrs) { + div.setAttribute(attrName, attrs[attrName]); + } + } + document.body.appendChild(div); + if (t && typeof t.add_cleanup === "function") { + t.add_cleanup(function () { + if (div.parentNode) { + div.remove(); + } + }); + } + return div; +} + +/** + * Appends a style div to the document head. + * + * @param t The testharness.js Test object. If provided, this will be used + * to register a cleanup callback to remove the style element + * when the test finishes. + * + * @param rules A dictionary object with selector names and rules to set on + * the style sheet. + */ +function addStyle(t, rules) { + var extraStyle = document.createElement("style"); + document.head.appendChild(extraStyle); + if (rules) { + var sheet = extraStyle.sheet; + for (var selector in rules) { + sheet.insertRule( + selector + "{" + rules[selector] + "}", + sheet.cssRules.length + ); + } + } + + if (t && typeof t.add_cleanup === "function") { + t.add_cleanup(function () { + extraStyle.remove(); + }); + } +} + +/** + * Takes a CSS property (e.g. margin-left) and returns the equivalent IDL + * name (e.g. marginLeft). + */ +function propertyToIDL(property) { + var prefixMatch = property.match(/^-(\w+)-/); + if (prefixMatch) { + var prefix = prefixMatch[1] === "moz" ? "Moz" : prefixMatch[1]; + property = prefix + property.substring(prefixMatch[0].length - 1); + } + // https://drafts.csswg.org/cssom/#css-property-to-idl-attribute + return property.replace(/-([a-z])/gi, function (str, group) { + return group.toUpperCase(); + }); +} + +/** + * Promise wrapper for requestAnimationFrame. + */ +function waitForFrame() { + return new Promise(function (resolve, reject) { + window.requestAnimationFrame(resolve); + }); +} + +/** + * Waits for a requestAnimationFrame callback in the next refresh driver tick. + * Note that the 'dom.animations-api.core.enabled' and + * 'dom.animations-api.timelines.enabled' prefs should be true to use this + * function. + */ +function waitForNextFrame(aWindow = window) { + const timeAtStart = aWindow.document.timeline.currentTime; + return new Promise(resolve => { + aWindow.requestAnimationFrame(() => { + if (timeAtStart === aWindow.document.timeline.currentTime) { + aWindow.requestAnimationFrame(resolve); + } else { + resolve(); + } + }); + }); +} + +/** + * Returns a Promise that is resolved after the given number of consecutive + * animation frames have occured (using requestAnimationFrame callbacks). + * + * @param aFrameCount The number of animation frames. + * @param aOnFrame An optional function to be processed in each animation frame. + * @param aWindow An optional window object to be used for requestAnimationFrame. + */ +function waitForAnimationFrames(aFrameCount, aOnFrame, aWindow = window) { + const timeAtStart = aWindow.document.timeline.currentTime; + return new Promise(function (resolve, reject) { + function handleFrame() { + if (aOnFrame && typeof aOnFrame === "function") { + aOnFrame(); + } + if ( + timeAtStart != aWindow.document.timeline.currentTime && + --aFrameCount <= 0 + ) { + resolve(); + } else { + aWindow.requestAnimationFrame(handleFrame); // wait another frame + } + } + aWindow.requestAnimationFrame(handleFrame); + }); +} + +/** + * Promise wrapper for requestIdleCallback. + */ +function waitForIdle() { + return new Promise(resolve => { + requestIdleCallback(resolve); + }); +} + +/** + * Wrapper that takes a sequence of N animations and returns: + * + * Promise.all([animations[0].ready, animations[1].ready, ... animations[N-1].ready]); + */ +function waitForAllAnimations(animations) { + return Promise.all( + animations.map(function (animation) { + return animation.ready; + }) + ); +} + +/** + * Flush the computed style for the given element. This is useful, for example, + * when we are testing a transition and need the initial value of a property + * to be computed so that when we synchronouslyet set it to a different value + * we actually get a transition instead of that being the initial value. + */ +function flushComputedStyle(elem) { + var cs = getComputedStyle(elem); + cs.marginLeft; +} + +if (opener) { + for (var funcName of [ + "async_test", + "assert_not_equals", + "assert_equals", + "assert_approx_equals", + "assert_less_than", + "assert_less_than_equal", + "assert_greater_than", + "assert_between_inclusive", + "assert_true", + "assert_false", + "assert_class_string", + "assert_throws", + "assert_unreached", + "assert_regexp_match", + "promise_test", + "test", + ]) { + if (opener[funcName]) { + window[funcName] = opener[funcName].bind(opener); + } + } + + window.EventWatcher = opener.EventWatcher; + + function done() { + opener.add_completion_callback(function () { + self.close(); + }); + opener.done(); + } +} + +/* + * Returns a promise that is resolved when the document has finished loading. + */ +function waitForDocumentLoad() { + return new Promise(function (resolve, reject) { + if (document.readyState === "complete") { + resolve(); + } else { + window.addEventListener("load", resolve); + } + }); +} + +/* + * Enters test refresh mode, and restores the mode when |t| finishes. + */ +function useTestRefreshMode(t) { + function ensureNoSuppressedPaints() { + return new Promise(resolve => { + function checkSuppressedPaints() { + if (!SpecialPowers.DOMWindowUtils.paintingSuppressed) { + resolve(); + } else { + window.requestAnimationFrame(checkSuppressedPaints); + } + } + checkSuppressedPaints(); + }); + } + + return ensureNoSuppressedPaints().then(() => { + SpecialPowers.DOMWindowUtils.advanceTimeAndRefresh(0); + t.add_cleanup(() => { + SpecialPowers.DOMWindowUtils.restoreNormalRefresh(); + }); + }); +} + +/** + * Returns true if off-main-thread animations. + */ +function isOMTAEnabled() { + const OMTAPrefKey = "layers.offmainthreadcomposition.async-animations"; + return ( + SpecialPowers.DOMWindowUtils.layerManagerRemote && + SpecialPowers.getBoolPref(OMTAPrefKey) + ); +} + +/** + * Append an SVG element to the target element. + * + * @param target The element which want to append. + * @param attrs A array object with attribute name and values to set on + * the SVG element. + * @return An SVG outer element. + */ +function addSVGElement(target, tag, attrs) { + if (!target) { + return null; + } + var element = document.createElementNS("http://www.w3.org/2000/svg", tag); + if (attrs) { + for (var attrName in attrs) { + element.setAttributeNS(null, attrName, attrs[attrName]); + } + } + target.appendChild(element); + return element; +} + +/* + * Get Animation distance between two specified values for a specific property. + * + * @param target The target element. + * @param prop The CSS property. + * @param v1 The first property value. + * @param v2 The Second property value. + * + * @return The distance between |v1| and |v2| for |prop| on |target|. + */ +function getDistance(target, prop, v1, v2) { + if (!target) { + return 0.0; + } + return SpecialPowers.DOMWindowUtils.computeAnimationDistance( + target, + prop, + v1, + v2 + ); +} + +/* + * A promise wrapper for waiting MozAfterPaint. + */ +function waitForPaints() { + // FIXME: Bug 1415065. Instead waiting for two requestAnimationFrames, we + // should wait for MozAfterPaint once after MozAfterPaint is fired properly + // (bug 1341294). + return waitForAnimationFrames(2); +} + +// Returns true if |aAnimation| begins at the current timeline time. We +// sometimes need to detect this case because if we started an animation +// asynchronously (e.g. using play()) and then ended up running the next frame +// at precisely the time the animation started (due to aligning with vsync +// refresh rate) then we won't end up restyling in that frame. +function animationStartsRightNow(aAnimation) { + return ( + aAnimation.startTime === aAnimation.timeline.currentTime && + aAnimation.currentTime === 0 + ); +} + +// Waits for a given animation being ready to restyle. +async function waitForAnimationReadyToRestyle(aAnimation) { + await aAnimation.ready; + // If |aAnimation| begins at the current timeline time, we will not process + // restyling in the initial frame because of aligning with the refresh driver, + // the animation frame in which the ready promise is resolved happens to + // coincide perfectly with the start time of the animation. In this case no + // restyling is needed in the frame so we have to wait one more frame. + if (animationStartsRightNow(aAnimation)) { + await waitForNextFrame(aAnimation.ownerGlobal); + } +} + +function getDocShellForObservingRestylesForWindow(aWindow) { + const docShell = SpecialPowers.wrap(aWindow).docShell; + + docShell.recordProfileTimelineMarkers = true; + docShell.popProfileTimelineMarkers(); + + return docShell; +} + +// Returns the animation restyle markers observed during |frameCount| refresh +// driver ticks in this `window`. This function is typically used to count the +// number of restyles that take place as part of the style update that happens +// on each refresh driver tick, as opposed to synchronous restyles triggered by +// script. +// +// For the latter observeAnimSyncStyling (below) should be used. +function observeStyling(frameCount, onFrame) { + return observeStylingInTargetWindow(window, frameCount, onFrame); +} + +// As with observeStyling but applied to target window |aWindow|. +function observeStylingInTargetWindow(aWindow, aFrameCount, aOnFrame) { + const docShell = getDocShellForObservingRestylesForWindow(aWindow); + + return new Promise(resolve => { + return waitForAnimationFrames(aFrameCount, aOnFrame, aWindow).then(() => { + const markers = docShell.popProfileTimelineMarkers(); + docShell.recordProfileTimelineMarkers = false; + const stylingMarkers = Array.prototype.filter.call( + markers, + (marker, index) => { + return marker.name == "Styles" && marker.isAnimationOnly; + } + ); + resolve(stylingMarkers); + }); + }); +} -- cgit v1.2.3