Closed Bug 1535246 Opened 5 years ago Closed 5 years ago

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

Categories

(DevTools :: Debugger, defect, P1)

defect

Tracking

(firefox68 affected)

RESOLVED INVALID
Firefox 68
Tracking Status
firefox68 --- affected

People

(Reporter: loganfsmyth, Assigned: loganfsmyth)

References

(Blocks 1 open bug)

Details

(Keywords: regression)

Attachments

(2 files)

This was mentioned in a comment in https://bugzilla.mozilla.org/show_bug.cgi?id=1527297#c8 but I'm refiling it here since I don't think it is related.

Steps:

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

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

ER:
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
Pushed by lsmyth@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/5929d34ee923
Part 1: Ensure that changes to emptyLines are handled for both additions and removals. r=davidwalsh
https://hg.mozilla.org/integration/autoland/rev/5860aac31563
Part 2: Handle new actors appearing in HTML files. r=davidwalsh

Push with failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&resultStatus=testfailed%2Cbusted%2Cexception&selectedJob=235590898&revision=5860aac315635b8a0103d96938a14f03bf122f4e

Failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=235590898&repo=autoland&lineNumber=4112

Backout link: https://hg.mozilla.org/integration/autoland/rev/ea922e6043f867cd054d557d5c9aed5ba539357d

[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(http://example.com/browser/devtools/client/debugger/new/test/mochitest/examples/doc-scripts.html) 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
maybeCacheScreenshot@resource://activity-stream/lib/Screenshots.jsm:98:37
[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 lsmyth@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/6fe3959c6558
Part 1: Ensure that changes to emptyLines are handled for both additions and removals. r=davidwalsh
https://hg.mozilla.org/integration/autoland/rev/fd22f8527dfb
Part 2: Handle new actors appearing in HTML files. r=davidwalsh
Assignee: nobody → lsmyth
Status: NEW → ASSIGNED
Flags: needinfo?(lsmyth)
Status: ASSIGNED → RESOLVED
Closed: 5 years 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://hg.mozilla.org/try

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

Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Type: enhancement → defect

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.

Status: REOPENED → RESOLVED
Closed: 5 years ago5 years 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.

Attachment

General

Created:
Updated:
Size: