From 8124e26c9f17004985f2b5e51e202ed97fe37bf8 Mon Sep 17 00:00:00 2001 From: Nicolas Chevobbe Date: Thu, 23 Aug 2018 09:46:02 +0000 Subject: [PATCH] Bug 1484682 - Ensure the sidebar can overflow; r=Honza. The sidebar regressed at some point and wasn't showing a scrollbar when it was needed. This patch fixes that by making the sidebar overflow and adds a test to make sure we don't regress. Differential Revision: https://phabricator.services.mozilla.com/D3976 --HG-- extra : moz-landing-system : lando --- devtools/client/themes/webconsole.css | 3 +- .../webconsole/test/mochitest/browser.ini | 1 + .../browser_webconsole_sidebar_scroll.js | 39 +++++++++++++++++++ 3 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 devtools/client/webconsole/test/mochitest/browser_webconsole_sidebar_scroll.js diff --git a/devtools/client/themes/webconsole.css b/devtools/client/themes/webconsole.css index 651408983bf2..c5a3265be29c 100644 --- a/devtools/client/themes/webconsole.css +++ b/devtools/client/themes/webconsole.css @@ -1016,7 +1016,8 @@ body #output-container { .sidebar-contents { grid-row: 2 / 3; - overflow: scroll; + overflow: auto; + max-height: 100%; } .webconsole-sidebar-toolbar .sidebar-close-button { diff --git a/devtools/client/webconsole/test/mochitest/browser.ini b/devtools/client/webconsole/test/mochitest/browser.ini index 1e38be3c71e8..8dff18db5a24 100644 --- a/devtools/client/webconsole/test/mochitest/browser.ini +++ b/devtools/client/webconsole/test/mochitest/browser.ini @@ -350,6 +350,7 @@ skip-if = verify [browser_webconsole_shows_reqs_from_netmonitor.js] [browser_webconsole_shows_reqs_in_netmonitor.js] [browser_webconsole_sidebar_object_expand_when_message_pruned.js] +[browser_webconsole_sidebar_scroll.js] [browser_webconsole_sourcemap_css.js] [browser_webconsole_sourcemap_error.js] [browser_webconsole_sourcemap_invalid.js] diff --git a/devtools/client/webconsole/test/mochitest/browser_webconsole_sidebar_scroll.js b/devtools/client/webconsole/test/mochitest/browser_webconsole_sidebar_scroll.js new file mode 100644 index 000000000000..93f2a2eba5fd --- /dev/null +++ b/devtools/client/webconsole/test/mochitest/browser_webconsole_sidebar_scroll.js @@ -0,0 +1,39 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* vim: set ft=javascript ts=2 et sw=2 tw=80: */ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ */ + +// Test that the sidebar can be scrolled. + +"use strict"; + +const TEST_URI = `data:text/html;charset=utf8,Test sidebar scroll`; + +add_task(async function() { + // Should be removed when sidebar work is complete + await pushPref("devtools.webconsole.sidebarToggle", true); + const isMacOS = Services.appinfo.OS === "Darwin"; + + const hud = await openNewTabAndConsole(TEST_URI); + + const onMessage = waitForMessage(hud, "Document"); + ContentTask.spawn(gBrowser.selectedBrowser, null, function() { + content.wrappedJSObject.console.log(content.wrappedJSObject.document); + }); + + const {node} = await onMessage; + const object = node.querySelector(".object-inspector .node"); + + info("Ctrl+click on an object to put it in the sidebar"); + const onSidebarShown = waitFor(() => hud.ui.document.querySelector(".sidebar")); + EventUtils.sendMouseEvent({ + type: "click", + [isMacOS ? "metaKey" : "ctrlKey"]: true + }, object, hud.ui.window); + await onSidebarShown; + const sidebarContents = hud.ui.document.querySelector(".sidebar-contents"); + + // Let's wait until the object is fully expanded. + await waitFor(() => sidebarContents.querySelectorAll(".node").length > 1); + ok(sidebarContents.scrollHeight > sidebarContents.clientHeight, "Sidebar overflows"); +});