<head>
<script>
if (window.testRunner) {
	testRunner.dumpAsText();
	testRunner.dumpChildFramesAsText();
	testRunner.waitUntilDone();
}
function iframeLoaded()
{
	if (window.testRunner)
		testRunner.notifyDone();
}
function bodyLoaded()
{
    console.log("The page loaded successfully.");
    document.getElementById("iframe").onload = iframeLoaded;
	document.getElementById("iframe").src = "http://localhost:8000/contentextensions/resources/should-load.html";
}
</script>
</head>
<body onload="bodyLoaded()">
<iframe id="iframe" name="iframe"></iframe>
</body>
