Open Bug 1647149 Opened 4 years ago Updated 4 years ago

When initially paused in the browser toolbox, a large section of the webpage code in the debugger is no longer visible.

Categories

(DevTools :: Debugger, defect, P3)

defect

Tracking

(Not tracked)

People

(Reporter: will2code, Unassigned)

References

(Blocks 1 open bug)

Details

User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36

Steps to reproduce:

Screen Recording of bug: https://vimeo.com/431233542

Steps to reproduce:

  1. Open Firefox Nightly
  2. Navigate to http://todomvc.com/examples/jquery/#/all
  3. On the sources tab selects js/app.js. Set a breakpoint on line 76.
  4. Open the Browser Toolbox.
  5. On the sources tab in the toolbox select src/actions/pause/inlinePreview.js. Set breakpoint On line 30.
  6. On the Todos webpage, input a todo then hit enter. Browser toolbox pauses at line 30.
  7. In the Debugger, Scroll vertically on the app.js file.

Notes: Code does not return after resuming and finishing the debugger process; removing all breakpoints / refreshing the webpage; visiting another website and returning to the source url. App.js does return back to normal after closing / reopening the debugger. Breakpoint in browser toolbox may be set on multiple other files including src/actions/pause/paused.js line 31.

Actual results:

Original code in app.js is no longer visible / vertical scrollbar is no longer functional.

Expected results:

Code in app.js to remain visible throughout all debugger sessions.

Bugbug thinks this bug should belong to this component, but please revert this change in case of error.

Component: Untriaged → Debugger
Product: Firefox → DevTools

The severity field is not set for this bug.
:jlast, could you have a look please?

For more information, please visit auto_nag documentation.

Flags: needinfo?(jlaster)

is it possible that the browser toolbox paused and froze the content toolbox?

Flags: needinfo?(jlaster)

The severity field is not set for this bug.
:loganfsmyth, could you have a look please?

For more information, please visit auto_nag documentation.

Flags: needinfo?(loganfsmyth)

(In reply to Jason Laster [:jlast] from comment #3)

is it possible that the browser toolbox paused and froze the content toolbox?

From my tests the rest of the content toolbox continues functioning as expected. Ive only been able to reproduce the bug by setting a secondary breakpoint on any file in src/actions/paused
What I have realized since initially submitting this bug is, it is not debugger specific so I apologize for any confusion I may have caused.

I think this is something run-to-completion related. If I add

ev.preventDefault();

const parentFrameLine = new Error().stack.split("\n")[1];
if (parentFrameLine && !parentFrameLine.match(/^.*?\*.*?@/)) {
  // Do not scroll if there is a synchronous parent frame, because that means that we are paused, 
  // and scrolling could break things.
  return;
}

let { deltaX, deltaY } = ev;

to this line: https://searchfox.org/mozilla-central/rev/7ec7ee4a9bde171ba195ab46ed6077e4baaef34d/devtools/client/shared/sourceeditor/editor.js#392, the issue does not seem to reproduce anymore.

That said, I haven't dug deeper than that. We do have a lot of code that responds to viewport changes like column breakpoints and such, so if that code is running due to the scroll event, that could then be corrupting some state somewhere?

This snippet is really ugly and I'd love not to do this, but it may also be the simplest way. I don't know if we can directly query to see the codemirror window has been paused or something, that would be ideal short-term.

Flags: needinfo?(loganfsmyth)
Priority: -- → P2
See Also: → 1515778
Severity: -- → S3

I can still reproduce the problem. This feels like complex issue and the question is whether the scrolling (in js/app.js) should be allowed when the Browser Debugger is paused at a breakpoint. There might also be questions about the UI, should we indicate (in the Web Content Debugger) that the JS execution is actually paused?

Changing to P3 since this is not something we'd work on soon.

Honza

Status: UNCONFIRMED → NEW
Ever confirmed: true
Priority: P2 → P3
You need to log in before you can comment on or make changes to this bug.