<script>
if (window.testRunner)
    testRunner.waitUntilDone();

window.addEventListener('load', function () {
    setTimeout(function () {
        var el = document.querySelector("div");
        el.className = "";
        setTimeout(function () {
            if (window.testRunner)
                testRunner.notifyDone();
        }, 0);
    }, 0);
}, false);
</script>
<style>
div {
  background-color: green;
  width: 200px;
  height: 200px;
}
.filtered {
  -webkit-filter: hue-rotate(180deg);
  background-color: rgb(0, 166, 166);
}
</style>
<div style="filtered">
  <!-- This paragraph starts with a filter, which will be removed. Once removed, it should have a green background. -->
</div>
