mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-24 13:21:05 +00:00
Bug 1608177 - Setting logpoints does not clean up breakpoint state properly, r=jlast.
Differential Revision: https://phabricator.services.mozilla.com/D59372 --HG-- extra : moz-landing-system : lando
This commit is contained in:
parent
343072c5ec
commit
23013977bd
@ -12,7 +12,8 @@ add_task(async function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
await selectSource(dbg, "doc_rr_basic.html");
|
await selectSource(dbg, "doc_rr_basic.html");
|
||||||
await addBreakpoint(dbg, "doc_rr_basic.html", 21, undefined, {
|
await addBreakpoint(dbg, "doc_rr_basic.html", 21);
|
||||||
|
await setBreakpointOptions(dbg, "doc_rr_basic.html", 21, undefined, {
|
||||||
logValue: `"Logpoint Number " + number`,
|
logValue: `"Logpoint Number " + number`,
|
||||||
});
|
});
|
||||||
await addBreakpoint(dbg, "doc_rr_basic.html", 6, undefined, {
|
await addBreakpoint(dbg, "doc_rr_basic.html", 6, undefined, {
|
||||||
@ -43,5 +44,8 @@ add_task(async function() {
|
|||||||
await checkEvaluateInTopFrame(dbg, "number", 5);
|
await checkEvaluateInTopFrame(dbg, "number", 5);
|
||||||
await reverseStepOverToLine(dbg, 20);
|
await reverseStepOverToLine(dbg, 20);
|
||||||
|
|
||||||
|
await addBreakpoint(dbg, "doc_rr_basic.html", 22);
|
||||||
|
await resumeToLine(dbg, 22);
|
||||||
|
|
||||||
await shutdownDebugger(dbg);
|
await shutdownDebugger(dbg);
|
||||||
});
|
});
|
||||||
|
@ -91,6 +91,12 @@ BreakpointActor.prototype = {
|
|||||||
* Called on changes to this breakpoint's script offsets or options.
|
* Called on changes to this breakpoint's script offsets or options.
|
||||||
*/
|
*/
|
||||||
_newOffsetsOrOptions(script, offsets, oldOptions) {
|
_newOffsetsOrOptions(script, offsets, oldOptions) {
|
||||||
|
// Clear any existing handler first in case this is called multiple times
|
||||||
|
// after options change.
|
||||||
|
for (const offset of offsets) {
|
||||||
|
script.clearBreakpoint(this, offset);
|
||||||
|
}
|
||||||
|
|
||||||
// When replaying, logging breakpoints are handled using an API to get logged
|
// When replaying, logging breakpoints are handled using an API to get logged
|
||||||
// messages from throughout the recording.
|
// messages from throughout the recording.
|
||||||
if (this.threadActor.dbg.replaying && this.options.logGroupId) {
|
if (this.threadActor.dbg.replaying && this.options.logGroupId) {
|
||||||
@ -125,10 +131,7 @@ BreakpointActor.prototype = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// In all other cases, this is used as a script breakpoint handler.
|
// In all other cases, this is used as a script breakpoint handler.
|
||||||
// Clear any existing handler first in case this is called multiple times
|
|
||||||
// after options change.
|
|
||||||
for (const offset of offsets) {
|
for (const offset of offsets) {
|
||||||
script.clearBreakpoint(this, offset);
|
|
||||||
script.setBreakpoint(offset, this);
|
script.setBreakpoint(offset, this);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -2037,16 +2037,14 @@ const gControl = {
|
|||||||
RecordReplayControl.clearGraphics();
|
RecordReplayControl.clearGraphics();
|
||||||
} else {
|
} else {
|
||||||
addPauseData(gPausePoint, data, /* trackCached */ true);
|
addPauseData(gPausePoint, data, /* trackCached */ true);
|
||||||
if (data.paintData) {
|
|
||||||
RecordReplayControl.hadRepaint(data.paintData);
|
RecordReplayControl.hadRepaint(data.paintData);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return data;
|
return data;
|
||||||
},
|
},
|
||||||
|
|
||||||
paint(point) {
|
paint(point) {
|
||||||
const data = maybeGetPauseData(point);
|
const data = maybeGetPauseData(point);
|
||||||
if (data && data.paintData) {
|
if (data) {
|
||||||
RecordReplayControl.hadRepaint(data.paintData);
|
RecordReplayControl.hadRepaint(data.paintData);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -305,8 +305,10 @@ static bool Middleman_HadRepaint(JSContext* aCx, unsigned aArgc, Value* aVp) {
|
|||||||
CallArgs args = CallArgsFromVp(aArgc, aVp);
|
CallArgs args = CallArgsFromVp(aArgc, aVp);
|
||||||
|
|
||||||
if (!args.get(0).isString()) {
|
if (!args.get(0).isString()) {
|
||||||
JS_ReportErrorASCII(aCx, "Bad arguments");
|
parent::ClearGraphics();
|
||||||
return false;
|
|
||||||
|
args.rval().setUndefined();
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
RootedString data(aCx, args.get(0).toString());
|
RootedString data(aCx, args.get(0).toString());
|
||||||
|
Loading…
Reference in New Issue
Block a user