зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1532309
- Log points should show multiple values. r=bhackett
Differential Revision: https://phabricator.services.mozilla.com/D23313 --HG-- extra : moz-landing-system : lando
This commit is contained in:
Родитель
dd6a3ef16f
Коммит
1f0f446316
|
@ -714,6 +714,7 @@ skip-if = ccov && os == 'win' # Bug 1443132
|
|||
[browser_dbg-keyboard-shortcuts.js]
|
||||
skip-if = os == "linux" # bug 1351952
|
||||
[browser_dbg-layout-changes.js]
|
||||
[browser_dbg-log-points.js]
|
||||
[browser_dbg-outline.js]
|
||||
skip-if = verify
|
||||
[browser_dbg-outline-pretty.js]
|
||||
|
|
|
@ -16,20 +16,6 @@ function waitForConsolePanelChange(dbg) {
|
|||
});
|
||||
}
|
||||
|
||||
function findMessages(win, query) {
|
||||
return Array.prototype.filter.call(
|
||||
win.document.querySelectorAll(".message"),
|
||||
e => e.innerText.includes(query)
|
||||
);
|
||||
}
|
||||
|
||||
async function hasMessage(dbg, msg) {
|
||||
const webConsole = await dbg.toolbox.getPanel("webconsole");
|
||||
return waitFor(
|
||||
async () => findMessages(webConsole._frameWindow, msg).length > 0
|
||||
);
|
||||
}
|
||||
|
||||
add_task(async function() {
|
||||
const dbg = await initDebugger("doc-scripts.html", "simple2");
|
||||
|
||||
|
@ -44,5 +30,5 @@ add_task(async function() {
|
|||
selectContextMenuItem(dbg, "#node-menu-evaluate-in-console");
|
||||
|
||||
await waitForConsolePanelChange(dbg);
|
||||
await hasMessage(dbg, "undefined");
|
||||
await hasConsoleMessage(dbg, "undefined");
|
||||
});
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */
|
||||
|
||||
add_task(async function() {
|
||||
Services.prefs.setBoolPref("devtools.toolbox.splitconsoleEnabled", true);
|
||||
const dbg = await initDebugger("doc-script-switching.html", "switching-01");
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */
|
||||
|
||||
/*
|
||||
* Tests that log points are correctly logged to the console
|
||||
*/
|
||||
|
||||
add_task(async function() {
|
||||
Services.prefs.setBoolPref("devtools.toolbox.splitconsoleEnabled", true);
|
||||
const dbg = await initDebugger("doc-script-switching.html", "switching-01");
|
||||
|
||||
const source = findSource(dbg, "switching-01")
|
||||
await selectSource(dbg, "switching-01");
|
||||
|
||||
await getDebuggerSplitConsole(dbg);
|
||||
|
||||
await dbg.actions.addBreakpoint(
|
||||
{ line: 5, sourceId: source.id },
|
||||
{ logValue: "'a', 'b', 'c'" }
|
||||
);
|
||||
invokeInTab("firstCall");
|
||||
await waitForPaused(dbg);
|
||||
|
||||
await hasConsoleMessage(dbg, "a b c");
|
||||
const { link, value } = await findConsoleMessage(dbg, "a b c");
|
||||
is(link, "script-switching-01.js:5:2", "logs should have the relevant link");
|
||||
is(value, "a b c", "logs should have multiple values");
|
||||
});
|
|
@ -1635,3 +1635,26 @@ async function checkEvaluateInTopFrame(target, text, expected) {
|
|||
const rval = await evaluateInTopFrame(target, text);
|
||||
ok(rval == expected, `Eval returned ${expected}`);
|
||||
}
|
||||
|
||||
async function findConsoleMessage(dbg, query) {
|
||||
const [message,] = await findConsoleMessages(dbg, query);
|
||||
const value = message.querySelector(".message-body").innerText;
|
||||
const link = message.querySelector(".frame-link-source-inner").innerText;
|
||||
return { value, link };
|
||||
}
|
||||
|
||||
async function findConsoleMessages(dbg, query) {
|
||||
const webConsole = await dbg.toolbox.getPanel("webconsole");
|
||||
const win = webConsole._frameWindow;
|
||||
return Array.prototype.filter.call(
|
||||
win.document.querySelectorAll(".message"),
|
||||
e => e.innerText.includes(query)
|
||||
);
|
||||
}
|
||||
|
||||
async function hasConsoleMessage(dbg, msg) {
|
||||
return waitFor(async () => {
|
||||
const messages = await findConsoleMessages(dbg, msg);
|
||||
return messages.length > 0;
|
||||
})
|
||||
}
|
||||
|
|
|
@ -212,16 +212,17 @@ BreakpointActor.prototype = {
|
|||
}
|
||||
|
||||
if (logValue) {
|
||||
const completion = frame.eval(logValue);
|
||||
const completion = frame.eval(`[${logValue}]`);
|
||||
let value;
|
||||
if (!completion) {
|
||||
// The evaluation was killed (possibly by the slow script dialog).
|
||||
value = "Log value evaluation incomplete";
|
||||
value = ["Log value evaluation incomplete"];
|
||||
} else if ("return" in completion) {
|
||||
value = completion.return;
|
||||
} else {
|
||||
value = this.getThrownMessage(completion);
|
||||
value = [this.getThrownMessage(completion)];
|
||||
}
|
||||
|
||||
if (value && typeof value.unsafeDereference === "function") {
|
||||
value = value.unsafeDereference();
|
||||
}
|
||||
|
@ -230,7 +231,7 @@ BreakpointActor.prototype = {
|
|||
filename: url,
|
||||
lineNumber: generatedLine,
|
||||
columnNumber: generatedColumn,
|
||||
"arguments": [value],
|
||||
"arguments": value,
|
||||
};
|
||||
this.threadActor._parent._consoleActor.onConsoleAPICall(message);
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче