Files
sousa-gecko/devtools/client/styleeditor/test/browser_styleeditor_sidebars.js
T
Emilio Cobos Álvarez e833a1757b Bug 2033243 - Replace ownerGlobal with documentGlobal, and stop exposing ownerGlobal to JS. r=firefox-desktop-core-reviewers ,webidl,joschmidt,perftest-reviewers,sparky,smaug,mossop ,webidl,joschmidt,perftest-reviewers,sparky,smaug,mossop
Bug 2033191 made sure we only call ownerGlobal on nodes.

As per the discussion in dev-platform, the front-end ~always wants
.documentGlobal. This removes ownerGlobal from the bindings. Following
patch will rename internal GetOwnerGlobal in gecko to GetRelevantGlobal
as per the HTML spec terminology.

Differential Revision: https://phabricator.services.mozilla.com/D297183
2026-05-02 22:04:13 +00:00

68 lines
2.5 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
const TESTCASE_URI = TEST_BASE_HTTPS + "media-rules.html";
const PREF_SHOW_AT_RULES_SIDEBAR = "devtools.styleeditor.showAtRulesSidebar";
const PREF_SIDEBAR_WIDTH = "devtools.styleeditor.atRulesSidebarWidth";
const PREF_NAV_WIDTH = "devtools.styleeditor.navSidebarWidth";
// Initial widths for the navigation and media sidebars, which will be set via
// the corresponding preferences.
// The widths should remain between the current min-width and max-width for the
// styleeditor sidebars (currently 100px and 400px).
const NAV_WIDTH = 210;
const MEDIA_WIDTH = 250;
// Test that sidebar in the styleeditor can be resized.
add_task(async function () {
await pushPref(PREF_SHOW_AT_RULES_SIDEBAR, true);
await pushPref(PREF_NAV_WIDTH, NAV_WIDTH);
await pushPref(PREF_SIDEBAR_WIDTH, MEDIA_WIDTH);
const { panel, ui } = await openStyleEditorForURL(TESTCASE_URI);
const doc = panel.panelWindow.document;
info("Open editor for inline sheet with @media rules to have both splitters");
const inlineMediaEditor = ui.editors[3];
inlineMediaEditor.summary.querySelector(".stylesheet-name").click();
await inlineMediaEditor.getSourceEditor();
info("Check the initial widths of side panels match the preferences values");
const navSidebar = doc.querySelector(".splitview-controller");
is(navSidebar.clientWidth, NAV_WIDTH);
const mediaSidebar = doc.querySelector(
".splitview-active .stylesheet-sidebar"
);
is(mediaSidebar.clientWidth, MEDIA_WIDTH);
info(
"Resize the navigation splitter and check the navigation sidebar is updated"
);
const navSplitter = doc.querySelector(".devtools-side-splitter");
dragElement(navSplitter, { startX: 1, startY: 10, deltaX: 50, deltaY: 0 });
is(navSidebar.clientWidth, NAV_WIDTH + 50);
info("Resize the media splitter and check the media sidebar is updated");
const mediaSplitter = doc.querySelector(
".splitview-active .devtools-side-splitter"
);
dragElement(mediaSplitter, { startX: 1, startY: 10, deltaX: -50, deltaY: 0 });
is(mediaSidebar.clientWidth, MEDIA_WIDTH + 50);
});
/* Helpers */
function dragElement(el, { startX, startY, deltaX, deltaY }) {
const win = el.documentGlobal;
const endX = startX + deltaX;
const endY = startY + deltaY;
EventUtils.synthesizeMouse(el, startX, startY, { type: "mousedown" }, win);
EventUtils.synthesizeMouse(el, endX, endY, { type: "mousemove" }, win);
EventUtils.synthesizeMouse(el, endX, endY, { type: "mouseup" }, win);
}