summaryrefslogtreecommitdiffstats
path: root/layout/base/tests/test_remote_frame.html
diff options
context:
space:
mode:
Diffstat (limited to 'layout/base/tests/test_remote_frame.html')
-rw-r--r--layout/base/tests/test_remote_frame.html66
1 files changed, 66 insertions, 0 deletions
diff --git a/layout/base/tests/test_remote_frame.html b/layout/base/tests/test_remote_frame.html
new file mode 100644
index 000000000..765d526ae
--- /dev/null
+++ b/layout/base/tests/test_remote_frame.html
@@ -0,0 +1,66 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+ <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
+ <script type="text/javascript" src="/tests/SimpleTest/WindowSnapshot.js"></script>
+ <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
+ <style>
+ div, iframe {
+ position:absolute;
+ left:0; top:50px;
+ width:400px; height:400px;
+ transform: translateY(50px);
+ border:5px solid black;
+ }
+ </style>
+</head>
+ <body>
+ <div id="d" style="background:blue"></div>
+
+ <script type="application/javascript;version=1.7">
+ "use strict";
+
+ var referenceSnapshot;
+ var iterations = 0;
+
+ SimpleTest.waitForExplicitFinish();
+ SimpleTest.requestFlakyTimeout("untriaged");
+
+ function pollForTestPass() {
+ var snapshot = snapshotWindow(window);
+ if (compareSnapshots(referenceSnapshot, snapshot, true)[0]) {
+ ok(true, "Test passed after " + iterations + " iterations");
+ SimpleTest.finish();
+ return;
+ }
+
+ ++iterations;
+ if (iterations == 20) {
+ todo(false, "We couldn't draw the frame, but at least we didn't crash");
+ SimpleTest.finish();
+ return;
+ }
+ setTimeout(pollForTestPass, 10);
+ }
+ function addRemoteFrame() {
+ let iframe = document.createElement("iframe");
+ SpecialPowers.wrap(iframe).mozbrowser = true;
+ iframe.src = "data:text/html,<html style='background:blue;'>";
+
+ document.body.appendChild(iframe);
+
+ pollForTestPass();
+ }
+ addEventListener("load", function() {
+ referenceSnapshot = snapshotWindow(window);
+ document.getElementById("d").style.display = 'none';
+ SpecialPowers.addPermission("browser", true, document);
+ SpecialPowers.pushPrefEnv({
+ "set": [
+ ["dom.ipc.browser_frames.oop_by_default", true],
+ ["dom.mozBrowserFramesEnabled", true]
+ ]
+ }, addRemoteFrame);
+ });
+ </script>
+</body>