<!-- webkit-test-runner [ enablePageCache=true ] -->
<html>
    <head>
        <title>Viewport meta data stored in page cache.</title>
        <meta name="viewport" content="width=100, initial-scale=2">

        <script>
            // The objective is to test if the viewport meta tag information is stored in page cache

            if (window.testRunner) {
                testRunner.dumpAsText();
                testRunner.waitUntilDone();
            }

            function pageshow(evt)
            {
                if (!evt.persisted) {
                    // this will run only when the page is loaded for the first time.
                    setTimeout('window.location = "data:text/html,<script>history.back()<" + "/script>"', 0);

                } else {
                    // if this point is reached the page is comming from the page cache.
                    alert(internals.configurationForViewport(1, 320, 480, 320, 352));
                    setTimeout(function() { if (window.testRunner) testRunner.notifyDone(); }, 0);

                }
            }

            window.onpageshow = pageshow;
        </script>
    </head>
</html>

