[Webkit-unassigned] [Bug 242185] New: [web-animations] additive/accumulative color blending fails to account for out-of-bounds values
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Thu Jun 30 06:37:41 PDT 2022
https://bugs.webkit.org/show_bug.cgi?id=242185
Bug ID: 242185
Summary: [web-animations] additive/accumulative color blending
fails to account for out-of-bounds values
Product: WebKit
Version: WebKit Nightly Build
Hardware: Unspecified
OS: Unspecified
Status: NEW
Severity: Normal
Priority: P2
Component: Animations
Assignee: webkit-unassigned at lists.webkit.org
Reporter: graouts at webkit.org
CC: dino at apple.com, graouts at apple.com
We have 28 FAIL results across these WPTs all due to the same issue:
- web-animations/animation-model/animation-types/accumulation-per-property-001.html
- web-animations/animation-model/animation-types/accumulation-per-property-002.html
- web-animations/animation-model/animation-types/addition-per-property-001.html
- web-animations/animation-model/animation-types/addition-per-property-002.html
These run this subtest from web-animations/animation-model/animation-types/property-types.js for `add` and `accumulate` composite operations for a variety of color CSS properties:
test(t => {
const idlName = propertyToIDL(property);
const target = createTestElement(t, setup);
target.style[idlName] = 'rgb(128, 128, 128)';
const animation = target.animate(
{
[idlName]: ['rgb(255, 0, 0)', 'rgb(0, 0, 255)'],
},
{ duration: 1000, composite }
);
testAnimationSamples(animation, idlName,
[{ time: 0, expected: 'rgb(255, 128, 128)' },
// The value at 50% is interpolated
// from 'rgb(128+255, 128, 128)'
// to 'rgb(128, 128, 128+255)'.
{ time: 500, expected: 'rgb(255, 128, 255)' }]);
}, `${property} supports animating as color of rgb() with overflowed `
+ ' from and to values');
The issue is that we always clamp values as we blend colors so we can't have the intermediary representations of rgb(128+255, 128, 128) and rgb(128, 128, 128+255) above for additive and accumulate.
Note that when we blend using `add` or `accumulate`, it will only ever be through some intermediary calls to `CSSPropertyAnimation::blendProperties()` made under `KeyframeEffect::setAnimatedPropertiesInStyle()` which will not produce web-facing values. Only at the end of that method do we call `CSSPropertyAnimation::blendProperties()` with a `replace` composite operation which would be expected to clamp.
--
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20220630/2a12dccc/attachment.htm>
More information about the webkit-unassigned
mailing list