decide_policy
Description:
This signal is emitted when WebKit is requesting the client to decide a policy decision, such as whether to navigate to a page, open a new window or whether or not to download a resource.
The NavigationPolicyDecision passed in the decision
argument is a generic type, but should be casted to a more specific type when making the decision. For example:
```c static gboolean decide_policy_cb (WebKitWebView *web_view, WebKitPolicyDecision *decision, WebKitPolicyDecisionType type) { switch ( type) { case WEBKIT_POLICY_DECISION_TYPE_NAVIGATION_ACTION: { WebKitNavigationPolicyDecision *navigation_decision = WEBKIT_NAVIGATION_POLICY_DECISION (decision); // Make a policy decision here break; } case WEBKIT_POLICY_DECISION_TYPE_NEW_WINDOW_ACTION: { WebKitNavigationPolicyDecision *navigation_decision = WEBKIT_NAVIGATION_POLICY_DECISION (decision); // Make a policy decision here break; } case WEBKIT_POLICY_DECISION_TYPE_RESPONSE: WebKitResponsePolicyDecision *response = WEBKIT_RESPONSE_POLICY_DECISION (decision); // Make a policy decision here break; default: // Making no decision results in use return FALSE; } return TRUE; } ```
It is possible to make policy decision asynchronously, by simply calling @ref
on the decision
argument and returning true to block the default signal handler. If the last
reference is removed on a PolicyDecision and no decision has been
made explicitly, use will be the default policy decision. The
default signal handler will simply call use. Only the first policy
decision chosen for a given PolicyDecision will have any affect.
Parameters:
decision |
the PolicyDecision |
decision_type |
a PolicyDecisionType denoting the type of |
Returns:
true to stop other handlers from being invoked for the event. false to propagate the event further. |