Inspector.idl should look like: interface [Conditional=INSPECTOR] DOM { void start(); void stop(); void getChildNodes(in long nodeId); void pushNodeToFrontend(in Object objectId, out Value result); ... [notify] void childNodeInserted(out long parentId, out long prevId, out Object node); [notify] void childNodeRemoved(out long parentId, out long id); }; interface [Conditional=INSPECTOR] CSS { void setPropertyText(in Object styleId, in long propertyIndex, in String text, in boolean overwrite, out Value style); ... void querySelectorAll(in long documentId, in String selector, out Array result); }; interface [Conditional=INSPECTOR] Timeline { void start(); void stop(); [notify] void timelineProfilerWasStarted(); ... [notify] void addRecordToTimeline(out Object record); }; I.e. interface name defines domain, functions within domain have unique names. Patch to follow.
Looks good to me. But haven't looked at the hit to my parser yet :-) Here's another thing we could do, to handle [notify] methods. Split notify methods into a separate interface, named [OriginalInterfaceName]Notify. That's what my parsing actually does; for instance, the IDL in the description would have the following interfaces: DOM DOMNotify CSS Timeline TimelineNotify But it's not a big deal to me.
Created attachment 81962 [details] Patch
Attachment 81962 [details] did not build on chromium: Build output: http://queues.webkit.org/results/7884283
Committed r78212: <http://trac.webkit.org/changeset/78212>
http://trac.webkit.org/changeset/78212 might have broken Chromium Linux Release