DevTools/Features/Debugger: Difference between revisions

Added planning subsection for the basic protocol implementation.
(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__
Confirmed users
673

edits