As part of merging Source/web/ into modules/ & core/, we would like to remove web/'s dependencies on modules/ so that as many classes can go into core/ as possible.
Many classes in web/ rely on parts of modules/accessibility/ (e.g. AXObject.h and AXObjectCacheImpl.h, such as WebNode, WebPagePopupImpl, WebDocument, WebViewImpl, etc). If we can remove this dependency, we can move these classes into core/.
Some ideas for how to remove this dependency, in generally descending order from best to worst:
1. Move as much of accessibility as possible out of modules/ (e.g. to core/, or even platform/modules). AXObjectCacheImpl.cpp uses ChromeClient to call back into core/ already, so we can remove this abstraction layer too
2. Split accessibility into parts dependent on modules/ and parts not dependent, and move the not-dependent parts to another location as in 1)
3. Rename AXObject to AXObjectImpl and introduce an abstraction of AXObject in core/ (like AXObjectCache already has)
4. ??? Something else :)
Ideas welcome. I'll start a thread to discuss this on platform-architecture-dev@chromium.org and hopefully flesh out a design doc with the choices and their work.
Comment 1 by sashab@chromium.org
, Apr 26 2017