From 86dbbc6d258b63fa664d0f539500f68283e1aade Mon Sep 17 00:00:00 2001
From: Ben Woolley <tautolog@gmail.com>
Date: Tue, 24 Mar 2015 00:34:00 -0700
Subject: [PATCH 06/13] Hook for controlling navigation policy.

---
 surf.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/surf.c b/surf.c
index 5ac1058..c91ac95 100644
--- a/surf.c
+++ b/surf.c
@@ -135,6 +135,9 @@ static WebKitWebView *createwindow(WebKitWebView *v, WebKitWebFrame *f,
 static gboolean decidedownload(WebKitWebView *v, WebKitWebFrame *f,
 		WebKitNetworkRequest *r, gchar *m,  WebKitWebPolicyDecision *p,
 		Client *c);
+static gboolean decidenavigation(WebKitWebView *v, WebKitWebFrame *f,
+		WebKitNetworkRequest *r, WebKitWebNavigationAction *n,
+		WebKitWebPolicyDecision *p, Client *c);
 static gboolean decidewindow(WebKitWebView *v, WebKitWebFrame *f,
 		WebKitNetworkRequest *r, WebKitWebNavigationAction *n,
 		WebKitWebPolicyDecision *p, Client *c);
@@ -473,6 +476,13 @@ decidedownload(WebKitWebView *v, WebKitWebFrame *f, WebKitNetworkRequest *r,
 }
 
 static gboolean
+decidenavigation(WebKitWebView *view, WebKitWebFrame *f, WebKitNetworkRequest *r,
+		WebKitWebNavigationAction *n, WebKitWebPolicyDecision *p,
+		Client *c) {
+	return FALSE;
+}
+
+static gboolean
 decidewindow(WebKitWebView *view, WebKitWebFrame *f, WebKitNetworkRequest *r,
 		WebKitWebNavigationAction *n, WebKitWebPolicyDecision *p,
 		Client *c) {
@@ -858,6 +868,9 @@ newclient(void) {
 			"new-window-policy-decision-requested",
 			G_CALLBACK(decidewindow), c);
 	g_signal_connect(G_OBJECT(c->view),
+			"navigation-policy-decision-requested",
+			G_CALLBACK(decidenavigation), c);
+	g_signal_connect(G_OBJECT(c->view),
 			"mime-type-policy-decision-requested",
 			G_CALLBACK(decidedownload), c);
 	g_signal_connect(G_OBJECT(c->view),
-- 
2.2.2

