DevTools/Features/Debugger: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(Created page with "{| class="fullwidth-table" |- | style="font-weight: bold; background: #DDD;" | Feature | style="font-weight: bold; background: #DDD;" | Status | style="font-weight: bold; backgro...")
 
(Added planning subsection for the basic protocol implementation.)
Line 48: Line 48:
TBD
TBD


== Planning ==
The following is not complete.
=== Basic Protocol Support ===
Implementation of the [[Remote Debugging Protocol]].
=== Protocol Transports ===
* Simple TCP socket protocol - Needed for remote debugging.
* Shouldn't need sockets for in-process debugging, can probably just post events directly to/from the handler thread.
* Need to figure out transport between chrome/content for e10s (See inter-process dispatch, below).
* WebSockets (not needed for an initial implementation).
=== Protocol Handler Thread ===
* Handles incoming protocol requests on a thread, needed to interrupt running script on other threads.
* Will handle transport IO as needed (for socket/websocket/etc transports).
* Handle inter-thread dispatching
** Dispatching incoming protocol messages to actors on the proper thread.
** An actor's parent or child might be on a different thread (for example when a browser tab actor might have a WebWorker actor as a child).  Releasing a parent actor needs to release children, including on the other threads.
* Handle inter-process dispatching
** Similar issues to inter-thread dispatch, but communicating to content processes using the debugging protocol.
=== Actor registration API ===
* Including maintenance of the actor tree.
=== Debugging compartments ===
* The debugger must be in a separate compartment from the debuggee, some sort of sandbox/new global-and-compartment for hosting a given thread's debugging actors.


__NOTOC__
__NOTOC__

Revision as of 00:59, 6 May 2011

Feature Status ETA Owner
DevTools/Features/Debugger planning YYYY-MM-DD Kevin Dangoor

Summary

Initial take on an integrated JavaScript debugger for Firefox.

Team

Have some thoughts on what you want out of a debugger? Inspiration on how to do it? Join us on #devtools on irc.mozilla.org


  • Feature Manager: Kevin Dangoor (irc: kdangoor)
  • Lead Developer: Dave Camp (irc: dcamp)
  • Product Manager: Kevin Dangoor (irc: kdangoor)
  • QA: TBD
  • UX: TBD
  • Security: TBD


Release Requirements

TBD

Next Steps

  • scope out the project

Related Bugs & Dependencies

See the status page for the bug list and current status.

Designs

TBD

Planning

The following is not complete.

Basic Protocol Support

Implementation of the Remote Debugging Protocol.

Protocol Transports

  • Simple TCP socket protocol - Needed for remote debugging.
  • Shouldn't need sockets for in-process debugging, can probably just post events directly to/from the handler thread.
  • Need to figure out transport between chrome/content for e10s (See inter-process dispatch, below).
  • WebSockets (not needed for an initial implementation).

Protocol Handler Thread

  • Handles incoming protocol requests on a thread, needed to interrupt running script on other threads.
  • Will handle transport IO as needed (for socket/websocket/etc transports).
  • Handle inter-thread dispatching
    • Dispatching incoming protocol messages to actors on the proper thread.
    • An actor's parent or child might be on a different thread (for example when a browser tab actor might have a WebWorker actor as a child). Releasing a parent actor needs to release children, including on the other threads.
  • Handle inter-process dispatching
    • Similar issues to inter-thread dispatch, but communicating to content processes using the debugging protocol.

Actor registration API

  • Including maintenance of the actor tree.

Debugging compartments

  • The debugger must be in a separate compartment from the debuggee, some sort of sandbox/new global-and-compartment for hosting a given thread's debugging actors.