<html>
<head>
<script>
var frames = 2;
if (window.testRunner) {
	testRunner.dumpAsText();
	testRunner.dumpChildFramesAsText();
	testRunner.waitUntilDone();
	internals.settings.setStorageBlockingPolicy('BlockThirdParty');
}
window.onmessage = function(message) {
	--frames;
	if (frames <= 0 && window.testRunner) {
		internals.settings.setStorageBlockingPolicy('AllowAll');
		testRunner.notifyDone();
	}
}
</script>
</head>
<body>
<p>This iframe should not have a cache:</p>
<iframe src="http://localhost:8000/security/resources/cross-origin-iframe-for-appcache.html"></iframe>
<p>This iframe should have a cache:</p>
<iframe src="http://127.0.0.1:8000/security/resources/cross-origin-iframe-for-appcache.html"></iframe>
</body>
</html>
