<!-- webkit-test-runner [ enablePageCache=true ] -->
<!DOCTYPE html>
<html>
  <head>
    <script>
    function runTest(e)
    {
      if (e.persisted) {
        if (window.testRunner)
          testRunner.notifyDone();
      } else
        setTimeout(function() { location.href = 'data:text/html,<script>setTimeout(function() { history.back(); }, 1000);</' + 'script>'; }, 1000);
    }

    if (window.testRunner) {
      testRunner.dumpAsText();
      testRunner.waitUntilDone();
    }
    window.onpageshow = runTest;
    </script>
  </head>
  <body>
    <div>PASS. You didn't crash.</div>
    <iframe id='pluginFrame' src='./resources/subframe-with-plugin.html' width=400 height=200></iframe>
  </body>
</html>
