Closed Bug 1535246 Opened 1 year ago Closed 1 year ago

Breakpoint positions are only fetched for some source actors in HTML files


(DevTools :: Debugger, defect, P1, blocker)



(firefox68 affected)

Firefox 68
Tracking Status
firefox68 --- affected


(Reporter: loganfsmyth, Assigned: loganfsmyth)


(Blocks 1 open bug)


(Keywords: regression)


(2 files)

This was mentioned in a comment in but I'm refiling it here since I don't think it is related.


  1. Create an example HTML file with this:
        <script type="text/javascript">
          function test() {
            var something = "you can add";
            something += " breakpoints here";
        <script type="text/javascript">
          function failing() {
            var wrong = "you cannot add";
            wrong += " breakpoints in this block";
  2. Open the file in Firefox Nightly

Breakpoints/empty-lines will only show up for one of the scripts. It seems to be a bit random in my tests.

All breakpoints for all actors should be fetched.

I tried changing getBreakpointPositions in commands.js to fetch the BPs for all actors, but that only seems to make things flakey. I won't have time to dig into it more. I'm thinking even with that we also need to request BPs any time a new actor is added to the source, not just when the first actor is found?

Priority: -- → P3

I'm surprised about this being P3. Isn't this kind of a core behavior that we've broken?

Priority: P3 → P2

As decided in the debugger meeting, making this a blocker.

Severity: normal → blocker
Priority: P2 → P1
Duplicate of this bug: 1535668
Pushed by
Part 1: Ensure that changes to emptyLines are handled for both additions and removals. r=davidwalsh
Part 2: Handle new actors appearing in HTML files. r=davidwalsh

Push with failures:

Failure log:

Backout link:

[task 2019-03-23T00:04:34.980Z] 00:04:34 INFO - TEST-PASS | devtools/client/debugger/new/test/mochitest/browser_dbg-html-breakpoints.js | a new breakpoint was created -
[task 2019-03-23T00:04:34.980Z] 00:04:34 INFO - Waiting for state change: waiting for breakable line 20
[task 2019-03-23T00:04:34.981Z] 00:04:34 INFO - Console message: [JavaScript Error: "Polling for changes failed: Unexpected content-type "text/html;charset=utf-8"." {file: "resource://services-settings/remote-settings.js" line: 203}]
[task 2019-03-23T00:04:34.981Z] 00:04:34 INFO - remoteSettingsFunction/remoteSettings.pollChanges@resource://services-settings/remote-settings.js:203:13
[task 2019-03-23T00:04:34.981Z] 00:04:34 INFO - asyncnotify@resource://services-settings/RemoteSettingsComponents.jsm:22:20
[task 2019-03-23T00:04:34.981Z] 00:04:34 INFO - TM_notify/<@resource://gre/modules/UpdateTimerManager.jsm:192:48
[task 2019-03-23T00:04:34.981Z] 00:04:34 INFO - TM_notify@resource://gre/modules/UpdateTimerManager.jsm:239:7
[task 2019-03-23T00:04:34.981Z] 00:04:34 INFO -
[task 2019-03-23T00:04:34.982Z] 00:04:34 INFO - Buffered messages logged at 00:03:48
[task 2019-03-23T00:04:34.982Z] 00:04:34 INFO - Console message: [JavaScript Error: "getScreenshot( failed: TypeError: NetworkError when attempting to fetch resource." {file: "resource://activity-stream/lib/Screenshots.jsm" line: 45}]
[task 2019-03-23T00:04:34.982Z] 00:04:34 INFO - getScreenshotForURL@resource://activity-stream/lib/Screenshots.jsm:45:10
[task 2019-03-23T00:04:34.982Z] 00:04:34 INFO - async
[task 2019-03-23T00:04:34.982Z] 00:04:34 INFO - _fetchScreenshot@resource://activity-stream/lib/TopSitesFeed.jsm:437:23
[task 2019-03-23T00:04:34.983Z] 00:04:34 INFO - _fetchIcon@resource://activity-stream/lib/TopSitesFeed.jsm:425:16
[task 2019-03-23T00:04:34.983Z] 00:04:34 INFO - getLinksWithDefaults@resource://activity-stream/lib/TopSitesFeed.jsm:328:16
[task 2019-03-23T00:04:34.984Z] 00:04:34 INFO - async*refresh@resource://activity-stream/lib/TopSitesFeed.jsm:351:30
[task 2019-03-23T00:04:34.984Z] 00:04:34 INFO - onAction@resource://activity-stream/lib/TopSitesFeed.jsm:650:14
[task 2019-03-23T00:04:34.984Z] 00:04:34 INFO - _middleware/</<@resource://activity-stream/lib/Store.jsm:51:17
[task 2019-03-23T00:04:34.984Z] 00:04:34 INFO - Store/this[method]@resource://activity-stream/lib/Store.jsm:29:54
[task 2019-03-23T00:04:34.985Z] 00:04:34 INFO - init/this.intervalId<@resource://activity-stream/lib/SystemTickFeed.jsm:16:52
[task 2019-03-23T00:04:34.985Z] 00:04:34 INFO - notify@resource://gre/modules/Timer.jsm:43:17
[task 2019-03-23T00:04:34.985Z] 00:04:34 INFO -
[task 2019-03-23T00:04:34.985Z] 00:04:34 INFO - Buffered messages finished
[task 2019-03-23T00:04:34.986Z] 00:04:34 INFO - TEST-UNEXPECTED-FAIL | devtools/client/debugger/new/test/mochitest/browser_dbg-html-breakpoints.js | Test timed out -
[task 2019-03-23T00:04:34.986Z] 00:04:34 INFO - GECKO(1411) | console.warn: "Error while detaching the thread front: 'detach' request packet to 'server1.conn36.child1/context18' can't be sent as the connection is closed."
[task 2019-03-23T00:04:35.173Z] 00:04:35 INFO - Removing tab.
[task 2019-03-23T00:04:35.174Z] 00:04:35 INFO - Waiting for event: 'TabClose' on [object XULElement].
[task 2019-03-23T00:04:35.230Z] 00:04:35 INFO - Got event: 'TabClose' on [object XULElement].
[task 2019-03-23T00:04:35.247Z] 00:04:35 INFO - Tab removed and finished closing
[task 2019-03-23T00:04:35.304Z] 00:04:35 INFO - GECKO(1411) | MEMORY STAT | vsize 20975023MB | residentFast 2074MB
[task 2019-03-23T00:04:35.304Z] 00:04:35 INFO - TEST-OK | devtools/client/debugger/new/test/mochitest/browser_dbg-html-breakpoints.js | took 90806ms

Flags: needinfo?(lsmyth)
Pushed by
Part 1: Ensure that changes to emptyLines are handled for both additions and removals. r=davidwalsh
Part 2: Handle new actors appearing in HTML files. r=davidwalsh
Assignee: nobody → lsmyth
Flags: needinfo?(lsmyth)
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 68

I just tried reverting the empty lines patch to see if it will speed up the stepIn example.

To hg::ssh://

re-opening so we can get an answer on the performance regression.

Step-in regressed by 200% and step-over by 38% on these changes

Resolution: FIXED → ---

jlast: any progress on the perf regression?

Flags: needinfo?(jlaster)

Hi Patricia, we think it is an accounting change, but have not been able to confirm.

Flags: needinfo?(jlaster)

I believe this was addressed.

Closed: 1 year ago1 year ago
Resolution: --- → INVALID
Whiteboard: [debugger-mvp]
Whiteboard: [debugger-mvp]
You need to log in before you can comment on or make changes to this bug.