static gboolean mime_type_decision_cb(WebKitWebView *v, WebKitWebFrame *f, WebKitNetworkRequest *r, gchar *mime, WebKitWebPolicyDecision *pd, widget_t *w) { (void) v; (void) f; lua_State *L = globalconf.L; const gchar *uri = webkit_network_request_get_uri(r); gint ret; luaH_object_push(L, w->ref); lua_pushstring(L, uri); lua_pushstring(L, mime); ret = luaH_object_emit_signal(L, -3, "mime-type-decision", 2, 1); if (ret && !luaH_checkboolean(L, -1)) /* User responded with false, ignore request */ webkit_web_policy_decision_ignore(pd); else if (!webkit_web_view_can_show_mime_type(v, mime)) webkit_web_policy_decision_download(pd); else webkit_web_policy_decision_use(pd); lua_pop(L, ret + 1); return TRUE; }
gboolean decidedownload(WebKitWebView *v, WebKitWebFrame *f, WebKitNetworkRequest *r, gchar *m, WebKitWebPolicyDecision *p, Client *c) { if(!webkit_web_view_can_show_mime_type(v, m)) { webkit_web_policy_decision_download(p); return TRUE; } return FALSE; }
gboolean cb_wv_mime_type_decision(WebKitWebView *view, WebKitWebFrame *frame, WebKitNetworkRequest *request, char *mimetype, WebKitWebPolicyDecision *policy_decision, Browser *b) { if (!webkit_web_view_can_show_mime_type(b->UI.view, mimetype)) { webkit_web_policy_decision_download(policy_decision); return TRUE; } return FALSE; }
JNIEXPORT jint JNICALL WebKitGTK_NATIVE(_1webkit_1web_1view_1can_1show_1mime_1type) (JNIEnv *env, jclass that, jintLong arg0, jintLong arg1) { jint rc = 0; WebKitGTK_NATIVE_ENTER(env, that, _1webkit_1web_1view_1can_1show_1mime_1type_FUNC); rc = (jint)webkit_web_view_can_show_mime_type((WebKitWebView *)arg0, (const gchar *)arg1); WebKitGTK_NATIVE_EXIT(env, that, _1webkit_1web_1view_1can_1show_1mime_1type_FUNC); return rc; }
static gboolean mime_type_policy_decision_requested_cb(WebKitWebView* view, WebKitWebFrame* frame, WebKitNetworkRequest* request, const char* mime_type, WebKitWebPolicyDecision* decision, gpointer data) { char* type = (char*)data; if (g_str_equal(type, "pdf")) { g_assert_cmpstr(mime_type, ==, "application/pdf"); g_assert(!webkit_web_view_can_show_mime_type(view, mime_type)); } else if (g_str_equal(type, "html")) {
static gboolean view_cb_mime_type_policy_decision( WebKitWebView *view, WebKitWebFrame *frame, WebKitNetworkRequest *req, gchar *mime, WebKitWebPolicyDecision *policy, struct browser_context *ctx) { wpa_printf(MSG_DEBUG, "BROWSER:%s mime=%s", __func__, mime); if (!webkit_web_view_can_show_mime_type(view, mime)) { webkit_web_policy_decision_download(policy); return TRUE; } return FALSE; }
gboolean mime_policy_cb(WebKitWebView *web_view, WebKitWebFrame *frame, WebKitNetworkRequest *request, gchar *mime_type, WebKitWebPolicyDecision *policy_decision, gpointer user_data) { (void) frame; (void) request; (void) user_data; /* If we can display it, let's display it... */ if (webkit_web_view_can_show_mime_type (web_view, mime_type)) { webkit_web_policy_decision_use (policy_decision); return TRUE; } /* ...everything we can't display is downloaded */ webkit_web_policy_decision_download (policy_decision); return TRUE; }