From 26a029d407be480d791972afb5975cf62c9360a6 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 19 Apr 2024 02:47:55 +0200 Subject: Adding upstream version 124.0.1. Signed-off-by: Daniel Baumann --- .../css/css-transitions/support/1x1-green.png | Bin 0 -> 135 bytes .../tests/css/css-transitions/support/1x1-lime.png | Bin 0 -> 135 bytes .../css/css-transitions/support/1x1-maroon.png | Bin 0 -> 109 bytes .../tests/css/css-transitions/support/1x1-navy.png | Bin 0 -> 109 bytes .../tests/css/css-transitions/support/1x1-red.png | Bin 0 -> 135 bytes .../css/css-transitions/support/1x1-white.png | Bin 0 -> 109 bytes .../css/css-transitions/support/60x60-gg-rr.png | Bin 0 -> 224 bytes .../css/css-transitions/support/60x60-green.png | Bin 0 -> 218 bytes .../tests/css/css-transitions/support/README | 28 ++ .../css-transitions/support/a-green-transition.css | 1 + .../tests/css/css-transitions/support/a-green.css | 1 + .../tests/css/css-transitions/support/b-green.css | 1 + .../tests/css/css-transitions/support/c-red.css | 1 + .../tests/css/css-transitions/support/cat.png | Bin 0 -> 1883 bytes .../css-transitions/support/generalParallelTest.js | 231 ++++++++++++ .../tests/css/css-transitions/support/helper.js | 326 ++++++++++++++++ .../css/css-transitions/support/import-green.css | 1 + .../css/css-transitions/support/import-red.css | 1 + .../tests/css/css-transitions/support/one.gif | Bin 0 -> 184 bytes .../support/pattern-grg-rgr-grg.png | Bin 0 -> 222 bytes .../support/pattern-grg-rrg-rgg.png | Bin 0 -> 231 bytes .../support/pattern-rgr-grg-rgr.png | Bin 0 -> 223 bytes .../css/css-transitions/support/pattern-tr.png | Bin 0 -> 137 bytes .../css/css-transitions/support/properties.js | 410 +++++++++++++++++++++ .../css/css-transitions/support/ruler-h-50%.png | Bin 0 -> 691 bytes .../css/css-transitions/support/ruler-h-50px.png | Bin 0 -> 671 bytes .../css/css-transitions/support/ruler-v-100px.png | Bin 0 -> 760 bytes .../css/css-transitions/support/ruler-v-50px.png | Bin 0 -> 757 bytes .../support/runParallelAsyncHarness.js | 148 ++++++++ .../css/css-transitions/support/square-purple.png | Bin 0 -> 92 bytes .../css/css-transitions/support/square-teal.png | Bin 0 -> 92 bytes .../css/css-transitions/support/square-white.png | Bin 0 -> 78 bytes .../css/css-transitions/support/support/README | 4 + .../support/support/swatch-green.png | Bin 0 -> 84 bytes .../css-transitions/support/support/swatch-red.png | Bin 0 -> 84 bytes .../css/css-transitions/support/swatch-blue.png | Bin 0 -> 84 bytes .../css/css-transitions/support/swatch-green.png | Bin 0 -> 84 bytes .../css/css-transitions/support/swatch-lime.png | Bin 0 -> 84 bytes .../css/css-transitions/support/swatch-orange.png | Bin 0 -> 84 bytes .../css/css-transitions/support/swatch-red.png | Bin 0 -> 84 bytes .../css/css-transitions/support/swatch-teal.png | Bin 0 -> 156 bytes .../css/css-transitions/support/swatch-white.png | Bin 0 -> 85 bytes .../css/css-transitions/support/swatch-yellow.png | Bin 0 -> 84 bytes .../tests/css/css-transitions/support/test-bl.png | Bin 0 -> 1368 bytes .../tests/css/css-transitions/support/test-br.png | Bin 0 -> 1045 bytes .../support/test-inner-half-size.png | Bin 0 -> 180 bytes .../css/css-transitions/support/test-outer.png | Bin 0 -> 2412 bytes .../tests/css/css-transitions/support/test-tl.png | Bin 0 -> 1025 bytes .../tests/css/css-transitions/support/test-tr.png | Bin 0 -> 1235 bytes .../tests/css/css-transitions/support/two.gif | Bin 0 -> 184 bytes .../css/css-transitions/support/vendorPrefix.js | 86 +++++ 51 files changed, 1239 insertions(+) create mode 100644 testing/web-platform/tests/css/css-transitions/support/1x1-green.png create mode 100644 testing/web-platform/tests/css/css-transitions/support/1x1-lime.png create mode 100644 testing/web-platform/tests/css/css-transitions/support/1x1-maroon.png create mode 100644 testing/web-platform/tests/css/css-transitions/support/1x1-navy.png create mode 100644 testing/web-platform/tests/css/css-transitions/support/1x1-red.png create mode 100644 testing/web-platform/tests/css/css-transitions/support/1x1-white.png create mode 100644 testing/web-platform/tests/css/css-transitions/support/60x60-gg-rr.png create mode 100644 testing/web-platform/tests/css/css-transitions/support/60x60-green.png create mode 100644 testing/web-platform/tests/css/css-transitions/support/README create mode 100644 testing/web-platform/tests/css/css-transitions/support/a-green-transition.css create mode 100644 testing/web-platform/tests/css/css-transitions/support/a-green.css create mode 100644 testing/web-platform/tests/css/css-transitions/support/b-green.css create mode 100644 testing/web-platform/tests/css/css-transitions/support/c-red.css create mode 100644 testing/web-platform/tests/css/css-transitions/support/cat.png create mode 100644 testing/web-platform/tests/css/css-transitions/support/generalParallelTest.js create mode 100644 testing/web-platform/tests/css/css-transitions/support/helper.js create mode 100644 testing/web-platform/tests/css/css-transitions/support/import-green.css create mode 100644 testing/web-platform/tests/css/css-transitions/support/import-red.css create mode 100644 testing/web-platform/tests/css/css-transitions/support/one.gif create mode 100644 testing/web-platform/tests/css/css-transitions/support/pattern-grg-rgr-grg.png create mode 100644 testing/web-platform/tests/css/css-transitions/support/pattern-grg-rrg-rgg.png create mode 100644 testing/web-platform/tests/css/css-transitions/support/pattern-rgr-grg-rgr.png create mode 100644 testing/web-platform/tests/css/css-transitions/support/pattern-tr.png create mode 100644 testing/web-platform/tests/css/css-transitions/support/properties.js create mode 100644 testing/web-platform/tests/css/css-transitions/support/ruler-h-50%.png create mode 100644 testing/web-platform/tests/css/css-transitions/support/ruler-h-50px.png create mode 100644 testing/web-platform/tests/css/css-transitions/support/ruler-v-100px.png create mode 100644 testing/web-platform/tests/css/css-transitions/support/ruler-v-50px.png create mode 100644 testing/web-platform/tests/css/css-transitions/support/runParallelAsyncHarness.js create mode 100644 testing/web-platform/tests/css/css-transitions/support/square-purple.png create mode 100644 testing/web-platform/tests/css/css-transitions/support/square-teal.png create mode 100644 testing/web-platform/tests/css/css-transitions/support/square-white.png create mode 100644 testing/web-platform/tests/css/css-transitions/support/support/README create mode 100644 testing/web-platform/tests/css/css-transitions/support/support/swatch-green.png create mode 100644 testing/web-platform/tests/css/css-transitions/support/support/swatch-red.png create mode 100644 testing/web-platform/tests/css/css-transitions/support/swatch-blue.png create mode 100644 testing/web-platform/tests/css/css-transitions/support/swatch-green.png create mode 100644 testing/web-platform/tests/css/css-transitions/support/swatch-lime.png create mode 100644 testing/web-platform/tests/css/css-transitions/support/swatch-orange.png create mode 100644 testing/web-platform/tests/css/css-transitions/support/swatch-red.png create mode 100644 testing/web-platform/tests/css/css-transitions/support/swatch-teal.png create mode 100644 testing/web-platform/tests/css/css-transitions/support/swatch-white.png create mode 100644 testing/web-platform/tests/css/css-transitions/support/swatch-yellow.png create mode 100644 testing/web-platform/tests/css/css-transitions/support/test-bl.png create mode 100644 testing/web-platform/tests/css/css-transitions/support/test-br.png create mode 100644 testing/web-platform/tests/css/css-transitions/support/test-inner-half-size.png create mode 100644 testing/web-platform/tests/css/css-transitions/support/test-outer.png create mode 100644 testing/web-platform/tests/css/css-transitions/support/test-tl.png create mode 100644 testing/web-platform/tests/css/css-transitions/support/test-tr.png create mode 100644 testing/web-platform/tests/css/css-transitions/support/two.gif create mode 100644 testing/web-platform/tests/css/css-transitions/support/vendorPrefix.js (limited to 'testing/web-platform/tests/css/css-transitions/support') diff --git a/testing/web-platform/tests/css/css-transitions/support/1x1-green.png b/testing/web-platform/tests/css/css-transitions/support/1x1-green.png new file mode 100644 index 0000000000..b98ca0ba0a Binary files /dev/null and b/testing/web-platform/tests/css/css-transitions/support/1x1-green.png differ diff --git a/testing/web-platform/tests/css/css-transitions/support/1x1-lime.png b/testing/web-platform/tests/css/css-transitions/support/1x1-lime.png new file mode 100644 index 0000000000..cb397fb090 Binary files /dev/null and b/testing/web-platform/tests/css/css-transitions/support/1x1-lime.png differ diff --git a/testing/web-platform/tests/css/css-transitions/support/1x1-maroon.png b/testing/web-platform/tests/css/css-transitions/support/1x1-maroon.png new file mode 100644 index 0000000000..3f86b07219 Binary files /dev/null and b/testing/web-platform/tests/css/css-transitions/support/1x1-maroon.png differ diff --git a/testing/web-platform/tests/css/css-transitions/support/1x1-navy.png b/testing/web-platform/tests/css/css-transitions/support/1x1-navy.png new file mode 100644 index 0000000000..9b9a03955b Binary files /dev/null and b/testing/web-platform/tests/css/css-transitions/support/1x1-navy.png differ diff --git a/testing/web-platform/tests/css/css-transitions/support/1x1-red.png b/testing/web-platform/tests/css/css-transitions/support/1x1-red.png new file mode 100644 index 0000000000..6bd73ac101 Binary files /dev/null and b/testing/web-platform/tests/css/css-transitions/support/1x1-red.png differ diff --git a/testing/web-platform/tests/css/css-transitions/support/1x1-white.png b/testing/web-platform/tests/css/css-transitions/support/1x1-white.png new file mode 100644 index 0000000000..dd43faec54 Binary files /dev/null and b/testing/web-platform/tests/css/css-transitions/support/1x1-white.png differ diff --git a/testing/web-platform/tests/css/css-transitions/support/60x60-gg-rr.png b/testing/web-platform/tests/css/css-transitions/support/60x60-gg-rr.png new file mode 100644 index 0000000000..84f5b2a4f1 Binary files /dev/null and b/testing/web-platform/tests/css/css-transitions/support/60x60-gg-rr.png differ diff --git a/testing/web-platform/tests/css/css-transitions/support/60x60-green.png b/testing/web-platform/tests/css/css-transitions/support/60x60-green.png new file mode 100644 index 0000000000..b3c8cf3eb4 Binary files /dev/null and b/testing/web-platform/tests/css/css-transitions/support/60x60-green.png differ diff --git a/testing/web-platform/tests/css/css-transitions/support/README b/testing/web-platform/tests/css/css-transitions/support/README new file mode 100644 index 0000000000..2e5f2ad073 --- /dev/null +++ b/testing/web-platform/tests/css/css-transitions/support/README @@ -0,0 +1,28 @@ +CSS Global Support Directory +============================ + +This directory contains common support files (such as images and external +style sheets). These are sync'ed into the support directories of all our +test suites. If you have test-suite-specific support files, please add +them to the appropriate test-suite-specific support/ directory. + +If you add to a support/ directory, please run the tools/supportprop.py +script from the top of the repository to cascade support files into the +lower-level support directories. + +Description of the Common Support File Collection +------------------------------------------------- + +The 1x1-* images are all exactly one pixel. + +The swatch-* images all use 15x15 cells. + +The square-* images all use 15x15 cells with one pixel borders. + +The pattern-* images use cells of various sizes: + + pattern-grg-rgr-grg.png 20x20 + pattern-rgr-grg-rgr.png 20x20 + pattern-tr.png 15x15 + pattern-grg-rrg-rgg.png 15x15 + diff --git a/testing/web-platform/tests/css/css-transitions/support/a-green-transition.css b/testing/web-platform/tests/css/css-transitions/support/a-green-transition.css new file mode 100644 index 0000000000..3f68e53cd6 --- /dev/null +++ b/testing/web-platform/tests/css/css-transitions/support/a-green-transition.css @@ -0,0 +1 @@ +.a { color: green; transition: 10s; transition-timing-function: step-end; } diff --git a/testing/web-platform/tests/css/css-transitions/support/a-green.css b/testing/web-platform/tests/css/css-transitions/support/a-green.css new file mode 100644 index 0000000000..b0dbb071d5 --- /dev/null +++ b/testing/web-platform/tests/css/css-transitions/support/a-green.css @@ -0,0 +1 @@ +.a { color: green; } diff --git a/testing/web-platform/tests/css/css-transitions/support/b-green.css b/testing/web-platform/tests/css/css-transitions/support/b-green.css new file mode 100644 index 0000000000..a0473f5ca2 --- /dev/null +++ b/testing/web-platform/tests/css/css-transitions/support/b-green.css @@ -0,0 +1 @@ +.b { color: green; } \ No newline at end of file diff --git a/testing/web-platform/tests/css/css-transitions/support/c-red.css b/testing/web-platform/tests/css/css-transitions/support/c-red.css new file mode 100644 index 0000000000..d4ba5c64e9 --- /dev/null +++ b/testing/web-platform/tests/css/css-transitions/support/c-red.css @@ -0,0 +1 @@ +.c { color: red; } \ No newline at end of file diff --git a/testing/web-platform/tests/css/css-transitions/support/cat.png b/testing/web-platform/tests/css/css-transitions/support/cat.png new file mode 100644 index 0000000000..85dd732481 Binary files /dev/null and b/testing/web-platform/tests/css/css-transitions/support/cat.png differ diff --git a/testing/web-platform/tests/css/css-transitions/support/generalParallelTest.js b/testing/web-platform/tests/css/css-transitions/support/generalParallelTest.js new file mode 100644 index 0000000000..f6e14128fc --- /dev/null +++ b/testing/web-platform/tests/css/css-transitions/support/generalParallelTest.js @@ -0,0 +1,231 @@ +(function(root) { +'use strict'; +// +var index = 0; +var suite = root.generalParallelTest = { + // prepare individual test + setup: function(data, options) { + suite._setupDom(data, options); + suite._setupEvents(data, options); + }, + // clone fixture and prepare data containers + _setupDom: function(data, options) { + // clone fixture into off-viewport test-canvas + data.fixture = document.getElementById('fixture').cloneNode(true); + data.fixture.id = 'test-' + (index++); + (document.getElementById('offscreen') || document.body).appendChild(data.fixture); + + // data container for #fixture > .container > .transition + data.transition = { + node: data.fixture.querySelector('.transition'), + values: [], + events: [], + computedStyle: function(property) { + return computedStyle(data.transition.node, property); + } + }; + + // data container for #fixture > .container + data.container = { + node: data.transition.node.parentNode, + values: [], + events: [], + computedStyle: function(property) { + return computedStyle(data.container.node, property); + } + }; + + // data container for #fixture > .container > .transition[:before | :after] + if (data.pseudo) { + data.pseudo = { + name: data.pseudo, + values: [], + computedStyle: function(property) { + return computedStyle(data.transition.node, property, ':' + data.pseudo.name); + } + }; + } + }, + // bind TransitionEnd event listeners + _setupEvents: function(data, options) { + ['transition', 'container'].forEach(function(elem) { + var handler = function(event) { + event.stopPropagation(); + var name = event.propertyName; + var time = Math.round(event.elapsedTime * 1000) / 1000; + var pseudo = event.pseudoElement ? (':' + event.pseudoElement) : ''; + data[elem].events.push(name + pseudo + ":" + time + "s"); + }; + data[elem].node.addEventListener('transitionend', handler, false); + data[elem]._events = {'transitionend': handler}; + }); + }, + // cleanup after individual test + teardown: function(data, options) { + // data.fixture.remove(); + if (data.fixture.parentNode) { + data.fixture.parentNode.removeChild(data.fixture); + } + }, + // invoked prior to running a slice of tests + sliceStart: function(options, tests) { + // inject styles into document + setStyle(options.styles); + // kick off value collection loop + generalParallelTest.startValueCollection(options); + }, + // invoked after running a slice of tests + sliceDone: function(options, tests) { + // stop value collection loop + generalParallelTest.stopValueCollection(options); + // reset styles cache + options.styles = {}; + }, + // called once all tests are done + done: function(options) { + // reset document styles + setStyle(); + reflow(); + }, + // add styles of individual test to slice cache + addStyles: function(data, options, styles) { + if (!options.styles) { + options.styles = {}; + } + + Object.keys(styles).forEach(function(key) { + var selector = '#' + data.fixture.id + // fixture must become #fixture.fixture rather than a child selector + + (key.substring(0, 8) === '.fixture' ? '' : ' ') + + key; + + options.styles[selector] = styles[key]; + }); + }, + // set style and compute values for container and transition + getStyle: function(data) { + reflow(); + // grab current styles: "initial state" + suite._getStyleFor(data, 'from'); + // apply target state + suite._addClass(data, 'to', true); + // grab current styles: "target state" + suite._getStyleFor(data, 'to'); + // remove target state + suite._removeClass(data, 'to', true); + + // clean up the mess created for value collection + data.container._values = []; + data.transition._values = []; + if (data.pseudo) { + data.pseudo._values = []; + } + }, + // grab current styles and store in respective element's data container + _getStyleFor: function(data, key) { + data.container[key] = data.container.computedStyle(data.property); + data.transition[key] = data.transition.computedStyle(data.property); + if (data.pseudo) { + data.pseudo[key] = data.pseudo.computedStyle(data.property); + } + }, + // add class to test's elements and possibly reflow + _addClass: function(data, className, forceReflow) { + data.container.node.classList.add(className); + data.transition.node.classList.add(className); + if (forceReflow) { + reflow(); + } + }, + // remove class from test's elements and possibly reflow + _removeClass: function(data, className, forceReflow) { + data.container.node.classList.remove(className); + data.transition.node.classList.remove(className); + if (forceReflow) { + reflow(); + } + }, + // add transition and to classes to container and transition + startTransition: function(data) { + // add transition-defining class + suite._addClass(data, 'how', true); + // add target state (without reflowing) + suite._addClass(data, 'to', false); + }, + // requestAnimationFrame runLoop to collect computed values + startValueCollection: function(options) { + var raf = window.requestAnimationFrame || function(callback){ + setTimeout(callback, 20); + }; + + // flag denoting if the runLoop should continue (true) or exit (false) + options._collectValues = true; + + function runLoop() { + if (!options._collectValues) { + // test's are done, stop annoying the CPU + return; + } + + // collect current style for test's elements + options.tests.forEach(function(data) { + if (!data.property) { + return; + } + + ['transition', 'container', 'pseudo'].forEach(function(elem) { + var pseudo = null; + if (!data[elem] || (elem === 'pseudo' && !data.pseudo)) { + return; + } + + var current = data[elem].computedStyle(data.property); + var values = data[elem].values; + var length = values.length; + if (!length || values[length - 1] !== current) { + values.push(current); + } + }); + }); + + // rinse and repeat + raf(runLoop); + } + + runLoop(); + }, + // stop requestAnimationFrame runLoop collecting computed values + stopValueCollection: function(options) { + options._collectValues = false; + }, + + // generate test.step function asserting collected events match expected + assertExpectedEventsFunc: function(data, elem, expected) { + return function() { + var _result = data[elem].events.sort().join(" "); + var _expected = typeof expected === 'string' ? expected : expected.sort().join(" "); + assert_equals(_result, _expected, "Expected TransitionEnd events triggered on ." + elem); + }; + }, + // generate test.step function asserting collected values are neither initial nor target + assertIntermediateValuesFunc: function(data, elem) { + return function() { + // the first value (index: 0) is always going to be the initial value + // the last value is always going to be the target value + var values = data[elem].values; + if (data.flags.discrete) { + // a discrete value will just switch from one state to another without having passed intermediate states. + assert_equals(values[0], data[elem].from, "must be initial value while transitioning on ." + elem); + assert_equals(values[1], data[elem].to, "must be target value after transitioning on ." + elem); + assert_equals(values.length, 2, "discrete property only has 2 values ." + elem); + } else { + assert_not_equals(values[1], data[elem].from, "may not be initial value while transitioning on ." + elem); + assert_not_equals(values[1], data[elem].to, "may not be target value while transitioning on ." + elem); + } + + // TODO: first value must be initial, last value must be target + }; + } +}; + +})(window); diff --git a/testing/web-platform/tests/css/css-transitions/support/helper.js b/testing/web-platform/tests/css/css-transitions/support/helper.js new file mode 100644 index 0000000000..a37aae9183 --- /dev/null +++ b/testing/web-platform/tests/css/css-transitions/support/helper.js @@ -0,0 +1,326 @@ +// +// Simple Helper Functions For Testing CSS +// + +(function(root) { +'use strict'; + +// serialize styles object and dump to dom +// appends