diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
commit | 2aa4a82499d4becd2284cdb482213d541b8804dd (patch) | |
tree | b80bf8bf13c3766139fbacc530efd0dd9d54394c /layout/base/tests/test_bug607529.html | |
parent | Initial commit. (diff) | |
download | firefox-upstream.tar.xz firefox-upstream.zip |
Adding upstream version 86.0.1.upstream/86.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'layout/base/tests/test_bug607529.html')
-rw-r--r-- | layout/base/tests/test_bug607529.html | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/layout/base/tests/test_bug607529.html b/layout/base/tests/test_bug607529.html new file mode 100644 index 0000000000..40b8c2cf8f --- /dev/null +++ b/layout/base/tests/test_bug607529.html @@ -0,0 +1,89 @@ +<!DOCTYPE HTML> +<html> +<!-- +https://bugzilla.mozilla.org/show_bug.cgi?id=607529 +--> +<head> + <title>Test for Bug 607529</title> + <script src="/tests/SimpleTest/SimpleTest.js"></script> + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> +</head> +<body> +<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=607529">Mozilla Bug 607529</a> +<p id="display"></p> +<div id="content" style="display: none"> + +</div> +<pre id="test"> +<script type="application/javascript"> + SimpleTest.waitForExplicitFinish(); + + /* General idea: Open a new window (needed because we don't bfcache + subframes) that uses requestAnimationFrame, navigate it, navigate it + back, and verify that the animations are still running. */ + + var doneOneLoad = false; + var done = false; + + /** Test for Bug 607529 **/ + + function closeWindowAndFinish() { + w.close(); + window.onmessage = null; + SimpleTest.finish(); + } + + window.onmessage = function(e) { + isnot(e.data, "notcached", "Should never end up not being cached"); + + if (e.data == "loaded") { + if (!doneOneLoad) { + doneOneLoad = true; + w.location = "file_bug607529-1.html"; + } else { + // This is unexpected, but it can happen on Android, probably when + // bfcache gets purged due to memory pressure. Hence, "soft fail" there. + var message = "onload handler shouldn't fire on restore from bfcache"; + if (navigator.appVersion.includes("Android")) { + todo(false, message); + } else { + ok(false, message); + } + // In any case, more messages aren't coming, so finish up. + closeWindowAndFinish(); + } + } + else if (e.data == "goback") { + w.history.back(); + } + else if (e.data == "revived") { + w.postMessage("report", "*"); + } + else if (e.data == "callbackHappened") { + // We might get this message more than once, if the other page queues up + // more than one callbackHappened message before we manage to close it. + // Protect against calling SimpleTest.finish() more than once. + if (!done) { + closeWindowAndFinish(); + done = true; + } + } else { + try { + var msg = JSON.parse(e.data); + } catch (ex) { + // In case JSON.parse throws, we pause to print the string that it + // choked on, and then resume throwing the exception. + ok(false, "JSON.parse threw, when passed string '" + e.data + "'"); + throw ex; + } + if (msg.error) { + window.onerror(msg.msg, msg.url, msg.line); + } + } + }; + + var w = window.open("file_bug607529.html"); +</script> +</pre> +</body> +</html> |