forked from mirrors/gecko-dev
We need it to live in BrowsingContext instead of WindowContext, because we need to preserve the zoom level across same-origin navigation. It'd be nice if it only lived in the top BC, but that's not possible at the moment because a lot of tests rely on zooming only iframes. Some of them can be adjusted for scaling the top instead, but not sure it's worth it's worth fixing them and moving the zoom to be top-only, as it'd be a bunch of effort, and the complexity and overhead of propagating the zoom is not so big. The print-preview-specific code in nsContentViewer is from before we did the document cloning setup, and it seems useless. I've tested print preview scaling before and after my patch and both behave the same. The rest is just various test changes to use the SpecialPowers APIs or BrowsingContext as needed instead of directly poking at the content viewer. I named the pres context hook RecomputeBrowsingContextDependentData, as more stuff should move there like overrideDPPX and other media emulation shenanigans. I also have some ideas to simplify or even remove ZoomChild and such, but that's followup work. Differential Revision: https://phabricator.services.mozilla.com/D71969
62 lines
1.6 KiB
HTML
62 lines
1.6 KiB
HTML
<!DOCTYPE HTML>
|
|
<html>
|
|
<!--
|
|
https://bugzilla.mozilla.org/show_bug.cgi?id=449781
|
|
-->
|
|
<head>
|
|
<title>Test for Bug 449781</title>
|
|
<script src="/tests/SimpleTest/SimpleTest.js"></script>
|
|
<script src="/tests/SimpleTest/WindowSnapshot.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=449781">Mozilla Bug 449781</a>
|
|
<p id="display">Canary</p>
|
|
<iframe src="about:blank" id="ourFrame" style="visibility: hidden">
|
|
</iframe>
|
|
</div>
|
|
<pre id="test">
|
|
<script class="testbody" type="text/javascript">
|
|
var s1, s2, s3, s4;
|
|
|
|
/** Test for Bug 449781 **/
|
|
SimpleTest.waitForExplicitFinish();
|
|
addLoadEvent(function() {
|
|
s1 = snapshotWindow(window);
|
|
|
|
$("ourFrame").style.display = "none";
|
|
is($("ourFrame").offsetWidth, 0, "Unexpected width after hiding");
|
|
$("ourFrame").style.display = "";
|
|
is($("ourFrame").clientWidth, 300, "Unexpected width after showing");
|
|
|
|
s2 = snapshotWindow(window);
|
|
|
|
var equal, str1, str2;
|
|
[equal, str1, str2] = compareSnapshots(s1, s2, true);
|
|
ok(equal, "Show/hide should have no effect - " +
|
|
"got " + str1 + " but expected " + str2);
|
|
|
|
SpecialPowers.setFullZoom($("ourFrame").contentWindow, 2);
|
|
|
|
s3 = snapshotWindow(window);
|
|
|
|
[equal, str1, str2] = compareSnapshots(s1, s3, true);
|
|
ok(equal, "Zoom should have no effect - " +
|
|
"got " + str1 + " but expected " + str2);
|
|
|
|
$("display").style.display = "none";
|
|
|
|
s4 = snapshotWindow(window);
|
|
[equal, str1, str2] = compareSnapshots(s3, s4, true);
|
|
ok(!equal, "Should be able to see the canary");
|
|
|
|
SimpleTest.finish();
|
|
});
|
|
|
|
|
|
|
|
</script>
|
|
</pre>
|
|
</body>
|
|
</html>
|
|
|