<?xml version="1.0" encoding="UTF-8"?>
<!--
     Any copyright is dedicated to the Public Domain.
     http://creativecommons.org/publicdomain/zero/1.0/
-->
<html xmlns="http://www.w3.org/1999/xhtml"
      class="reftest-wait">
  <head>
    <title>Test that non-root outer-&lt;svg&gt; repaints correctly changing to overflow="hidden"</title>
  </head>
  <body>
    <svg id="svg" xmlns="http://www.w3.org/2000/svg" width="100" height="100"
         overflow="visible">
      <rect x="-50" y="-50" width="200" height="200" fill="blue"/>
    </svg>
    <script>
      function doTest() {
        document.getElementById("svg").setAttribute("overflow", "hidden");
        document.documentElement.removeAttribute("class");
        if (window.testRunner)
            testRunner.notifyDone();
      }
      if (window.testRunner)
        testRunner.waitUntilDone();

      setTimeout(doTest, 100);
    </script>
  </body>
</html>
