Hi, I am also constantly living in bugger (great work Jan!). I am currently looking into extending it to provide saving of local changes. Also bugger does writes to disconnected web-sockets if you do a reload of the dev-tools which is sometimes necessary when more sourcefiles get add via require(). So I am also looking into finding a way to either have bugger catch those send errors if client connections go away or even better forcing dev-tools to update its source list when changes occurr. Maybe putting more effort into bugger, would be time better spent.
Regards, Philipp On Wednesday, July 10, 2013 1:32:29 AM UTC+2, Adam Crabtree wrote: > > Howdy all, > > I have LinkedIn's blessing to work full-time for 2 weeks on building a > node.js addon[1] for remote Chrome Devtools debugging. Since I've never > built an addon, this is a rather ambitious task for my first addon, and > nearly everyone in the community would benefit from this, I thought I'd > solicit interest in working with me on it, either directly via pull > requests or indirectly by giving advice on building node.js addons. > > Details: > > Per Pavel Feldman of the Chrome Devtools team, it's possible, with > possibly some limited support from Chrome to decouple some APIs if > necessary. For me personally, the inability to use the native Chrome > debugger has always been a little frustrating, and this is my attempt to do > what I can to resolve it. Any non-trivial contributions will receive > Contributor permissions to accelerate collaboration. > > Pavel has also graciously provided me with the following high-level > overview of where to start: > > // Begin Quote > There is not much info available. These are the rough hints for you (use > cs.chromium.org to navigate Blink source). Then we could chat over VC / > hangouts / Skype. > > [Compile] > InspectorController is a container for remote debugging protocol agents. > We have one for the Page (InspectorController.cpp) and we have one for the > workers (WorkerInspectorController.cpp that has limited functionality). > Given that Node is more like a worker (pure JS execution environment), take > a look at that file for the list of agents to compile in your module > (InspectorDebuggerAgent, InspectorConsoleAgent, InspectorProfileAgent, > etc.). So you would need to compile all of them. > > These agents would pull ScriptDebugServer.cpp, ScriptProfiler.cpp, Script* > etc. These are wrappers around v8, should compile against v8.h. Some of > them (ScriptProfiler) and most of the agents will reference Node and that's > what we need to fix. In fact, most of them will pull Page, Document, Node > for no good reason and that's what we need to fix upstream, in Blink. > > You would also need to generate InspectorBackendDispatcher and > InspectorFrontend from devtools/protocol.json. First one will parse > incoming JSON messages and will dispatch them on controller's agents, > second will generate typed API for agents to send messages back. Some > tweaking would be necessary here as well since currently we generate a > giant dispatch and giant front-end instead of per-domain files. Having them > per-domain would let you only take what you really need. > > [Wire] > Lets assume it all compiled. Now you need to instantiate this controller > and call dispatchMessageFromFrontend on it with every message from the > front-end. Front-end will issue them using web socket transport, so you > need to have a server web socket as a part of your Node module that would > accept connection and do the right thing to the messages (call > dispatchMessageFromFrontend). And for the way back, your m_frontendChannel > would need to send info back using that web socket. > > [Debugging] > After compiling and wiring, console will start working. But you also need > to make things work while on breakpoint. For that, you would need to > implement runMessageLoopOnPause in your version of WorkerScriptDebugServer. > > As I mentioned, it is quite some work both downstream (in the Node module) > and upstream (to remove poor Blink dependencies from agents). But it might > be worth it. > > Regards > Pavel > > // End Quote > > > Feel free to submit pull requests or post issue to > https://github.com/crabdude/lookingglass > > Cheers, > Adam Crabtree > > [1] http://nodejs.org/api/addons.html > > -- > Better a little with righteousness > than much gain with injustice. > Proverbs 16:8 > -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
