Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

layout2020: backdrop filter creates a stacking context #35415

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

JoshuaBrest
Copy link

@JoshuaBrest JoshuaBrest commented Feb 11, 2025

Backdrop-filter now creates both a stacking context and a containing block context.


  • ./mach build -d does not report any errors
  • ./mach test-tidy does not report any errors
  • These changes do not require tests because they are already included in wpt.

@JoshuaBrest JoshuaBrest force-pushed the backdrop-filter-stacking-context branch from 41df431 to 3bd1e6a Compare February 11, 2025 03:55
@nicoburns nicoburns added the T-linux-wpt-2020 Do a try run of the WPT label Feb 11, 2025
@github-actions github-actions bot removed the T-linux-wpt-2020 Do a try run of the WPT label Feb 11, 2025
Copy link

🔨 Triggering try run (#13255612864) for Linux (WPT)

Copy link

Test results for linux-wpt-layout-2020 from try job (#13255612864):

Flaky unexpected result (17)
  • FAIL [expected PASS] /_mozilla/css/iframe/hide_and_show.html (#15265)
  • TIMEOUT [expected OK] /_webgl/conformance/canvas/framebuffer-bindings-unaffected-on-resize.html
    • NOTRUN [expected PASS] subtest: Overall test
  • PASS [expected FAIL] /css/compositing/mix-blend-mode/mix-blend-mode-video-sibling.html (#32849)
  • PASS [expected FAIL] /css/css-position/sticky/position-sticky-left-002.html (#35135)
  • OK /css/css-transitions/transitioncancel-001.html
    • FAIL [expected PASS] subtest: transitioncancel should be fired if the element is made display:none during the transition

      assert_true: transitioncancel event did fire expected true got false
      

  • OK /fetch/metadata/generated/css-font-face.sub.tentative.html (#34624)
    • PASS [expected FAIL] subtest: sec-fetch-storage-access - Not sent to non-trustworthy same-origin destination
    • PASS [expected FAIL] subtest: sec-fetch-storage-access - Not sent to non-trustworthy cross-site destination
  • OK /html/browsers/browsing-the-web/navigating-across-documents/008.html (#24456)
    • PASS [expected FAIL] subtest: Link with onclick form submit to javascript url and href navigation
  • OK /html/browsers/browsing-the-web/navigating-across-documents/009.html (#24456)
    • FAIL [expected PASS] subtest: Link with onclick form submit to javascript url with document.write and href navigation

      assert_array_equals: expected property 1 to be "href" but got "click" (expected array ["write", "href"] got ["write", "click"])
      

  • ERROR [expected TIMEOUT] /html/canvas/element/manual/imagebitmap/createImageBitmap-transfer.html (#34119)
  • CRASH [expected OK] /html/canvas/offscreen/canvas-host/2d.canvas.host.size.large.worker.html (#30164)
  • TIMEOUT [expected OK] /html/interaction/focus/processing-model/preventScroll-nested-scroll-elements.html
    • TIMEOUT [expected PASS] subtest: focus(options) - preventScroll on nested scroll elements

      Test timed out
      

  • OK [expected TIMEOUT] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html (#24066)
    • FAIL [expected NOTRUN] subtest: Check that popups from a sandboxed iframe do not escape the sandbox

      assert_equals: It came from a sandboxed iframe expected "null" but got "http://web-platform.test:8000"
      

  • OK /html/semantics/forms/form-submission-0/form-data-set-usv.html (#34934)
    • FAIL [expected PASS] subtest: Strings from form controls should be converted to Unicode scalar values in FormData

      Value is not an object.
      

  • TIMEOUT [expected CRASH] /html/webappapis/dynamic-markup-insertion/opening-the-input-stream/ignore-opens-during-unload.window.html (#21444)
  • OK /resize-observer/eventloop.html (#33599)
    • FAIL [expected PASS] subtest: test0: multiple notifications inside same event loop

      assert_equals: new loop expected 1 but got 0
      

  • OK [expected ERROR] /webxr/render_state_update.https.html (#27535)
  • OK /xhr/open-url-multi-window-5.htm (#23360)
    • FAIL [expected PASS] subtest: XMLHttpRequest: open() resolving URLs (multi-Window; 5)

      assert_throws_dom: function "function() {client.open("GET", "...") }" did not throw
      

Stable unexpected results that are known to be intermittent (17)
  • TIMEOUT /FileAPI/url/url-in-tags-revoke.window.html (#19978)
    • TIMEOUT [expected PASS] subtest: Fetching a blob URL immediately before revoking it works in <script> tags.

      Test timed out
      

  • PASS [expected FAIL] /css/css-tables/table-cell-overflow-auto-scrolled.html (#35011)
  • OK [expected ERROR] /fetch/fetch-later/quota/same-origin-iframe/oversized-payload.tentative.https.window.html (#35210)
  • OK /fetch/metadata/generated/css-font-face.https.sub.tentative.html (#32732)
    • FAIL [expected PASS] subtest: sec-fetch-storage-access - Cross-site

      promise_test: Unhandled rejection with value: object "Error: Failed to query for recorded headers."
      

    • PASS [expected FAIL] subtest: sec-fetch-storage-access - Same site
  • OK /html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-nosrc.html (#34819)
    • PASS [expected FAIL] subtest: link click
  • OK /html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin-fragment.html (#20768)
    • PASS [expected FAIL] subtest: Tests that a fragment navigation in the unload handler will not block the initial navigation
  • OK /html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin.window.html (#29049)
    • PASS [expected FAIL] subtest: Same-origin navigation started from unload handler must be ignored
  • OK /html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/a-click.html (#28697)
    • FAIL [expected PASS] subtest: aElement.click() before the load event must NOT replace

      assert_equals: expected "http://web-platform.test:8000/common/blank.html?thereplacement" but got "http://web-platform.test:8000/html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/resources/code-injector.html?pipe=sub(none)&code=%0A%20%20%20%20const%20a%20%3D%20document.createElement(%22a%22)%3B%0A%20%20%20%20a.href%20%3D%20%22%2Fcommon%2Fblank.html%3Fthereplacement%22%3B%0A%20%20%20%20document.currentScript.before(a)%3B%0A%20%20%20%20a.click()%3B%0A%20%20"
      

  • OK /html/browsers/history/the-history-interface/traverse_the_history_4.html (#21383)
    • FAIL [expected PASS] subtest: Multiple history traversals, last would be aborted

      assert_array_equals: Pages opened during history navigation expected property 1 to be 5 but got 3 (expected array [6, 5] got [6, 3])
      

  • OK /html/browsers/windows/browsing-context-names/duplicate-name-order.html (#34623)
    • FAIL [expected PASS] subtest: Duplicate name lookup order

      assert_equals: subtree first expected "ChildA" but got "SiblingA"
      

  • FAIL [expected PASS] /html/canvas/element/manual/text/canvas.2d.disconnected.html (#30063)
  • TIMEOUT [expected OK] /html/interaction/focus/the-autofocus-attribute/supported-elements.html (#24145)
    • TIMEOUT [expected FAIL] subtest: Host element with delegatesFocus including no focusable descendants should be skipped

      Test timed out
      

    • NOTRUN [expected FAIL] subtest: Area element should support autofocus
  • CRASH [expected TIMEOUT] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html (#22647)
  • CRASH [expected TIMEOUT] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html (#22667)
  • TIMEOUT [expected CRASH] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html (#24066)
  • TIMEOUT /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html (#22154)
    • NOTRUN [expected FAIL] subtest: Check that popups from a sandboxed iframe do not escape the sandbox
  • OK /navigation-timing/test-navigation-type-reload.html (#33334)
    • FAIL [expected PASS] subtest: Reload domComplete > Original domComplete

      assert_true: Reload domComplete > Original domComplete expected true got false
      

    • FAIL [expected PASS] subtest: Reload domContentLoadedEventStart > Original domContentLoadedEventStart

      assert_true: Reload domContentLoadedEventStart > Original domContentLoadedEventStart expected true got false
      

    • FAIL [expected PASS] subtest: Reload fetchStart > Original fetchStart

      assert_true: Reload fetchStart > Original fetchStart expected true got false
      

    • FAIL [expected PASS] subtest: Reload loadEventEnd > Original loadEventEnd

      assert_true: Reload loadEventEnd > Original loadEventEnd expected true got false
      

    • FAIL [expected PASS] subtest: Reload loadEventStart > Original loadEventStart

      assert_true: Reload loadEventStart > Original loadEventStart expected true got false
      

Stable unexpected results (9)
  • OK /css/css-content/inheritance.html
    • PASS [expected FAIL] subtest: Property quotes has initial value auto
    • PASS [expected FAIL] subtest: Property quotes inherits
  • OK /css/filter-effects/animation/backdrop-filter-interpolation-001.html
    • PASS [expected FAIL] subtest: CSS Transitions: property <backdrop-filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (-0.5) should be [hue-rotate(-90deg) blur(4px)]
    • PASS [expected FAIL] subtest: CSS Transitions: property <backdrop-filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (0) should be [hue-rotate(0deg) blur(6px)]
    • PASS [expected FAIL] subtest: CSS Transitions: property <backdrop-filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (0.25) should be [hue-rotate(45deg) blur(7px)]
    • PASS [expected FAIL] subtest: CSS Transitions: property <backdrop-filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (0.5) should be [hue-rotate(90deg) blur(8px)]
    • PASS [expected FAIL] subtest: CSS Transitions: property <backdrop-filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (1) should be [hue-rotate(180deg) blur(10px)]
    • PASS [expected FAIL] subtest: CSS Transitions: property <backdrop-filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (1.5) should be [hue-rotate(270deg) blur(12px)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <backdrop-filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (-0.5) should be [hue-rotate(-90deg) blur(4px)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <backdrop-filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (0) should be [hue-rotate(0deg) blur(6px)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <backdrop-filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (0.25) should be [hue-rotate(45deg) blur(7px)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <backdrop-filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (0.5) should be [hue-rotate(90deg) blur(8px)]
    • And 164 more unexpected results...
  • OK /css/filter-effects/animation/backdrop-filter-interpolation-002.html
    • PASS [expected FAIL] subtest: CSS Transitions: property <backdrop-filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (-0.5) should be [opacity(1) hue-rotate(-90deg)]
    • PASS [expected FAIL] subtest: CSS Transitions: property <backdrop-filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (0.25) should be [opacity(0.875) hue-rotate(45deg)]
    • PASS [expected FAIL] subtest: CSS Transitions: property <backdrop-filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (0.5) should be [opacity(0.75) hue-rotate(90deg)]
    • PASS [expected FAIL] subtest: CSS Transitions: property <backdrop-filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (1) should be [opacity(0.5) hue-rotate(180deg)]
    • PASS [expected FAIL] subtest: CSS Transitions: property <backdrop-filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (1.5) should be [opacity(0.25) hue-rotate(270deg)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <backdrop-filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (-0.5) should be [opacity(1) hue-rotate(-90deg)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <backdrop-filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (0.25) should be [opacity(0.875) hue-rotate(45deg)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <backdrop-filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (0.5) should be [opacity(0.75) hue-rotate(90deg)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <backdrop-filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (1) should be [opacity(0.5) hue-rotate(180deg)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <backdrop-filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (1.5) should be [opacity(0.25) hue-rotate(270deg)]
    • And 55 more unexpected results...
  • OK /css/filter-effects/animation/backdrop-filter-interpolation-003.html
    • PASS [expected FAIL] subtest: CSS Transitions: property <backdrop-filter> from [none] to [blur(10px)] at (-1) should be [blur(0px)]
    • PASS [expected FAIL] subtest: CSS Transitions: property <backdrop-filter> from [none] to [blur(10px)] at (0.5) should be [blur(5px)]
    • PASS [expected FAIL] subtest: CSS Transitions: property <backdrop-filter> from [none] to [blur(10px)] at (1) should be [blur(10px)]
    • PASS [expected FAIL] subtest: CSS Transitions: property <backdrop-filter> from [none] to [blur(10px)] at (1.5) should be [blur(15px)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <backdrop-filter> from [none] to [blur(10px)] at (-1) should be [blur(0px)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <backdrop-filter> from [none] to [blur(10px)] at (0.5) should be [blur(5px)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <backdrop-filter> from [none] to [blur(10px)] at (1) should be [blur(10px)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <backdrop-filter> from [none] to [blur(10px)] at (1.5) should be [blur(15px)]
    • PASS [expected FAIL] subtest: CSS Animations: property <backdrop-filter> from [none] to [blur(10px)] at (-1) should be [blur(0px)]
    • PASS [expected FAIL] subtest: CSS Animations: property <backdrop-filter> from [none] to [blur(10px)] at (0.5) should be [blur(5px)]
    • And 110 more unexpected results...
  • OK /css/filter-effects/animation/backdrop-filter-interpolation-004.html
    • PASS [expected FAIL] subtest: CSS Transitions: property <backdrop-filter> from [blur()] to [blur(10px)] at (-1) should be [blur(0px)]
    • PASS [expected FAIL] subtest: CSS Transitions: property <backdrop-filter> from [blur()] to [blur(10px)] at (0) should be [blur()]
    • PASS [expected FAIL] subtest: CSS Transitions: property <backdrop-filter> from [blur()] to [blur(10px)] at (0.5) should be [blur(5px)]
    • PASS [expected FAIL] subtest: CSS Transitions: property <backdrop-filter> from [blur()] to [blur(10px)] at (1) should be [blur(10px)]
    • PASS [expected FAIL] subtest: CSS Transitions: property <backdrop-filter> from [blur()] to [blur(10px)] at (1.5) should be [blur(15px)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <backdrop-filter> from [blur()] to [blur(10px)] at (-1) should be [blur(0px)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <backdrop-filter> from [blur()] to [blur(10px)] at (0) should be [blur()]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <backdrop-filter> from [blur()] to [blur(10px)] at (0.5) should be [blur(5px)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <backdrop-filter> from [blur()] to [blur(10px)] at (1) should be [blur(10px)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <backdrop-filter> from [blur()] to [blur(10px)] at (1.5) should be [blur(15px)]
    • And 140 more unexpected results...
  • OK /css/filter-effects/backdrop-filter-important.html
    • PASS [expected FAIL] subtest: CSS Filters: !important flag parsing
  • OK /css/filter-effects/inheritance.html
    • PASS [expected FAIL] subtest: Property backdrop-filter has initial value none
    • PASS [expected FAIL] subtest: Property backdrop-filter does not inherit
  • OK /css/filter-effects/parsing/backdrop-filter-computed.html
    • PASS [expected FAIL] subtest: Property backdrop-filter value 'none'
    • PASS [expected FAIL] subtest: Property backdrop-filter value 'blur(100px)'
    • PASS [expected FAIL] subtest: Property backdrop-filter value 'blur()'
    • PASS [expected FAIL] subtest: Property backdrop-filter value 'brightness(0)'
    • PASS [expected FAIL] subtest: Property backdrop-filter value 'brightness(300%)'
    • PASS [expected FAIL] subtest: Property backdrop-filter value 'brightness()'
    • PASS [expected FAIL] subtest: Property backdrop-filter value 'contrast(0)'
    • PASS [expected FAIL] subtest: Property backdrop-filter value 'contrast(300%)'
    • PASS [expected FAIL] subtest: Property backdrop-filter value 'contrast()'
    • PASS [expected FAIL] subtest: Property backdrop-filter value 'drop-shadow(1px 2px)'
    • And 17 more unexpected results...
  • OK /css/filter-effects/parsing/backdrop-filter-parsing-valid.html
    • PASS [expected FAIL] subtest: e.style['backdrop-filter'] = "none" should set the property value
    • PASS [expected FAIL] subtest: e.style['backdrop-filter'] = "blur(100px)" should set the property value
    • PASS [expected FAIL] subtest: e.style['backdrop-filter'] = "blur(0)" should set the property value
    • PASS [expected FAIL] subtest: e.style['backdrop-filter'] = "blur()" should set the property value
    • PASS [expected FAIL] subtest: e.style['backdrop-filter'] = "brightness(0)" should set the property value
    • PASS [expected FAIL] subtest: e.style['backdrop-filter'] = "brightness(300%)" should set the property value
    • PASS [expected FAIL] subtest: e.style['backdrop-filter'] = "brightness()" should set the property value
    • PASS [expected FAIL] subtest: e.style['backdrop-filter'] = "contrast(0)" should set the property value
    • PASS [expected FAIL] subtest: e.style['backdrop-filter'] = "contrast(300%)" should set the property value
    • PASS [expected FAIL] subtest: e.style['backdrop-filter'] = "contrast()" should set the property value
    • And 24 more unexpected results...

Copy link

⚠️ Try run (#13255612864) failed.

@Loirooriol
Copy link
Contributor

Loirooriol commented Feb 11, 2025

The quotes failures are because #34770 hasn't landed yet. I will revert servo/stylo#110

It's just 2 passes so I guess I will just bump stylo to 8af5d515a03bfca5d19fcaa541783327673a951e

@Loirooriol
Copy link
Contributor

./mach test-tidy does not report any errors

You need to check this.

These changes do not require tests

These changes require tests. Not necessarily new tests, existing tests are fine.

But I only see parsing tests among the unexpected results. We need tests for:

  • Establishing a containing block: /css/filter-effects//backdrop-filter-containing-block.html
    It's still failing because the reference uses will-change: transform, which we don't support 🤦
    Are you willing to implement that first?
  • Establishing a stacking context: ???

@JoshuaBrest
Copy link
Author

./mach test-tidy does not report any errors

You need to check this.

I can't because I changed the stylo repo to point to my own.

These changes do not require tests

These changes require tests. Not necessarily new tests, existing tests are fine.

But I only see parsing tests among the unexpected results. We need tests for:

  • Establishing a containing block: /css/filter-effects//backdrop-filter-containing-block.html
    It's still failing because the reference uses will-change: transform, which we don't support 🤦
    Are you willing to implement that first?
  • Establishing a stacking context: ???

Okay.

@JoshuaBrest JoshuaBrest force-pushed the backdrop-filter-stacking-context branch 2 times, most recently from d2c8a56 to 3d25ea2 Compare February 11, 2025 15:42
@Loirooriol
Copy link
Contributor

What do you mean you can't run ./mach test-tidy?

You should also rebase (there are conflicts).

Backdrop-filter now creates both a stacking and a containg block context.

Should say "stacking context and a containing block".

@jdm
Copy link
Member

jdm commented Feb 11, 2025

What do you mean you can't run ./mach test-tidy?

cargo-deny fails with unapproved git forks present in Cargo.lock, and this is part of test-tidy.

@JoshuaBrest
Copy link
Author

What do you mean you can't run ./mach test-tidy?

cargo-deny fails with unapproved git forks present in Cargo.lock, and this is part of test-tidy.

I'll wait to see if and when my PR in servo/stylo#121 lands then just rebase and return it to pointing to the stylo repo's latest tag. I'll force push, so my repo is never actually in the history (i don't think you guys squash and merge).

@Loirooriol
Copy link
Contributor

Ah, interesting. git = "https://github.com/servo/stylo.git", rev = "refs/pull/121/head" could be used instead, but since after landing the Stylo change then Cargo.toml will need to be reverted, it doesn't really matter.

@JoshuaBrest
Copy link
Author

could be used instead, but since after landing the Stylo change then Cargo.toml will need to be reverted, it doesn't really matter.

Oh wow, that is so much smarter. I should've done that.

@JoshuaBrest
Copy link
Author

JoshuaBrest commented Feb 11, 2025

Ah, interesting. git = "https://github.com/servo/stylo.git", rev = "refs/pull/121/head" could be used instead, but since after landing the Stylo change then Cargo.toml will need to be reverted, it doesn't really matter.

Hold on, doesn't this defeat the whole purpose of disallowing unapproved forks? Couldn't someone just open a PR with malicious code and then close it, then just point it to the PR? I believe this would bypass that cargo tidy check.

@Loirooriol
Copy link
Contributor

A malicious person could also edit deny.toml to allow themselves. But such things still require a person with the right permissions to run tests / approve / land.

@Loirooriol
Copy link
Contributor

But I only see parsing tests among the unexpected results. We need tests for:

  • Establishing a containing block: /css/filter-effects//backdrop-filter-containing-block.html
    It's still failing because the reference uses will-change: transform, which we don't support 🤦
    Are you willing to implement that first?
  • Establishing a stacking context: ???

Okay.

So will you implement will-change first? Your argument for backdrop-filter was to improve web content, and will-change has 50% higher usage, so it matches out anyways.

@JoshuaBrest JoshuaBrest force-pushed the backdrop-filter-stacking-context branch 5 times, most recently from f658fa4 to 2339cbd Compare February 12, 2025 17:54
Copy link
Contributor

@Loirooriol Loirooriol left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You need to update test expectations: #35415 (comment)

You need test coverage for establishing a stacking context, and for establishing a containing block for abspos and fixedpos descendants.

@JoshuaBrest
Copy link
Author

JoshuaBrest commented Feb 13, 2025

I did it!

@JoshuaBrest JoshuaBrest force-pushed the backdrop-filter-stacking-context branch from e8451f4 to 1eb7bd2 Compare February 13, 2025 02:06
@Loirooriol
Copy link
Contributor

Again: You need test coverage for establishing a stacking context, and for establishing a containing block for abspos and fixedpos descendants.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants