JSD2 Adoption

From FirebugWiki
Revision as of 04:04, 6 February 2014 by Simon.lindholm10 (Talk | contribs) (Available commands: fix typo)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


Open Tasks[edit]

Rough list of missing things. The list should be converted into meaningful list of bug reports within Firebug issue tracker.

  • Remove the old Script panel
    • Remove also all related sidepanels
    • Remove the firebug-service
    • Issue 6947: Remove BTI
    • Rename the new panel to “Script” (currently Debugger)
  • Use ‘tabNavigated’ and ‘tabDetached’ to implement new TabWatcher
  • Breakpoints
    • Breakpoint removal (from the Script and Breakpoints panel)
    • Conditional breakpoints
    • Disable/Enable breakpoints
    • Error breakpoints
    • Monitor breakpoints
    • XHR breakpoints (local scenario only) bug 832983, bug 821610
    • Mutation breakpoints
    • DOM event breakpoints bug 800857, bug 832982
    • respect actualLocation sent back from the server (corrected BP location)
    • breakpoint initialization should be done when the target script (URL) is loaded.
    • The breakpoint condition editor does not disappear when clicking outside of it.
    • breakpoint info tip (condition)
    • The breakpoint condition editor doesn't scroll
  • Issue 6494: Integrate CodeMirror inside the Script panel? (see also bug 816756)
  • Pause on exception
  • User expression in the Watch Side Panel
  • Restore expanded state of the Watch Side Panel across stepping.
  • Allow to execute command line expression within the current frame
  • New profiler API, see bug 797876
  • The autocompletion for New watch expression doesn't allow to type just a as expression (always autocompleted to atob)
  • Script panel context menu
    • Copy Source
    • Add Watch
    • Toggle Breakpoint
    • Toggle Disabled Breakpoint
    • Continue, step over, step into, step out
    • Edit Breakpoint Condition
    • Run Until
    • Rerun
  • Meta: integration with other panels
  • Stack frames displayed in Script Panel's toolbar
  • Issue 2856: Click on a function jumps to the definition
  • Variable value info tip
  • Adopt existing tests
  • Scroll the Script Panel to show execution line
  • Watch Side Panel: edit value and user variable name
  • Break notifications (explaining the reason why break happened)
  • The Script Panel & two tabs with Firebug opened.
  • Debugging two tabs at once (there is a warning)
  • Disable debugger; keyword with disabled breakpoint
  • Source Maps
  • Search
    • Search multiple files
    • Search for regular expression
    • Goto line
  • FirebugRep.supportsObject() could use third parameter for remote-object-types
  • Watch Side Panel
    • Changing local variable or argument needs environment actor re-fetch from the server
  • Script Panel
    • Execution line disappears when switching to another tab and back
    • When Firefox exits with the debugger active (context.stopped) the process hangs in the memory
    • [[Script_Panel#Break_On_Next|Break On Next] (blocked by bug 789430)
    • Mark executable lines
  • Errors
    • Stack trace for errors (test script/callstack/5400), Issue 6523: JSD2: Show Stack Trace With Errors
    • Source line for errors that happen in dynamic scripts (script/callstack/5544, event script), blocked by bug 637572
  • Stepping
    • Double pause at the same line (test script/stepping/1179), blocked by bug 829028

Related Issues[edit]

Existing reports in Firebug issue list use label: jsd2 so, you can search for them.


  • Bug 800200 - rm JSD
  • Bug 837723 - Debugger should provide a way to get Debugger.Object referents directly
  • Bug 865313 - It is not possible to debug dynamically evaluated scripts
  • Bug 637572 - Implement Debugger.Source, providing script source code and detailed origin information
  • Bug 832982 - Implement backend support for breaking on dom events
  • Bug 880697 - JSD often uses JSContexts without pushing

Available commands[edit]

Command Description
pauseGrip(actor, type) Sends a packet with type type to a given actor living in debugger paused time
tabGrip(actor, type) The same as pauseGrip but for "tab" actors
threadPool() Creates a log of the current thread pool (thread actors map) into the console
pausePool() Creates a log of the current pause pool (pause actors map) into the console
breakpoints() Logs client side and server side breakpoints into the console
getSource(scriptActor) Fetches the source (from the backend) for a given scriptActor