WebKit2.WebContext.register_uri_scheme

### Method

# WebKit2 WebContextregister_uri_scheme

#### Declaration [src]

    void
    webkit_web_context_register_uri_scheme (
      WebKitWebContext* context,
      const gchar* scheme,
      WebKitURISchemeRequestCallback callback,
      gpointer user_data,
      GDestroyNotify user_data_destroy_func
    )

#### Description [src]

Register `scheme` in `context`.

Register `scheme` in `context`, so that when an URI request with `scheme` is made in the `WebKitWebContext`, the `WebKitURISchemeRequestCallback` registered will be called with a `WebKitURISchemeRequest`. It is possible to handle URI scheme requests asynchronously, by calling `g_object_ref()` on the `WebKitURISchemeRequest` and calling `webkit_uri_scheme_request_finish()` later when the data of the request is available or `webkit_uri_scheme_request_finish_error()` in case of error.

    static void
    about_uri_scheme_request_cb (WebKitURISchemeRequest *request,
                                 gpointer                user_data)
    {
        GInputStream *stream;
        gsize         stream_length;
        const gchar  *path = webkit_uri_scheme_request_get_path (request);

        if (!g_strcmp0 (path, "memory")) {
            // Create a GInputStream with the contents of memory about page, and set its length to stream_length
        } else if (!g_strcmp0 (path, "applications")) {
            // Create a GInputStream with the contents of applications about page, and set its length to stream_length
        } else if (!g_strcmp0 (path, "example")) {
            gchar *contents = g_strdup_printf ("<html><body><p>Example about page</p></body></html>");
            stream_length = strlen (contents);
            stream = g_memory_input_stream_new_from_data (contents, stream_length, g_free);
        } else {
            GError *error = g_error_new (ABOUT_HANDLER_ERROR, ABOUT_HANDLER_ERROR_INVALID, "Invalid about:%s page.", path);
            webkit_uri_scheme_request_finish_error (request, error);
            g_error_free (error);
            return;
        }
        webkit_uri_scheme_request_finish (request, stream, stream_length, "text/html");
        g_object_unref (stream);
    }

#### Parameters

`scheme`

  Type: `const gchar*`

  The network scheme to register.

  The data is owned by the caller of the method.
  The value is a NUL terminated UTF-8 string.

`callback`

  Type: `WebKitURISchemeRequestCallback`

  A `WebKitURISchemeRequestCallback`.

`user_data`

  Type: `gpointer`

  Data to pass to callback function.

  The argument can be `NULL`.
  The data is owned by the caller of the method.

`user_data_destroy_func`

  Type: `GDestroyNotify`

  Destroy notify for `user_data`.