<!DOCTYPE html> <script> window.onerror = function(msg, url, line) { var myMsg = JSON.stringify({msg: msg, url: url, line: line, error: true}); opener.postMessage(myMsg, "*"); } var report = false; function g() { if (report) { opener.postMessage("callbackHappened", "*"); } window.requestAnimationFrame(g); } g(); window.onload = function() { opener.postMessage("loaded", "*"); } addEventListener("pagehide", function f(e) { if (!e.persisted && !report) { opener.postMessage("notcached", "*"); } }, false); addEventListener("pageshow", function f(e) { if (e.persisted) { opener.postMessage("revived", "*"); } }, false); window.onmessage = function (e) { if (e.data == "report") { report = true; } }; </script>