<!--
     Any copyright is dedicated to the Public Domain.
     http://creativecommons.org/publicdomain/zero/1.0/
-->
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">

  <!-- From https://bugzilla.mozilla.org/show_bug.cgi?id=381285 -->

  <title>Testcase for style change on foreignObject ancestor</title>

  <!--
  This testcase checks that foreignObject content is correctly updated when
  a style change that requires layout changes occurs on an ancestor.
  -->

  <g id="g" style="font-size: 26px;">
    <foreignObject width="100%" height="100%">
      <div xmlns="http://www.w3.org/1999/xhtml" style="width: 100%; height: 100%;">
        Padding text. Padding text. Padding text. Padding text. Padding text.
        Padding text. Padding text. Padding text. Padding text. Padding text.
        Padding text. Padding text. Padding text. Padding text. Padding text.
        Padding text. Padding text. Padding text. Padding text. Padding text.
        Padding text. Padding text. Padding text. Padding text. Padding text.
        Padding text. Padding text. Padding text. Padding text. Padding text.
        Padding text. Padding text. Padding text. Padding text. Padding text.
        Padding text. Padding text. Padding text. Padding text. Padding text.
        Padding text. Padding text. Padding text. Padding text. Padding text.
        Padding text. Padding text. Padding text. Padding text. Padding text.
      </div>
    </foreignObject>
  </g>

  <script>

  function doTest() {
    document.getElementById('g').style.fontSize = '16px';
    
    document.documentElement.removeAttribute('class');
    
    if (window.testRunner)
        testRunner.notifyDone();
    }
    
    if (window.testRunner)
       testRunner.waitUntilDone();

    setTimeout(doTest, 100);
  </script>

</svg>
