Closed Bug 1795492 Opened 2 years ago Closed 2 years ago

[wpt-sync] Sync PR 36467 - Revert "Don't take snapshot in CSSScroll/ViewTimeline constructor"

Categories

(Testing :: web-platform-tests, task, P4)

task

Tracking

(firefox108 fixed)

RESOLVED FIXED
108 Branch
Tracking Status
firefox108 --- fixed

People

(Reporter: mozilla.org, Unassigned)

References

()

Details

(Whiteboard: [wptsync downstream])

Sync web-platform-tests PR 36467 into mozilla-central (this bug is closed when the sync is complete).

PR: https://github.com/web-platform-tests/wpt/pull/36467
Details from upstream follow.

Xiaocheng Hu <xiaochengh@chromium.org> wrote:

Revert "Don't take snapshot in CSSScroll/ViewTimeline constructor"

This reverts commit a0391c51ec5cbea5aab72e0d732a3098996897b6.

Reason for revert: Causing build failures crbug.com/1374585

Original change's description:

Don't take snapshot in CSSScroll/ViewTimeline constructor

CSSScrolltimeline and CSSViewTime objects are created as part of style
recalc. However, they currently takes scroll offset snapshot when
constructed, which is not spec-compliant (spec says taking snapshot once
per frame update before style recalc) and violates pipeline stages.

Hence, this patch removes snapshot taking from the constructors.

The behavior change is that if a scroll timeline is created due to a
style change, it won't be activated in an immediate getComputedStyle()
call, but need to wait until the next frame update. This aligns with
scroll offset changes. As a result:

  • Many web tests add waitForNextFrame() before getComputedStyle()
  • A unit test is changed into web test, because snapshotting is not
    part of LocalFrameView::UpdateLifecyclePhases(), but current part of
    update animation steps.

Bug: 1371217
Change-Id: Idb0397f241ae579b580c71b01889e92fb7471bde
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3935343
Commit-Queue: Xiaocheng Hu \<xiaochengh@chromium.org>
Reviewed-by: Kevin Ellis \<kevers@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1058924}

Bug: 1371217,1374585
Change-Id: I067597633a3e03eace5522454c20fe6cc5149693

Reviewed-on: https://chromium-review.googlesource.com/3956549
WPT-Export-Revision: d31725763f5cef5a46df25b3454e4a92eb937429

PR 36467 applied with additional changes from upstream: 647fa47bd1d20fb4c8d8e99f0df76ef8e34b971a, c26f3ffe9d632e561da30728d4ba8c77c103c051

CI Results

Ran 0 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI

Total 9 tests and 4 subtests

Status Summary

Firefox

OK : 8
PASS: 1
FAIL: 52

Chrome

OK : 8
PASS: 44
FAIL: 9

Safari

OK : 8
PASS: 1
FAIL: 51

Links

GitHub PR Head
GitHub PR Base

Details

New Tests That Don't Pass

  • /scroll-animations/css/scroll-timeline-default-iframe-print.html [wpt.fyi]: FAIL (Chrome: FAIL)
  • /scroll-animations/css/animation-timeline-named-scroll-progress-timeline.tentative.html [wpt.fyi]
    • scroll-timeline-name is referenceable in animation-timeline on the declaring element itself: FAIL (Chrome: PASS, Safari: FAIL)
    • scroll-timeline-name is referenceable in animation-timeline on that element's descendants: FAIL (Chrome: PASS, Safari: FAIL)
    • scroll-timeline-name is referenceable in animation-timeline on that element's following siblings: FAIL (Chrome: PASS, Safari: FAIL)
    • scroll-timeline-name is referenceable in animation-timeline on that element's following siblings' descendants: FAIL (Chrome: PASS, Safari: FAIL)
    • scroll-timeline-name is not referenceable in animation-timeline on that element's previous siblings: FAIL (Chrome: PASS, Safari: FAIL)
    • scroll-timeline-name is matched based on tree order, which considers siblings closer than parents: FAIL (Chrome: PASS, Safari: FAIL)
    • scroll-timeline-name affects subsequent siblings when changed: FAIL (Chrome: PASS, Safari: FAIL)
    • scroll-timeline-name on inserted element affects subsequent siblings: FAIL (Chrome: PASS, Safari: FAIL)
    • scroll-timeline-name on removed element affects subsequent siblings: FAIL (Chrome: PASS, Safari: FAIL)
    • scroll-timeline-name on element leaving display:none affects subsequent siblings: FAIL (Chrome: PASS, Safari: FAIL)
    • scroll-timeline-name on element becoming display:none affects subsequent siblings: FAIL (Chrome: PASS, Safari: FAIL)
    • scroll-timeline-axis is block: FAIL (Chrome: PASS, Safari: FAIL)
    • scroll-timeline-axis is inline: FAIL (Chrome: PASS, Safari: FAIL)
    • scroll-timeline-axis is horizontal: FAIL (Chrome: PASS, Safari: FAIL)
    • scroll-timeline-axis is vertical: FAIL (Chrome: PASS, Safari: FAIL)
  • /scroll-animations/css/progress-based-animation-animation-longhand-properties.tentative.html [wpt.fyi]
    • animation-duration: FAIL (Chrome: PASS, Safari: FAIL)
    • animation-duration: 0s: FAIL (Chrome: FAIL, Safari: FAIL)
    • animation-duration: infinite: FAIL (Chrome: FAIL, Safari: FAIL)
    • animation-iteration-count: FAIL (Chrome: PASS, Safari: FAIL)
    • animation-iteration-count: 0: FAIL (Chrome: FAIL, Safari: FAIL)
    • animation-iteration-count: infinite: FAIL (Chrome: FAIL, Safari: FAIL)
    • animation-direction: normal: FAIL (Chrome: PASS, Safari: FAIL)
    • animation-direction: reverse: FAIL (Chrome: PASS, Safari: FAIL)
    • animation-direction: alternate: FAIL (Chrome: PASS, Safari: FAIL)
    • animation-direction: alternate-reverse: FAIL (Chrome: PASS, Safari: FAIL)
    • animation-delay with a positive value: FAIL (Chrome: PASS, Safari: FAIL)
    • animation-delay with a negative value: FAIL (Chrome: PASS, Safari: FAIL)
    • animation-fill-mode: FAIL (Chrome: PASS, Safari: FAIL)
  • /scroll-animations/css/scroll-timeline-dynamic.tentative.html [wpt.fyi]
    • Switching between document and scroll timelines [immediate]: FAIL (Chrome: PASS, Safari: FAIL)
    • Switching between document and scroll timelines [scroll]: FAIL (Chrome: PASS, Safari: FAIL)
    • Changing computed value of animation-timeline changes effective timeline [immediate]: FAIL (Chrome: PASS, Safari: FAIL)
    • Changing computed value of animation-timeline changes effective timeline [scroll]: FAIL (Chrome: PASS, Safari: FAIL)
    • Changing to/from animation-timeline:none [immediate]: FAIL (Chrome: PASS, Safari: FAIL)
    • Changing to/from animation-timeline:none [scroll]: FAIL (Chrome: PASS, Safari: FAIL)
    • Changing scroll-timeline on preceding elements affects target element [immediate]: FAIL (Chrome: PASS, Safari: FAIL)
    • Changing scroll-timeline on preceding elements affects target element [scroll]: FAIL (Chrome: PASS, Safari: FAIL)
    • Reverse animation direction [immediate]: FAIL (Chrome: PASS, Safari: FAIL)
    • Reverse animation direction [scroll]: FAIL (Chrome: PASS, Safari: FAIL)
    • Switching timelines while paused [immediate]: FAIL (Chrome: PASS, Safari: FAIL)
    • Switching timelines while paused [scroll]: FAIL (Chrome: PASS, Safari: FAIL)
    • Switching timelines and pausing at the same time [immediate]: FAIL (Chrome: PASS, Safari: FAIL)
    • Switching timelines and pausing at the same time [scroll]: FAIL (Chrome: PASS, Safari: FAIL)
  • /scroll-animations/css/scroll-timeline-in-container-query.html [wpt.fyi]
    • Timeline appearing via container queries: FAIL (Chrome: PASS, Safari: FAIL)
  • /scroll-animations/css/scroll-timeline-paused-animations.html [wpt.fyi]
    • Test that the scroll animation is paused: FAIL (Chrome: PASS, Safari: FAIL)
    • Test that the scroll animation is paused by updating animation-play-state: FAIL (Chrome: PASS, Safari: FAIL)
  • /scroll-animations/css/scroll-timeline-responsiveness-from-endpoint.html [wpt.fyi]
    • Test that the scroll animation is still responsive after moving from 100%: FAIL (Chrome: PASS, Safari: FAIL)
  • /scroll-animations/css/scroll-timeline-sibling-gcs.html [wpt.fyi]
    • Timelines appearing on preceding siblings are visible to getComputedStyle: FAIL (Chrome: PASS, Safari: FAIL)
  • /scroll-animations/css/view-timeline-dynamic.html [wpt.fyi]
    • Dynamically changing view-timeline-name: FAIL (Chrome: FAIL, Safari: FAIL)
    • Dynamically changing view-timeline-axis: FAIL (Chrome: FAIL, Safari: FAIL)
    • Dynamically changing view-timeline-inset: FAIL (Chrome: FAIL, Safari: FAIL)
    • Element with view-timeline becoming display:none: FAIL (Chrome: FAIL, Safari: FAIL)
Pushed by wptsync@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/691b1c371c73
[wpt PR 36467] - Revert "Don't take snapshot in CSSScroll/ViewTimeline constructor", a=testonly
https://hg.mozilla.org/integration/autoland/rev/0ffbdbf0bc43
[wpt PR 36467] - Update wpt metadata, a=testonly
Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → 108 Branch
You need to log in before you can comment on or make changes to this bug.