<!DOCTYPE html>
<html>
<head>
    <script>
        function runTest() {
            if (window.testRunner) {
                testRunner.dumpAsText();
                testRunner.waitUntilDone();
            }
    
            if (location.hash == "")
                setTimeout('location.hash="#foo"; location.reload();', 0);
            else if (window.testRunner)
                testRunner.notifyDone();
        }
    </script>
</head>
<body onload='runTest();'>
<body>
<div id='resizeThis'>Ensures that when layout is forced during an unload event, frames with media queries do not crash.</div>
<iframe src='resources/child-iframe-forces-parent-layout-on-unload.html'></iframe>
<iframe src='data:text/html,<html>
    <head>
    <style>
        @media (max-width: 600px) {
            .foo {
                display: none;
            }
        }
    </style>
    </head>
    <body></body>
     <html>'>
</iframe>
</body>
<html>