This is a layering violation. The classes should perhaps be moved to WebCore/rendering like RenderThemeMac/Win.
Why do we have a folder 'platform', if all platform related data can be all over the place? In my opinion it is confusing to have a lot of files in WebCore/rendering that are just used by a special platform (mainly Chromium, Mac and Win).
We had similar situations with HTML Canvas and SVG, where we placed all platform data in a subfolder, or in the _theoretically_ platform independent classes itself. It is much more efficient to work on the code, since we moved all these data to platform.
I think it makes it much more complicated to administer a port (or create new ports) if the platform dependent files are not concentrated and located on one place.
Maybe I misunderstood the sense of the name and folder 'platform', so sorry if I'm mistaken.
I think we could create port specific directories in rendering (the same we have port dirs in other directories outside of platform like editing, page, plugins, etc.) and move all the RenderTheme<Port> files to rendering/<port> directories. This would fix the layering violations of RenderTheme files in platform.
Created attachment 237307 [details]
Committed r173111: <http://trac.webkit.org/changeset/173111>