<html>
<head>
<script>
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.dumpChildFramesAsText();
    testRunner.waitUntilDone();
}
</script>
</head>
<body>
This is the grandparent of a frame that redirects itself.<br>
That grandchild frame redirects from a page with text to an empty page.<br>
A successful test result is a blank grandchild frame.<br>
If the explanatory text on the grandchild frame is still there, the test has failed.<br>
<iframe src="resources/parent-of-redirect.html"></iframe>
</body>
</html>
