## WebKitFaviconDatabase WebKitFaviconDatabase — A WebKit favicon database |

## Synopsis

    struct              WebKitFaviconDatabase;
    #define             WEBKIT_FAVICON_DATABASE_ERROR
    enum                WebKitFaviconDatabaseError;
    void                webkit_favicon_database_get_favicon (WebKitFaviconDatabase *database,
                                                             const gchar *page_uri,
                                                             GCancellable *cancellable,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);
    cairo_surface_t *   webkit_favicon_database_get_favicon_finish
                                                            (WebKitFaviconDatabase *database,
                                                             GAsyncResult *result,
                                                             GError **error);
    gchar *             webkit_favicon_database_get_favicon_uri
                                                            (WebKitFaviconDatabase *database,
                                                             const gchar *page_uri);
    void                webkit_favicon_database_clear       (WebKitFaviconDatabase *database);

## Object Hierarchy

      GObject
       +----WebKitFaviconDatabase

## Signals

      "favicon-changed"                                : Run Last

## Description

WebKitFaviconDatabase provides access to the icons associated with web sites.

WebKit will automatically look for available icons in <link> elements on opened pages as well as an existing favicon.ico and load the images found into a memory cache if possible. That cache is frozen to an on-disk database for persistence.

If "enable-private-browsing" is `TRUE`, new icons won't be added to the on-disk database and no existing icons will be deleted from it. Nevertheless, WebKit will still store them in the in-memory cache during the current execution.

## Details

### struct WebKitFaviconDatabase

    struct WebKitFaviconDatabase;

### WEBKIT_FAVICON_DATABASE_ERROR

    #define WEBKIT_FAVICON_DATABASE_ERROR           (webkit_favicon_database_error_quark())

### enum WebKitFaviconDatabaseError

    typedef enum {
        WEBKIT_FAVICON_DATABASE_ERROR_NOT_INITIALIZED,
        WEBKIT_FAVICON_DATABASE_ERROR_FAVICON_NOT_FOUND,
        WEBKIT_FAVICON_DATABASE_ERROR_FAVICON_UNKNOWN
    } WebKitFaviconDatabaseError;

Enum values used to denote the various errors related to the WebKitFaviconDatabase.

`WEBKIT_FAVICON_DATABASE_ERROR_NOT_INITIALIZED` | The WebKitFaviconDatabase has not been initialized yet
`WEBKIT_FAVICON_DATABASE_ERROR_FAVICON_NOT_FOUND` | There is not an icon available for the requested URL
`WEBKIT_FAVICON_DATABASE_ERROR_FAVICON_UNKNOWN` | There might be an icon for the requested URL, but its data is unknown at the moment

### webkit_favicon_database_get_favicon ()

    void                webkit_favicon_database_get_favicon (WebKitFaviconDatabase *database,
                                                             const gchar *page_uri,
                                                             GCancellable *cancellable,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);

Asynchronously obtains a cairo_surface_t of the favicon for the given page URI. It returns the cached icon if it's in the database asynchronously waiting for the icon to be read from the database.

This is an asynchronous method. When the operation is finished, callback will be invoked. You can then call `webkit_favicon_database_get_favicon_finish()` to get the result of the operation.

`database` : | a WebKitFaviconDatabase
`page_uri` : | URI of the page for which we want to retrieve the favicon
`cancellable` : | A GCancellable or `NULL`. [allow-none]
`callback` : | A GAsyncReadyCallback to call when the request is satisfied or `NULL` if you don't care about the result. [scope async]
`user_data` : | The data to pass to `callback`. [closure]

### webkit_favicon_database_get_favicon_finish ()

    cairo_surface_t *   webkit_favicon_database_get_favicon_finish
                                                            (WebKitFaviconDatabase *database,
                                                             GAsyncResult *result,
                                                             GError **error);

Finishes an operation started with `webkit_favicon_database_get_favicon()`.

`database` : | a WebKitFaviconDatabase
`result` : | A GAsyncResult obtained from the GAsyncReadyCallback passed to `webkit_favicon_database_get_favicon()`
`error` : | Return location for error or `NULL`. [allow-none]
Returns : | a new reference to a cairo_surface_t, or `NULL` in case of error. [transfer full]

### webkit_favicon_database_get_favicon_uri ()

    gchar *             webkit_favicon_database_get_favicon_uri
                                                            (WebKitFaviconDatabase *database,
                                                             const gchar *page_uri);

Obtains the URI of the favicon for the given `page_uri`.

`database` : | a WebKitFaviconDatabase
`page_uri` : | URI of the page containing the icon
Returns : | a newly allocated URI for the favicon, or `NULL` if the database doesn't have a favicon for `page_uri`.

### webkit_favicon_database_clear ()

    void                webkit_favicon_database_clear       (WebKitFaviconDatabase *database);

Clears all icons from the database.

`database` : | a WebKitFaviconDatabase

## Signal Details

### The `"favicon-changed"` signal

    void                user_function                      (WebKitFaviconDatabase *database,
                                                            gchar                 *page_uri,
                                                            gchar                 *favicon_uri,
                                                            gpointer               user_data)        : Run Last

This signal is emitted when the favicon URI of `page_uri` has been changed to `favicon_uri` in the database. You can connect to this signal and call `webkit_favicon_database_get_favicon()` to get the favicon. If you are interested in the favicon of a WebKitWebView it's easier to use the "favicon" property. See `webkit_web_view_get_favicon()` for more details.

`database` : | the object on which the signal is emitted
`page_uri` : | the URI of the Web page containing the icon
`favicon_uri` : | the URI of the favicon
`user_data` : | user data set when the signal handler was connected.