Script Panel Refactoring

From FirebugWiki

(Difference between revisions)
Jump to: navigation, search
(Created page with "This page summarizes support for remote JS debugging in Firebug (based on JSD2).")
Line 1: Line 1:
This page summarizes support for remote JS debugging in Firebug (based on JSD2).
This page summarizes support for remote JS debugging in Firebug (based on JSD2).
 +
 +
== Goals ==
 +
* Adopt JSD2 (get rid of all JSD1 APIs)
 +
* Support Remote Debugging
 +
 +
 +
== JSD2 API Requirements ==
 +
The following list summarizes list of high-level features that Firebug needs to support. It should be verified that all the features can re-implemented on top of JSD2 before starting the refactoring.
 +
 +
* List of scripts available on selected tab (including static, events and evaluated scripts) including iframes.
 +
* Stepping (into, over, out, resume, current line)
 +
* Support for <code>debugger;</code> keyword
 +
* Support for breakpoints (add, remove, enable, disabled, conditional, list of existing breakpoints)
 +
* Recognize executable lines
 +
* Dynamic eval in a frame (used e.g. by the Watch panel when the debugger is halted)
 +
* Get stack frames (including passed arguments)
 +
* Scope chain variable exploring (with & closure scopes). It should be possible to see all values.
 +
* Break on next call
 +
* Profiling (was part of JSD1)
 +
* Tracking (break on) throw/catch/error
 +
* Tracking (monitoring) function calls
 +
* Freezing page UI if debugger is halted (including timeouts, intervals and worker threads)
 +
 +
 +
== Script Panel Architecture ==
 +
The Script panel needs to be built on top of JSD2, remote protocol and Firebug remote architecture. Remoting is already supported by [HTTP Monitor] and both components should share the same approaches and API
 +
 +
TBD
 +
 +
 +
== Resources ==
 +
* [https://wiki.mozilla.org/Debugger Debugger]
 +
* [https://wiki.mozilla.org/DevTools/Features/Debugger DevTools Debugger]
 +
* [https://wiki.mozilla.org/Remote_Debugging_Protocol Remote Debugging Protocol]

Revision as of 12:32, 16 May 2012

This page summarizes support for remote JS debugging in Firebug (based on JSD2).

Contents

Goals

  • Adopt JSD2 (get rid of all JSD1 APIs)
  • Support Remote Debugging


JSD2 API Requirements

The following list summarizes list of high-level features that Firebug needs to support. It should be verified that all the features can re-implemented on top of JSD2 before starting the refactoring.

  • List of scripts available on selected tab (including static, events and evaluated scripts) including iframes.
  • Stepping (into, over, out, resume, current line)
  • Support for debugger; keyword
  • Support for breakpoints (add, remove, enable, disabled, conditional, list of existing breakpoints)
  • Recognize executable lines
  • Dynamic eval in a frame (used e.g. by the Watch panel when the debugger is halted)
  • Get stack frames (including passed arguments)
  • Scope chain variable exploring (with & closure scopes). It should be possible to see all values.
  • Break on next call
  • Profiling (was part of JSD1)
  • Tracking (break on) throw/catch/error
  • Tracking (monitoring) function calls
  • Freezing page UI if debugger is halted (including timeouts, intervals and worker threads)


Script Panel Architecture

The Script panel needs to be built on top of JSD2, remote protocol and Firebug remote architecture. Remoting is already supported by [HTTP Monitor] and both components should share the same approaches and API

TBD


Resources

Personal tools