[webkit-dev] Intent to remove the WebCore::IconDatabase (GTK needs to make a decision)

Brady Eidson beidson at apple.com
Thu Jun 15 17:11:32 PDT 2017

Hi all,

The IconDatabase in WebCore is the source of crashes, spins, and complexity. Additionally it’s not flexible enough to acknowledge that there’s multiple types of site icons in use on the modern web, nor to adapt to the embedding client’s need for customization.

I recently introduced the “_WKIconLoadingDelegate” model to WebKit2Cocoa.

WebCore gathers all of the candidate icon URLs and asks the embedding app for each one whether or not it wants to load them.
If the app says yes, the icon will be loaded as a subresource in the current document and the data will be handed off to the client.

From Apple’s perspective:

The new model is powerful and flexible enough that Safari has adopted it.
In WebKit1, the “WebIconDatabase” class was never API and is currently unused.
In WebKit2, the C-API support was never API and is currently unused.

Therefore we intend to remove the current WebCore IconDatabase from the project soon.

Starting in on this task, I of course noticed GTK’s API has exposed “WebKitFaviconDatabase”

Is that something that’s published API and that is used?
If not, I can get rid of it right now

If so, then I need a GTK maintainer to come up with a plan soon.

The icon load delegate mechanism is powerful enough to rebuild an IconDatabase on top of, so if GTK needs to keep this API functional they can do so - maintaining the actual IconDatabase code themselves up in their API layer.


More information about the webkit-dev mailing list