<html>
<head>
<script>
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.dumpChildFramesAsText();
}
</script>
</head>
<body>
<iframe
    name="since_this_name_is_very_long_it_would_not_be_great_to_repeat_it_in_every_frame_path"
    src="data:text/html,
        <iframe name=and_this_name_is_long_too_so_we_would_get_pretty_long_names src='data:text/html,
            <!-- finally some nameless frames to make WebKit run the name generator -->
            <iframe></iframe>
            <iframe></iframe>
            <iframe></iframe>
            <iframe></iframe>
        '></iframe>">
</iframe>
</body>
</html>
