On Apr 7, 2009, at 10:52 AM, Michael Nordman wrote:
I'm working on the app cache for Chrome. We've decided to hoist most
the functionality provided by the app cache into Chrome's main
browser process, so we won't be using most of the implementation
provided by WebKit. I'd like to work through what changes to make
within WebKit/WebCore to allow an embedder pull that off. Any
suggestions would be much appreciated.
One downside of this approach is that, if the application cache ever
needs to change, it may be necessary to make changes to two separate
implementations hosted in different repositories. In addition, quality-
of-implementation improvements to one version won't benefit the other.
It's been a recurring theme for the Chrome team to request hooks to
bypass WebKit functionality and replace it with Chrome-specific code
that lives outside the WebKit tree. So far this has been mostly for
code developed when Chrome was originally a secret project. While we
felt it was best to grandfather in the existing carve-outs, in general
I believe this is not the best way to move the WebKit project forward.
I would not like to see this pattern replicated for newly developed
functionality.
Regards,
Maciej
In the code base right now, a single compilation flag enables or
disables everything to do with app cache in WebKit,
ENABLE(OFFLINE_APPLICATION). This turns on/off the scriptable
interface bits as well as the backend implementation within webcore.
I think I'd like a way to reuse the scriptable interface related
bits provided by webkit, but to slide a chrome specific
implementation under that interface. One thought was to separate
this single flag into two flags, one for the scriptable interface
bits and the other for the back end implementation.
ENABLE(APPLICATION_CACHE_INTERFACE)
- surfaces the window.applicationCache property
- pulls in the DOMApplicationCache.idl file
- enables event targeting stuff for DOMApplicationCache
- perhaps defines an abstract interface that a c++ class backing
DOMApplicationCache scriptable API must implement
ENABLE(APPLICATION_CACHE_IMPLEMENTATION) // only valid if INTERFACE
is also enabled
- turns on the rest of the stuff in webkit for app cache, including
a concrete implementation of that abstract interface mentioned above.
Does something along these lines make sense, or perhaps there is
another way to approach this?
Thnx
Michael
_______________________________________________
webkit-dev mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev
_______________________________________________
webkit-dev mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev