<head>
    <meta name="viewport" content="width=device-width">
    <title>This tests that we correctly add the reflection of an element with a backdrop-filter applied to it.</title>
    <style>

    svg {
        position: absolute;
        top: 0px;
        left: 0px;
        width: 200px;
        height: 200px;
        background-color: lightgray;
    }

    .backdrop {
        position: absolute;
        top: 10px;
        left: 60px;
        width: 80px;
        height: 80px;
        background-color: rgba(255, 255, 255, 0.5);
        border-radius: 20px;
        -webkit-backdrop-filter: invert(100%);
        -webkit-box-reflect: none;
    }

    .changed {
        -webkit-box-reflect: below 20px;
    }

    </style>
</head>
<svg viewbox="0 0 2 2">
    <rect fill="black" x="0" y="0" width="1" height="1"></rect>
    <rect fill="black" x="1" y="1" width="1" height="1"></rect>
</svg>
<div class="backdrop"></div>
<script type="text/javascript">
    
    if (window.testRunner)
        testRunner.waitUntilDone();

    window.requestAnimationFrame(function() {
        document.querySelector(".backdrop").classList.add("changed");
        if (window.testRunner)
            testRunner.notifyDone();
    });
    
</script>
