[webkit-dev] AppCache functionality provided by the embedder of webkit
mjs at apple.com
Tue Apr 7 11:27:23 PDT 2009
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
> 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.
> - 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?
> webkit-dev mailing list
> webkit-dev at lists.webkit.org
More information about the webkit-dev