DevTools/Features/Debugger: Difference between revisions
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.