/* Any copyright is dedicated to the Public Domain. http://creativecommons.org/publicdomain/zero/1.0/ */ "use strict"; // Test that after closing RDM the page goes back to its original state const TEST_URL = "data:text/html;charset=utf-8,

Hello

"; add_task(async function () { const tab = await addTab(TEST_URL); reloadOnTouchChange(false); reloadOnUAChange(false); await pushPref("devtools.responsive.touchSimulation.enabled", true); is(await getH1Width(), 200, "

has expected initial width"); for (let i = 0; i < 10; i++) { info("Open responsive design mode"); await openRDM(tab); await SpecialPowers.spawn(gBrowser.selectedBrowser, [], async function () { const mql = content.matchMedia("(hover:none)"); if (mql.matches) { return; } await new Promise(res => mql.addEventListener("change", res, { once: true }) ); }); is( await getH1Width(), 400, "

has expected width when RDM and touch simulation are enabled" ); info("Close responsive design mode"); await closeRDM(tab); is(await getH1Width(), 200, "

has expected width after closing RDM"); } }); function getH1Width() { return SpecialPowers.spawn(gBrowser.selectedBrowser, [], function () { return content.document.querySelector("h1").getBoundingClientRect().width; }); }