<html>
<head>
<script>
var frames = 2;
if (window.testRunner) {
	testRunner.dumpAsText();
	testRunner.dumpChildFramesAsText();
	testRunner.waitUntilDone();
	internals.settings.setStorageBlockingPolicy('BlockThirdParty');
}

function decrement() {
	--frames;
	if (!frames && window.testRunner) {
		internals.settings.setStorageBlockingPolicy('AllowAll');
		testRunner.notifyDone();
	}
}

window.onmessage = decrement;
</script>
</head>
<body>
<p>This iframe should return a security error:</p>
<iframe src="http://localhost:8000/security/resources/cross-origin-iframe-for-shared-worker.html"></iframe>
<p>This iframe should not return any errors:</p>
<iframe src="http://127.0.0.1:8000/security/resources/cross-origin-iframe-for-shared-worker.html"></iframe>
</body>
</html>
