WebView.connectPermissionRequest
gulong connectPermissionRequest(T)(T callback, Flag!"After" after = No.After) if (isCallable!T
&& is(ReturnType!T == bool)
&& (Parameters!T.length < 1 || (ParameterStorageClassTuple!T[0] == ParameterStorageClass.none && is(Parameters!T[0] : webkit.permission_request.PermissionRequest)))
&& (Parameters!T.length < 2 || (ParameterStorageClassTuple!T[1] == ParameterStorageClass.none && is(Parameters!T[1] : webkit.web_view.WebView)))
&& Parameters!T.length < 3)Connect to PermissionRequest signal.
This signal is emitted when WebKit is requesting the client to decide about a permission request, such as allowing the browser to switch to fullscreen mode, sharing its location or similar operations.
A possible way to use this signal could be through a dialog allowing the user decide what to do with the request:
static gboolean permission_request_cb (WebKitWebView *web_view,
WebKitPermissionRequest *request,
GtkWindow *parent_window)
{
GtkWidget *dialog = gtk_message_dialog_new (parent_window,
GTK_DIALOG_MODAL,
GTK_MESSAGE_QUESTION,
GTK_BUTTONS_YES_NO,
"Allow Permission Request?");
gtk_widget_show (dialog);
gint result = gtk_dialog_run (GTK_DIALOG (dialog));
switch (result) {
case GTK_RESPONSE_YES:
webkit_permission_request_allow (request);
break;
default:
webkit_permission_request_deny (request);
break;
}
gtk_widget_destroy (dialog);
return TRUE;
}It is possible to handle permission requests asynchronously, by simply calling [gobject.object.ObjectWrap.ref_] on the request argument and returning true to block the default signal handler. If the last reference is removed on a #WebKitPermissionRequest and the request has not been handled, [webkit.permission_request.PermissionRequest.deny] will be the default action.
If the signal is not handled, the request will be completed automatically by the specific #WebKitPermissionRequest that could allow or deny it. Check the documentation of classes implementing #WebKitPermissionRequest interface to know their default action.
Parameters
callback | signal callback delegate or function to connect bool callback(webkit.permission_request.PermissionRequest request, webkit.web_view.WebView webView) request the #WebKitPermissionRequest (optional) webView the instance the signal is connected to (optional) Returns true to stop other handlers from being invoked for the event. false to propagate the event further. |
after | Yes.After to execute callback after default handler, No.After to execute before (default) |