From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- layout/base/tests/browser_bug1787079.js | 86 +++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 layout/base/tests/browser_bug1787079.js (limited to 'layout/base/tests/browser_bug1787079.js') diff --git a/layout/base/tests/browser_bug1787079.js b/layout/base/tests/browser_bug1787079.js new file mode 100644 index 0000000000..4ce38f8b69 --- /dev/null +++ b/layout/base/tests/browser_bug1787079.js @@ -0,0 +1,86 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +const PAGECONTENT = + "" + + "" + + "" + + ""; + +const pageUrl = "data:text/html," + encodeURIComponent(PAGECONTENT); + +add_task(async function test() { + SpecialPowers.DOMWindowUtils.setHiDPIMode(true); + registerCleanupFunction(() => { + SpecialPowers.DOMWindowUtils.restoreHiDPIMode(); + }); + + const tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, pageUrl); + + // Enter fullscreen. + let fullscreenChangePromise = BrowserTestUtils.waitForContentEvent( + tab.linkedBrowser, + "fullscreenchange" + ); + await SpecialPowers.spawn(tab.linkedBrowser, [], () => { + content.document.documentElement.requestFullscreen(); + }); + await fullscreenChangePromise; + + let [originalInnerWidth, originalInnerHeight] = await SpecialPowers.spawn( + tab.linkedBrowser, + [], + () => { + return [content.window.innerWidth, content.window.innerHeight]; + } + ); + + // Then change the DPI. + let originalPixelRatio = await SpecialPowers.spawn( + tab.linkedBrowser, + [], + () => { + return content.window.devicePixelRatio; + } + ); + let dpiChangedPromise = TestUtils.waitForCondition(async () => { + let pixelRatio = await SpecialPowers.spawn(tab.linkedBrowser, [], () => { + return content.window.devicePixelRatio; + }); + return pixelRatio != originalPixelRatio; + }, "Make sure the DPI changed"); + SpecialPowers.DOMWindowUtils.setHiDPIMode(false); + await dpiChangedPromise; + + let [innerWidth, innerHeight] = await SpecialPowers.spawn( + tab.linkedBrowser, + [], + () => { + return [content.window.innerWidth, content.window.innerHeight]; + } + ); + + ok( + originalInnerWidth < innerWidth, + "window.innerWidth on a lower DPI should be greater than the original" + ); + ok( + originalInnerHeight < innerHeight, + "window.innerHeight on a lower DPI should be greater than the original" + ); + + fullscreenChangePromise = BrowserTestUtils.waitForContentEvent( + tab.linkedBrowser, + "fullscreenchange" + ); + await SpecialPowers.spawn(tab.linkedBrowser, [], () => { + content.document.exitFullscreen(); + }); + await fullscreenChangePromise; + + BrowserTestUtils.removeTab(tab); +}); -- cgit v1.2.3