<!--
     Any copyright is dedicated to the Public Domain.
     http://creativecommons.org/publicdomain/zero/1.0/
-->
<svg xmlns="http://www.w3.org/2000/svg">
  <title>Test non-scaling-stroke repainting when ancestor transforms change</title>
  <!-- From https://bugzilla.mozilla.org/show_bug.cgi?id=875069 -->
  <style>
    .noscale {
      vector-effect: non-scaling-stroke;
    }
  </style>
  <g id="g" style="font: 16px sans-serif; text-rendering: geometricPrecision">
    <text x="50" y="50" stroke="blue" stroke-width="5" class="noscale"><tspan class="noscale">hello</tspan> there</text>

    <text x="50" y="80" stroke="blue" stroke-width="2.5"><tspan class="noscale" stroke-width="5">hello</tspan> there</text>

    <text x="50" y="110" stroke="blue" stroke-width="5" class="noscale"><tspan stroke-width="2.5">hello</tspan> there</text>
  </g>
  <script>

    function doTest() {
      document.getElementById("g").setAttribute("transform", "scale(2)");
      document.documentElement.removeAttribute('class');
      if (window.testRunner)
        testRunner.notifyDone();
    }

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

    setTimeout(doTest, 100);

  </script>
</svg>
