Script Panel Refactoring

From FirebugWiki

(Difference between revisions)
Jump to: navigation, search
(JSD2 API Requirements)
(Added two more JSD2 API links)
Line 4: Line 4:
* Adopt JSD2 (get rid of all JSD1 APIs)
* Adopt JSD2 (get rid of all JSD1 APIs)
* Support Remote Debugging
* Support Remote Debugging
-
 
== JSD2 API Requirements ==
== 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.
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.
+
* List of scripts available on selected tab (including static, events and evaluated scripts) including iframes
* Stepping (into, over, out, resume, current line)  
* Stepping (into, over, out, resume, current line)  
* Support for <code>debugger;</code> keyword
* Support for <code>debugger;</code> keyword
Line 22: Line 21:
* Tracking (monitoring) function calls
* Tracking (monitoring) function calls
* Freezing page UI if debugger is halted (including timeouts, intervals and worker threads)
* Freezing page UI if debugger is halted (including timeouts, intervals and worker threads)
-
 
=== Not Ready in JSD2 ===
=== Not Ready in JSD2 ===
Line 36: Line 34:
TBD
TBD
-
 
== Resources ==
== Resources ==
* [https://wiki.mozilla.org/Debugger Debugger]
* [https://wiki.mozilla.org/Debugger Debugger]
 +
* [https://developer.mozilla.org/en/SpiderMonkey/JS_Debugger_API_Guide JS Debugger API Guide]
 +
* [https://developer.mozilla.org/en/SpiderMonkey/JS_Debugger_API_Reference JS Debugger API Reference]
* [https://wiki.mozilla.org/DevTools/Features/Debugger DevTools Debugger]
* [https://wiki.mozilla.org/DevTools/Features/Debugger DevTools Debugger]
* [https://wiki.mozilla.org/Remote_Debugging_Protocol Remote Debugging Protocol]
* [https://wiki.mozilla.org/Remote_Debugging_Protocol Remote Debugging Protocol]

Revision as of 21:43, 19 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)

Not Ready in JSD2

  • There is not source for evals.
  • new Function scripts?
  • Meta bug: Implement a script Debugger
    • As soon as this one is fixed
    • Profiling is unrelated to JSD2. What it the plan here?
    • Tracking (break on) throw/catch/error, also what is that plan?

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