<!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.overridePreference("WebKitUsesPageCachePreferenceKey", 1);
      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>
