From bc3db80dc7379f90f0cac0fccaf0c7910e36e945 Mon Sep 17 00:00:00 2001 From: Nicolas Chevobbe Date: Fri, 7 Dec 2018 11:36:10 +0000 Subject: [PATCH] Bug 1512046 - Stop propagation of callstack group click; r=Honza. This also adds a console test to make sure we don't regress this in the future. Differential Revision: https://phabricator.services.mozilla.com/D13762 --HG-- extra : moz-landing-system : lando --- .../components/SecondaryPanes/Frames/Group.js | 3 +- .../webconsole/test/mochitest/browser.ini | 1 + ...ser_webconsole_error_with_grouped_stack.js | 34 +++++++++++++++++++ 3 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 devtools/client/webconsole/test/mochitest/browser_webconsole_error_with_grouped_stack.js diff --git a/devtools/client/debugger/new/src/components/SecondaryPanes/Frames/Group.js b/devtools/client/debugger/new/src/components/SecondaryPanes/Frames/Group.js index 79fd774e2af5..3a8d87d903da 100644 --- a/devtools/client/debugger/new/src/components/SecondaryPanes/Frames/Group.js +++ b/devtools/client/debugger/new/src/components/SecondaryPanes/Frames/Group.js @@ -79,7 +79,8 @@ export default class Group extends Component { ); } - toggleFrames = () => { + toggleFrames = (event) => { + event.stopPropagation(); this.setState(prevState => ({ expanded: !prevState.expanded })); }; diff --git a/devtools/client/webconsole/test/mochitest/browser.ini b/devtools/client/webconsole/test/mochitest/browser.ini index c218aabe4b6f..57ec1786d1f3 100644 --- a/devtools/client/webconsole/test/mochitest/browser.ini +++ b/devtools/client/webconsole/test/mochitest/browser.ini @@ -293,6 +293,7 @@ subsuite = clipboard [browser_webconsole_cspro.js] [browser_webconsole_document_focus.js] [browser_webconsole_duplicate_errors.js] +[browser_webconsole_error_with_grouped_stack.js] [browser_webconsole_error_with_longstring_stack.js] [browser_webconsole_error_with_unicode.js] [browser_webconsole_errors_after_page_reload.js] diff --git a/devtools/client/webconsole/test/mochitest/browser_webconsole_error_with_grouped_stack.js b/devtools/client/webconsole/test/mochitest/browser_webconsole_error_with_grouped_stack.js new file mode 100644 index 000000000000..64e8424d08a6 --- /dev/null +++ b/devtools/client/webconsole/test/mochitest/browser_webconsole_error_with_grouped_stack.js @@ -0,0 +1,34 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ */ + +// Check if an error with a stack containing grouped frames works as expected. + +"use strict"; + +const MESSAGE = "React Error"; +const TEST_URI = `data:text/html;charset=utf8,`; + +add_task(async function() { + const hud = await openNewTabAndConsole(TEST_URI); + + info("Wait for the error to be logged"); + const msgNode = await waitFor(() => findMessage(hud, MESSAGE)); + ok(!msgNode.classList.contains("open"), `Error logged not expanded`); + + const groupNode = await waitFor(() => msgNode.querySelector(".group")); + ok(groupNode, "The error object is logged as expected"); + + const onGroupExpanded = waitFor(() => msgNode.querySelector(".frames-group.expanded")); + groupNode.click(); + await onGroupExpanded; + + ok(true, "The stacktrace group was expanded"); + is(msgNode.querySelectorAll(".frame").length, 3, "Expected frames are displayed"); + ok(!msgNode.classList.contains("open"), `Error message is still not expanded`); +});