WebContext.registerUriScheme

void registerUriScheme(string scheme, webkit.types.URISchemeRequestCallback callback)

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 [gobject.object.ObjectWrap.ref_] on the #WebKitURISchemeRequest and calling [webkit.urischeme_request.URISchemeRequest.finish] later when the data of the request is available or [webkit.urischeme_request.URISchemeRequest.finishError] 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

schemethe network scheme to register
callbacka #WebKitURISchemeRequestCallback