<html>
<head>
<script>
function log(message) {
	var node = document.createElement('p');
	node.textContent = message;
	document.body.appendChild(node);
}

window.onload = function() {
	try {
		var l = window.localStorage;
		l = null;
		log('No exception');
	} catch (exception) {
		log(exception.name);
	}
}

window.onmessage = function(e) {
	try {
		var l = window.localStorage;
		l = null;
		log('No exception');
		window.parent.postMessage('No exception', '*');
	} catch (exception) {
		log(exception.name);
		window.parent.postMessage(exception.name, '*');
	}
}
</script>
</head>
<body>
</body>
</html>
