chromium/third_party/blink/web_tests/storage/domstorage/localstorage/resources/iframe-events-second.html

<html>
<head>
<script>
function handleStorageEvent(e)
{
    parent.log("Subframe received storage event:");
    parent.log("Key           - " + e.key);
    parent.log("New Value     - " + e.newValue);
    parent.log("Old Value     - " + e.oldValue);
    parent.log("url           - " + parent.normalizeURL(e.url));
    parent.log("Storage Area  - " + ((e.storageArea == window.localStorage) ? "This window's window.localStorage" : "Another window's window.localStorage"));
    parent.log("");

    if (e.key != "Subframe") {
        parent.log("Subframe about to change localStorage...");
        localStorage.setItem("Subframe", "SET");
    }
}
</script>
</head>
<body onload="window.addEventListener('storage', handleStorageEvent, false);">
This is the subframe which exists to make sure that both frames of a same security origin receive the event for that origin's localStorage object mutating
</body>
</html>