<!--
     Any copyright is dedicated to the Public Domain.
     http://creativecommons.org/publicdomain/zero/1.0/
-->
<svg xmlns="http://www.w3.org/2000/svg"
     xmlns:xlink="http://www.w3.org/1999/xlink"
     style="background: lime;">
  <defs>
    <rect width="100%" height="100%" id="r"/>
  </defs>
  <use id="u" xlink:href="#r" fill="red"/>
  <script type="text/javascript">
    function doTest() {
      document.getElementById("u").removeAttributeNS("http://www.w3.org/1999/xlink", "href");
      document.documentElement.removeAttribute("class");
      if (window.testRunner)
        testRunner.notifyDone();
    }

    if (window.testRunner)
      testRunner.waitUntilDone();

    setTimeout(doTest, 100);
  </script>
</svg>
