wpt / css / css-masking / mask-image / mask-image-after-backdrop-filter-removal.html

Status: PASS | Duration: 7ms | Subtests: 1/1 | Open test on wpt.live | Open ref on wpt.live | wpt.fyi

/css/css-masking/mask-image/mask-image-after-backdrop-filter-removal.html

<!DOCTYPE html>
<html class="reftest-wait">
<title>Mask-image persists after dynamically removing backdrop-filter</title>
<link rel="help" href="https://drafts.fxtf.org/css-masking-1/#the-mask-image">
<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty">
<link rel="match" href="mask-image-after-backdrop-filter-removal-ref.html">
<script src="/common/reftest-wait.js"></script>
<script src="/common/rendering-utils.js"></script>
<style>
  .element {
    width: 200px;
    height: 100px;
    backdrop-filter: saturate(20%);
    background-color: rgba(0, 187, 255, 0.5);
    mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0) 0, #000 100%);
  }

  .element > div {
    width: 100px;
    height: 100px;
    backdrop-filter: invert(1);
  }
</style>
  <div class="element" id="target">
    <div></div>
  </div>
<script>
  // Dynamically remove backdrop-filter after initial paint.
  // The mask-image should still be visible.
  window.onload = async function() {
    await waitForAtLeastOneFrame();
    document.getElementById("target").style.backdropFilter = "none";
    await waitForAtLeastOneFrame();
    takeScreenshot();
  };
</script>
</html>

/css/css-masking/mask-image/mask-image-after-backdrop-filter-removal-ref.html

<!DOCTYPE html>
<meta charset="utf-8">
<title>Reference for mask-image persists after removing backdrop-filter</title>
<style>
  .element {
    width: 200px;
    height: 100px;
    background-color: rgba(0, 187, 255, 0.5);
    mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0) 0, #000 100%);
  }

  .element > div {
    width: 100px;
    height: 100px;
    backdrop-filter: invert(1);
  }
</style>
  <div class="element">
    <div></div>
  </div>