Skip to content

Commit

Permalink
Cherry-pick 71b8fba. rdar://123264559
Browse files Browse the repository at this point in the history
    REGRESSION(273742@main): LinkedIn "…" menu does not populate on click
    https://bugs.webkit.org/show_bug.cgi?id=269848
    rdar://123264559

    Reviewed by Cameron McCormack.

    The menu on LinkedIn transitions the `visibility` CSS property.

    Do a partial revert of 273742@main to revert only the animation wrapper change for the `visibility` property, since it has caused changes that are timing sensitive for the site.

    Imported WPT that also regressed along with 273742@main to avoid regressing this again.

    * LayoutTests/imported/w3c/resources/import-expectations.json:
    * LayoutTests/imported/w3c/web-platform-tests/css/CSS2/visufx/animation/visibility-interpolation-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/CSS2/visufx/animation/visibility-interpolation.html: Added.
    * Source/WebCore/animation/CSSPropertyAnimation.cpp:
    (WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

    Canonical link: https://commits.webkit.org/275120@main

Identifier: 273664.1309@safari-7619.1.5-branch
  • Loading branch information
nt1m authored and MyahCobbs committed Feb 26, 2024
1 parent 7db3479 commit e326c7b
Show file tree
Hide file tree
Showing 4 changed files with 194 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@
"web-platform-tests/css": "skip-new-directories",
"web-platform-tests/css/CSS1": "skip",
"web-platform-tests/css/CSS2": "skip",
"web-platform-tests/css/CSS2/visufx/animation": "import",
"web-platform-tests/css/WOFF2": "import",
"web-platform-tests/css/compositing": "import",
"web-platform-tests/css/css-align": "import",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@

PASS CSS Transitions: property <visibility> from [visible] to [visible] at (-1) should be [visible]
PASS CSS Transitions: property <visibility> from [visible] to [visible] at (0) should be [visible]
PASS CSS Transitions: property <visibility> from [visible] to [visible] at (0.5) should be [visible]
PASS CSS Transitions: property <visibility> from [visible] to [visible] at (1) should be [visible]
PASS CSS Transitions: property <visibility> from [visible] to [visible] at (1.5) should be [visible]
PASS CSS Transitions with transition: all: property <visibility> from [visible] to [visible] at (-1) should be [visible]
PASS CSS Transitions with transition: all: property <visibility> from [visible] to [visible] at (0) should be [visible]
PASS CSS Transitions with transition: all: property <visibility> from [visible] to [visible] at (0.5) should be [visible]
PASS CSS Transitions with transition: all: property <visibility> from [visible] to [visible] at (1) should be [visible]
PASS CSS Transitions with transition: all: property <visibility> from [visible] to [visible] at (1.5) should be [visible]
PASS CSS Animations: property <visibility> from [visible] to [visible] at (-1) should be [visible]
PASS CSS Animations: property <visibility> from [visible] to [visible] at (0) should be [visible]
PASS CSS Animations: property <visibility> from [visible] to [visible] at (0.5) should be [visible]
PASS CSS Animations: property <visibility> from [visible] to [visible] at (1) should be [visible]
PASS CSS Animations: property <visibility> from [visible] to [visible] at (1.5) should be [visible]
PASS Web Animations: property <visibility> from [visible] to [visible] at (-1) should be [visible]
PASS Web Animations: property <visibility> from [visible] to [visible] at (0) should be [visible]
PASS Web Animations: property <visibility> from [visible] to [visible] at (0.5) should be [visible]
PASS Web Animations: property <visibility> from [visible] to [visible] at (1) should be [visible]
PASS Web Animations: property <visibility> from [visible] to [visible] at (1.5) should be [visible]
PASS CSS Transitions: property <visibility> from [visible] to [hidden] at (-1) should be [visible]
PASS CSS Transitions: property <visibility> from [visible] to [hidden] at (0) should be [visible]
PASS CSS Transitions: property <visibility> from [visible] to [hidden] at (0.1) should be [visible]
PASS CSS Transitions: property <visibility> from [visible] to [hidden] at (0.9) should be [visible]
PASS CSS Transitions: property <visibility> from [visible] to [hidden] at (1) should be [hidden]
PASS CSS Transitions: property <visibility> from [visible] to [hidden] at (1.5) should be [hidden]
PASS CSS Transitions with transition: all: property <visibility> from [visible] to [hidden] at (-1) should be [visible]
PASS CSS Transitions with transition: all: property <visibility> from [visible] to [hidden] at (0) should be [visible]
PASS CSS Transitions with transition: all: property <visibility> from [visible] to [hidden] at (0.1) should be [visible]
PASS CSS Transitions with transition: all: property <visibility> from [visible] to [hidden] at (0.9) should be [visible]
PASS CSS Transitions with transition: all: property <visibility> from [visible] to [hidden] at (1) should be [hidden]
PASS CSS Transitions with transition: all: property <visibility> from [visible] to [hidden] at (1.5) should be [hidden]
PASS CSS Animations: property <visibility> from [visible] to [hidden] at (-1) should be [visible]
PASS CSS Animations: property <visibility> from [visible] to [hidden] at (0) should be [visible]
PASS CSS Animations: property <visibility> from [visible] to [hidden] at (0.1) should be [visible]
PASS CSS Animations: property <visibility> from [visible] to [hidden] at (0.9) should be [visible]
PASS CSS Animations: property <visibility> from [visible] to [hidden] at (1) should be [hidden]
PASS CSS Animations: property <visibility> from [visible] to [hidden] at (1.5) should be [hidden]
PASS Web Animations: property <visibility> from [visible] to [hidden] at (-1) should be [visible]
PASS Web Animations: property <visibility> from [visible] to [hidden] at (0) should be [visible]
PASS Web Animations: property <visibility> from [visible] to [hidden] at (0.1) should be [visible]
PASS Web Animations: property <visibility> from [visible] to [hidden] at (0.9) should be [visible]
PASS Web Animations: property <visibility> from [visible] to [hidden] at (1) should be [hidden]
PASS Web Animations: property <visibility> from [visible] to [hidden] at (1.5) should be [hidden]
PASS CSS Transitions: property <visibility> from [hidden] to [visible] at (-1) should be [hidden]
PASS CSS Transitions: property <visibility> from [hidden] to [visible] at (0) should be [hidden]
PASS CSS Transitions: property <visibility> from [hidden] to [visible] at (0.1) should be [visible]
PASS CSS Transitions: property <visibility> from [hidden] to [visible] at (0.9) should be [visible]
PASS CSS Transitions: property <visibility> from [hidden] to [visible] at (1) should be [visible]
PASS CSS Transitions: property <visibility> from [hidden] to [visible] at (1.5) should be [visible]
PASS CSS Transitions with transition: all: property <visibility> from [hidden] to [visible] at (-1) should be [hidden]
PASS CSS Transitions with transition: all: property <visibility> from [hidden] to [visible] at (0) should be [hidden]
PASS CSS Transitions with transition: all: property <visibility> from [hidden] to [visible] at (0.1) should be [visible]
PASS CSS Transitions with transition: all: property <visibility> from [hidden] to [visible] at (0.9) should be [visible]
PASS CSS Transitions with transition: all: property <visibility> from [hidden] to [visible] at (1) should be [visible]
PASS CSS Transitions with transition: all: property <visibility> from [hidden] to [visible] at (1.5) should be [visible]
PASS CSS Animations: property <visibility> from [hidden] to [visible] at (-1) should be [hidden]
PASS CSS Animations: property <visibility> from [hidden] to [visible] at (0) should be [hidden]
PASS CSS Animations: property <visibility> from [hidden] to [visible] at (0.1) should be [visible]
PASS CSS Animations: property <visibility> from [hidden] to [visible] at (0.9) should be [visible]
PASS CSS Animations: property <visibility> from [hidden] to [visible] at (1) should be [visible]
PASS CSS Animations: property <visibility> from [hidden] to [visible] at (1.5) should be [visible]
PASS Web Animations: property <visibility> from [hidden] to [visible] at (-1) should be [hidden]
PASS Web Animations: property <visibility> from [hidden] to [visible] at (0) should be [hidden]
PASS Web Animations: property <visibility> from [hidden] to [visible] at (0.1) should be [visible]
PASS Web Animations: property <visibility> from [hidden] to [visible] at (0.9) should be [visible]
PASS Web Animations: property <visibility> from [hidden] to [visible] at (1) should be [visible]
PASS Web Animations: property <visibility> from [hidden] to [visible] at (1.5) should be [visible]
PASS CSS Transitions: property <visibility> from [collapse] to [visible] at (-1) should be [collapse]
PASS CSS Transitions: property <visibility> from [collapse] to [visible] at (0) should be [collapse]
PASS CSS Transitions: property <visibility> from [collapse] to [visible] at (0.1) should be [visible]
PASS CSS Transitions: property <visibility> from [collapse] to [visible] at (0.9) should be [visible]
PASS CSS Transitions: property <visibility> from [collapse] to [visible] at (1) should be [visible]
PASS CSS Transitions: property <visibility> from [collapse] to [visible] at (1.5) should be [visible]
PASS CSS Transitions with transition: all: property <visibility> from [collapse] to [visible] at (-1) should be [collapse]
PASS CSS Transitions with transition: all: property <visibility> from [collapse] to [visible] at (0) should be [collapse]
PASS CSS Transitions with transition: all: property <visibility> from [collapse] to [visible] at (0.1) should be [visible]
PASS CSS Transitions with transition: all: property <visibility> from [collapse] to [visible] at (0.9) should be [visible]
PASS CSS Transitions with transition: all: property <visibility> from [collapse] to [visible] at (1) should be [visible]
PASS CSS Transitions with transition: all: property <visibility> from [collapse] to [visible] at (1.5) should be [visible]
PASS CSS Animations: property <visibility> from [collapse] to [visible] at (-1) should be [collapse]
PASS CSS Animations: property <visibility> from [collapse] to [visible] at (0) should be [collapse]
PASS CSS Animations: property <visibility> from [collapse] to [visible] at (0.1) should be [visible]
PASS CSS Animations: property <visibility> from [collapse] to [visible] at (0.9) should be [visible]
PASS CSS Animations: property <visibility> from [collapse] to [visible] at (1) should be [visible]
PASS CSS Animations: property <visibility> from [collapse] to [visible] at (1.5) should be [visible]
PASS Web Animations: property <visibility> from [collapse] to [visible] at (-1) should be [collapse]
PASS Web Animations: property <visibility> from [collapse] to [visible] at (0) should be [collapse]
PASS Web Animations: property <visibility> from [collapse] to [visible] at (0.1) should be [visible]
PASS Web Animations: property <visibility> from [collapse] to [visible] at (0.9) should be [visible]
PASS Web Animations: property <visibility> from [collapse] to [visible] at (1) should be [visible]
PASS Web Animations: property <visibility> from [collapse] to [visible] at (1.5) should be [visible]
FAIL CSS Transitions: property <visibility> from [collapse] to [hidden] at (-0.3) should be [hidden] assert_equals: expected "hidden " but got "collapse "
FAIL CSS Transitions: property <visibility> from [collapse] to [hidden] at (0) should be [hidden] assert_equals: expected "hidden " but got "collapse "
FAIL CSS Transitions: property <visibility> from [collapse] to [hidden] at (0.3) should be [hidden] assert_equals: expected "hidden " but got "collapse "
PASS CSS Transitions: property <visibility> from [collapse] to [hidden] at (0.5) should be [hidden]
PASS CSS Transitions: property <visibility> from [collapse] to [hidden] at (0.6) should be [hidden]
PASS CSS Transitions: property <visibility> from [collapse] to [hidden] at (1) should be [hidden]
PASS CSS Transitions: property <visibility> from [collapse] to [hidden] at (1.5) should be [hidden]
FAIL CSS Transitions with transition: all: property <visibility> from [collapse] to [hidden] at (-0.3) should be [hidden] assert_equals: expected "hidden " but got "collapse "
FAIL CSS Transitions with transition: all: property <visibility> from [collapse] to [hidden] at (0) should be [hidden] assert_equals: expected "hidden " but got "collapse "
FAIL CSS Transitions with transition: all: property <visibility> from [collapse] to [hidden] at (0.3) should be [hidden] assert_equals: expected "hidden " but got "collapse "
PASS CSS Transitions with transition: all: property <visibility> from [collapse] to [hidden] at (0.5) should be [hidden]
PASS CSS Transitions with transition: all: property <visibility> from [collapse] to [hidden] at (0.6) should be [hidden]
PASS CSS Transitions with transition: all: property <visibility> from [collapse] to [hidden] at (1) should be [hidden]
PASS CSS Transitions with transition: all: property <visibility> from [collapse] to [hidden] at (1.5) should be [hidden]
PASS CSS Animations: property <visibility> from [collapse] to [hidden] at (-0.3) should be [collapse]
PASS CSS Animations: property <visibility> from [collapse] to [hidden] at (0) should be [collapse]
PASS CSS Animations: property <visibility> from [collapse] to [hidden] at (0.3) should be [collapse]
PASS CSS Animations: property <visibility> from [collapse] to [hidden] at (0.5) should be [hidden]
PASS CSS Animations: property <visibility> from [collapse] to [hidden] at (0.6) should be [hidden]
PASS CSS Animations: property <visibility> from [collapse] to [hidden] at (1) should be [hidden]
PASS CSS Animations: property <visibility> from [collapse] to [hidden] at (1.5) should be [hidden]
PASS Web Animations: property <visibility> from [collapse] to [hidden] at (-0.3) should be [collapse]
PASS Web Animations: property <visibility> from [collapse] to [hidden] at (0) should be [collapse]
PASS Web Animations: property <visibility> from [collapse] to [hidden] at (0.3) should be [collapse]
PASS Web Animations: property <visibility> from [collapse] to [hidden] at (0.5) should be [hidden]
PASS Web Animations: property <visibility> from [collapse] to [hidden] at (0.6) should be [hidden]
PASS Web Animations: property <visibility> from [collapse] to [hidden] at (1) should be [hidden]
PASS Web Animations: property <visibility> from [collapse] to [hidden] at (1.5) should be [hidden]

Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>visibility interpolation</title>
<link rel="help" href="https://www.w3.org/TR/CSS2/visufx.html#visibility">
<meta name="assert" content="visibility supports">

<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/interpolation-testcommon.js"></script>

<body>
<script>
test_interpolation({
property: 'visibility',
from: 'visible',
to: 'visible'
}, [
{at: -1, expect: 'visible'},
{at: 0, expect: 'visible'},
{at: 0.5, expect: 'visible'},
{at: 1, expect: 'visible'},
{at: 1.5, expect: 'visible'},
]);

test_interpolation({
property: 'visibility',
from: 'visible',
to: 'hidden'
}, [
{at: -1, expect: 'visible'},
{at: 0, expect: 'visible'},
{at: 0.1, expect: 'visible'},
{at: 0.9, expect: 'visible'},
{at: 1, expect: 'hidden'},
{at: 1.5, expect: 'hidden'},
]);

test_interpolation({
property: 'visibility',
from: 'hidden',
to: 'visible'
}, [
{at: -1, expect: 'hidden'},
{at: 0, expect: 'hidden'},
{at: 0.1, expect: 'visible'},
{at: 0.9, expect: 'visible'},
{at: 1, expect: 'visible'},
{at: 1.5, expect: 'visible'},
]);

test_interpolation({
property: 'visibility',
from: 'collapse',
to: 'visible'
}, [
{at: -1, expect: 'collapse'},
{at: 0, expect: 'collapse'},
{at: 0.1, expect: 'visible'},
{at: 0.9, expect: 'visible'},
{at: 1, expect: 'visible'},
{at: 1.5, expect: 'visible'},
]);

test_no_interpolation({
property: 'visibility',
from: 'collapse',
to: 'hidden'
});
</script>
</body>
2 changes: 1 addition & 1 deletion Source/WebCore/animation/CSSPropertyAnimation.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3677,7 +3677,7 @@ CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap()
new LengthVariantPropertyWrapper<LengthSize>(CSSPropertyBorderTopRightRadius, &RenderStyle::borderTopRightRadius, &RenderStyle::setBorderTopRightRadius),
new LengthVariantPropertyWrapper<LengthSize>(CSSPropertyBorderBottomLeftRadius, &RenderStyle::borderBottomLeftRadius, &RenderStyle::setBorderBottomLeftRadius),
new LengthVariantPropertyWrapper<LengthSize>(CSSPropertyBorderBottomRightRadius, &RenderStyle::borderBottomRightRadius, &RenderStyle::setBorderBottomRightRadius),
new NonNormalizedDiscretePropertyWrapper<Visibility>(CSSPropertyVisibility, &RenderStyle::visibility, &RenderStyle::setVisibility),
new PropertyWrapper<Visibility>(CSSPropertyVisibility, &RenderStyle::visibility, &RenderStyle::setVisibility),

new ClipWrapper,

Expand Down

0 comments on commit e326c7b

Please sign in to comment.