Having read the wiki page, I'm even more unhappy with the approach that has 
been taken than I used to be. In fact, it is harmful even to the goals of the 
refactoring.

If a single #ifdefed line in DOMWindow.idl is a burden for development, what 
about adding several new files to each and every build system, and maintaining 
these multiple files into perpetuity? That's much more work for everyone - port 
maintainers, core developers, and feature developers. The likelihood of 
repeated breakage is higher with the need to maintain a more complicated build 
system.

Sticking to the concrete example, these lines in WorkerContext.idl are not 
really something a WebSocket engineer maintains. It's more important for a 
person working on JS bindings and/or on threading, and the need to hunt down 
these across many files makes hacking more difficult. How can one even find an 
answer to the very practical question of which properties are available on 
WorkerContext if these are split across multiple files?

#if defined(ENABLE_WEB_SOCKETS) && ENABLE_WEB_SOCKETS
        attribute [JSCustomGetter,V8EnabledAtRuntime] WebSocketConstructor 
WebSocket; // Usable with the new operator
#endif

The goal is to make hacking easier. Moving files to separate directories should 
be done as long as that helps to advance the goal, but not beyond that, even if 
we now have an entertaining tool in the form of supplemental interfaces that 
lets you go far beyond reasonable.

- WBR, Alexey Proskuryakov


28.02.2012, в 0:29, Adam Barth написал(а):

> I wrote up a short wiki page explaining how the modules system works
> and how to use it when building new features:
> 
> https://trac.webkit.org/wiki/Modules
> 
> We've been making good progress refactoring some existing features to
> use the system.  This refactoring both improves the hackability of
> WebCore by simplifying the core objects (e.g.,
> Page/DOMWindow/Document/Navigator) and paves the cowpaths for new code
> to avoid bloating these objects.
> 
> In Bug 79663, Alexey asked why we were moving the WebSocket
> declaration out of WorkerContext.idl and into Modules/websockets.
> Viewed in isolation, I can understand why that change looks somewhat
> mysterious.  Hopefully the wiki page above provides some more context
> for the change.  In particular, WebSockets fits neatly into the
> modules pattern.  We've already removed almost all mentions of
> WebSockets from WebCore proper.  Besides one item in
> WebCore::Settings, WorkerContext.idl is the last file in WebCore
> proper to mention WebSockets.
> 
> Adam


_______________________________________________
webkit-dev mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

Reply via email to