I'm trying two different ways to get the favicon of the current website (which is https://google.com) that's loaded in my webview:
1:
webkit_web_view_get_favicon(webview)
where webview is WebKitWebView *
.
2:
void favicon_callback(WebKitFaviconDatabase *self, gchar *page_uri, gchar *favicon_uri,
gpointer user_data) {
printf("what: %s %s\n", page_uri, favicon_uri);
}
g_signal_connect(webview, "notify::favicon", G_CALLBACK(favicon_callback), NULL);
First one returns null going a minute or more after the page has loaded. The documentation says this is expected until the favicon loads. It never does, but in any case, I try the callback to watch for it to load. But the callback never fires.
What am I doing wrong?
Without a [mre] I can only give an advice.
You need to call webkit_web_context_set_favicon_database_directory()
in webkit2gtk-4 API or webkit_website_data_manager_set_favicons_enabled()
in webkitgtk-6.0 API to enable the favicon storage and the event.