<!DOCTYPE html>
<html>
<head>
  <script>
    function testDone() {
      if (window.testRunner) {
        testRunner.dumpAsText();
        testRunner.notifyDone();
      }
    }

    function changeValues() {
      document.getElementById('color').setAttribute('values', '1');
      requestAnimationFrame(testDone);
    }

    function forcePaint() {
      requestAnimationFrame(changeValues);
    }
  
    onload = function() {
      if (window.testRunner) {
        testRunner.waitUntilDone();
      }
      requestAnimationFrame(forcePaint);
    }
  </script>
</head>
<body>
   <svg id="svg" xmlns="http://www.w3.org/2000/svg" width="100" height="100" filter="url(#MyFilter)" version="1.1">
    <defs>
      <filter id="MyFilter">
        <fecolormatrix id="color" type="matrix"></fecolormatrix>
      </filter>
    </defs>
  </svg>
  PASS
</body>
</html>
