Confirmed users
673
edits
(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__ |