<script>

var intervalId;
function check() {
    // This flag is set by cached-page-2 when it loads.
    // If the timer is fired before cached-page-2 loads, just bail and wait.
    if (!window.opener.canExit)
        return;

    clearInterval(intervalId);
    window.opener.log("Back on page with data urls, timer is still firing.");
    window.opener.log("PASS.");
    window.opener.finish();
}

function loadNext()
{
    intervalId = setInterval(check, 10);

    window.opener.log("page with data urls, about to navigate to page-2.")
    // Location changes need to happen outside the onload handler to generate history entries.
    setTimeout(function() {location.href = "cached-page-2.html";}, 0);
}
</script>
<body onload="loadNext()">
<img src="data:image/jpg;base64,/9j/4AAQSkZJRgABAQEASABIAAD//gATQ3JlYXRlZCB3aXRoIEdJTVD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8SEhEPERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUFBQcGBw4ICA4eFBEUHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh7/wAARCAAnAFsDASIAAhEBAxEB/8QAHQAAAwEAAgMBAAAAAAAAAAAAAAcICQQGAQIDBf/EADgQAAIBAgQEBAQEAwkAAAAAAAECAwQFAAYHEQgSITETQVFhCSJxgRQjcoIyM5EVNEJikpOhwcL/xAAUAQEAAAAAAAAAAAAAAAAAAAAA/8QAFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8AmbRrOd3yXqLZ7xb7jJTJ+MjWpBlIR42YB+fyI2J741jRldFdGDKw3BB3BHrjGjGnXB9mypzfoHYautkaWroA1umdiSW8I7KST3PIU3PrvgG9gwYCQBuTsBgFjxVXOa08PWc6uCTw5Gt5pw2+3SV1jO3vs5xlriiOMnW2sz3mmoyhZagx5Ztc5RuRv75Mp2Lk+ag/wjt5+m074C9fhyX6qr9L75YqiRnitVzDU+/ZEmTmKj9ys37sVHiYvhy0NLDo9ea+N1apqb26S7d1VIYuUH/Ux++KdwBgwYWXE9nxtPNG7ze6WUR3GZBR0HqJpOgYfpHM37cBBfFvmOnzPxB5pr6OcTUsE6UcLDt+TGsbbe3Orn74VGPLszuXdizMdySepOHpp7wy52zjk225mpZYaeC4RmWJJB83JzEA/cAEexwCKxoZ8PNg2gs4B6re6gH/AG4j/wB4hrVXJ1dkHUG8ZTuCv4lBUMkbsP5sR6xuP1KQcPPgC1GbLuoc2SbhViO2X4FoA52VKtV+Xbp0LqOXv3CjAX9hFcZGrUenWnUlrtdUq5jvStT0qqfmgiI2kmPXcbA7A+pHocOu7V9JarXVXOvmSClpIXmmkY7BUUEkn7DGUutWe67UbUe65nrJH8KaYrSRMekMAOyKB5dOp9ycB0xiWJYkknqScfWspaijn8CqheGXkV+VxseVlDKfuCD98N/hK0nfVDUeP+0IGOXrSVqLk3YSdfkh+rEdfYH2x3X4g2R0y/qPasy0FKkNuu9CsBCDYLNBspHoB4Zj2+hwH63w4s1S0md79k+acinr6L8ZBGW6eNGwB2G/cox8v8Pti6MZIaTZwqsh6i2XNdIX3oakNKq93iPyyL3HdSw+u2NIcra/6P5jjQ0eerVTSMN/Cr3NKwPp+aFBP0JwDOxAXH/qImYtQKXJtsrEmt1jTmqPDbdWqnHUe5Vdh9SRjuHFLxRxSQ1OT9Mq/mDAx1l5iPTbzSE/+/6euI2dmd2d2LMx3LE7kn1wHY9MMpV2es/2bKlvB8a4VKxswH8uMdXc/pUMftjWizW6ltFoo7VQxCKlo4EghQdlRVAA/oMST8PrS2tt61epV5pHgNTCaa1rIuzGM7F5R7HYAH0B9cWDgJB+IfpuKq1UWptD4ayUfJQ3BSQC8bN+W49SGO30YemIop5paeeOeCR4pY2Do6HZlYHcEHyIODBgGRnHXfVPN2Uxla+5pmntZRUljSCON5gu2wd1UM3bruevnvhaopdwqjck7DBgwGoXCtp6NOtHrXbaiNFulcPxtwZTvvI/ULuCQeVeVenToT545HEppjHqpprUWOORIblTv+Jt8r9hKoI5T7MCR/z5YMGAzCv9prrFequz3OEQ1tHM0MyBwwVlOxG4JB+2ODgwYAxXPCTw1RXuKjz5n2KKW2sBLb7aHDCfzDy7H+H/AC+fn6YMGAtyCGKngSCCNIoo1CoiDYKB2AHkMe+DBgP/2Q=="/>
</body>
