Diff
Modified: trunk/Source/WebKit2/ChangeLog (161255 => 161256)
--- trunk/Source/WebKit2/ChangeLog 2014-01-03 07:56:55 UTC (rev 161255)
+++ trunk/Source/WebKit2/ChangeLog 2014-01-03 08:42:07 UTC (rev 161256)
@@ -1,5 +1,29 @@
2014-01-02 Carlos Garcia Campos <[email protected]>
+ [GTK] Add API to WebKitResponsePolicyDecision to check if the MIME type can be shown
+ https://bugs.webkit.org/show_bug.cgi?id=124652
+
+ Reviewed by Martin Robinson.
+
+ * UIProcess/API/gtk/WebKitPolicyClient.cpp:
+ (decidePolicyForResponse): Pass canShowMIMEType to
+ webkitResponsePolicyDecisionCreate.
+ * UIProcess/API/gtk/WebKitResponsePolicyDecision.cpp:
+ (webkit_response_policy_decision_is_mime_type_supported): Return
+ canShowMIMEType.
+ (webkitResponsePolicyDecisionCreate): Set the canShowMIMEType
+ member from the given parameter.
+ * UIProcess/API/gtk/WebKitResponsePolicyDecision.h:
+ * UIProcess/API/gtk/WebKitResponsePolicyDecisionPrivate.h:
+ * UIProcess/API/gtk/WebKitWebView.cpp:
+ (webkitWebViewDecidePolicy): Use the new API instead of
+ webkit_web_view_can_show_mime_type() since it's more efficient.
+ * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbol.
+ * UIProcess/API/gtk/tests/TestWebKitPolicyClient.cpp:
+ (testResponsePolicy): Test the new API.
+
+2014-01-02 Carlos Garcia Campos <[email protected]>
+
REGRESSION(r160304): [GTK] Disable libtool fast install
https://bugs.webkit.org/show_bug.cgi?id=126381
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitPolicyClient.cpp (161255 => 161256)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitPolicyClient.cpp 2014-01-03 07:56:55 UTC (rev 161255)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitPolicyClient.cpp 2014-01-03 08:42:07 UTC (rev 161256)
@@ -60,7 +60,7 @@
static void decidePolicyForResponse(WKPageRef page, WKFrameRef frame, WKURLResponseRef response, WKURLRequestRef request, bool canShowMIMEType, WKFramePolicyListenerRef listener, WKTypeRef userData, const void* clientInfo)
{
GRefPtr<WebKitResponsePolicyDecision> decision =
- adoptGRef(webkitResponsePolicyDecisionCreate(toImpl(request), toImpl(response), toImpl(listener)));
+ adoptGRef(webkitResponsePolicyDecisionCreate(toImpl(request), toImpl(response), canShowMIMEType, toImpl(listener)));
webkitWebViewMakePolicyDecision(WEBKIT_WEB_VIEW(clientInfo),
WEBKIT_POLICY_DECISION_TYPE_RESPONSE,
WEBKIT_POLICY_DECISION(decision.get()));
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitResponsePolicyDecision.cpp (161255 => 161256)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitResponsePolicyDecision.cpp 2014-01-03 07:56:55 UTC (rev 161255)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitResponsePolicyDecision.cpp 2014-01-03 08:42:07 UTC (rev 161256)
@@ -48,6 +48,7 @@
struct _WebKitResponsePolicyDecisionPrivate {
GRefPtr<WebKitURIRequest> request;
GRefPtr<WebKitURIResponse> response;
+ bool canShowMIMEType;
};
WEBKIT_DEFINE_TYPE(WebKitResponsePolicyDecision, webkit_response_policy_decision, WEBKIT_TYPE_POLICY_DECISION)
@@ -137,11 +138,29 @@
return decision->priv->response.get();
}
-WebKitResponsePolicyDecision* webkitResponsePolicyDecisionCreate(API::URLRequest* request, API::URLResponse* response, WebFramePolicyListenerProxy* listener)
+/**
+ * webkit_response_policy_decision_is_mime_type_supported:
+ * @decision: a #WebKitResponsePolicyDecision
+ *
+ * Gets whether the MIME type of the response can be displayed in the #WebKitWebView
+ * that triggered this policy decision request. See also webkit_web_view_can_show_mime_type().
+ *
+ * Returns: %TRUE if the MIME type of the response is supported or %FALSE otherwise
+ *
+ * Since: 2.4
+ */
+gboolean webkit_response_policy_decision_is_mime_type_supported(WebKitResponsePolicyDecision* decision)
{
+ g_return_val_if_fail(WEBKIT_IS_RESPONSE_POLICY_DECISION(decision), FALSE);
+ return decision->priv->canShowMIMEType;
+}
+
+WebKitResponsePolicyDecision* webkitResponsePolicyDecisionCreate(API::URLRequest* request, API::URLResponse* response, bool canShowMIMEType, WebFramePolicyListenerProxy* listener)
+{
WebKitResponsePolicyDecision* decision = WEBKIT_RESPONSE_POLICY_DECISION(g_object_new(WEBKIT_TYPE_RESPONSE_POLICY_DECISION, NULL));
decision->priv->request = adoptGRef(webkitURIRequestCreateForResourceRequest(request->resourceRequest()));
decision->priv->response = adoptGRef(webkitURIResponseCreateForResourceResponse(response->resourceResponse()));
+ decision->priv->canShowMIMEType = canShowMIMEType;
webkitPolicyDecisionSetListener(WEBKIT_POLICY_DECISION(decision), listener);
return decision;
}
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitResponsePolicyDecision.h (161255 => 161256)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitResponsePolicyDecision.h 2014-01-03 07:56:55 UTC (rev 161255)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitResponsePolicyDecision.h 2014-01-03 08:42:07 UTC (rev 161256)
@@ -60,14 +60,17 @@
};
WEBKIT_API GType
-webkit_response_policy_decision_get_type (void);
+webkit_response_policy_decision_get_type (void);
WEBKIT_API WebKitURIRequest *
-webkit_response_policy_decision_get_request (WebKitResponsePolicyDecision *decision);
+webkit_response_policy_decision_get_request (WebKitResponsePolicyDecision *decision);
WEBKIT_API WebKitURIResponse *
-webkit_response_policy_decision_get_response (WebKitResponsePolicyDecision *decision);
+webkit_response_policy_decision_get_response (WebKitResponsePolicyDecision *decision);
+WEBKIT_API gboolean
+webkit_response_policy_decision_is_mime_type_supported (WebKitResponsePolicyDecision *decision);
+
G_END_DECLS
#endif
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitResponsePolicyDecisionPrivate.h (161255 => 161256)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitResponsePolicyDecisionPrivate.h 2014-01-03 07:56:55 UTC (rev 161255)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitResponsePolicyDecisionPrivate.h 2014-01-03 08:42:07 UTC (rev 161256)
@@ -23,6 +23,6 @@
#include "WebKitPrivate.h"
#include "WebKitResponsePolicyDecision.h"
-WebKitResponsePolicyDecision* webkitResponsePolicyDecisionCreate(API::URLRequest*, API::URLResponse*, WebKit::WebFramePolicyListenerProxy*);
+WebKitResponsePolicyDecision* webkitResponsePolicyDecisionCreate(API::URLRequest*, API::URLResponse*, bool canShowMIMEType, WebKit::WebFramePolicyListenerProxy*);
#endif // WebKitResponsePolicyDecisionPrivate_h
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp (161255 => 161256)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp 2014-01-03 07:56:55 UTC (rev 161255)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp 2014-01-03 08:42:07 UTC (rev 161256)
@@ -279,7 +279,7 @@
return TRUE;
}
- if (webkit_web_view_can_show_mime_type(webView, webkit_uri_response_get_mime_type(response)))
+ if (webkit_response_policy_decision_is_mime_type_supported(WEBKIT_RESPONSE_POLICY_DECISION(decision)))
webkit_policy_decision_use(decision);
else
webkit_policy_decision_ignore(decision);
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt (161255 => 161256)
--- trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt 2014-01-03 07:56:55 UTC (rev 161255)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt 2014-01-03 08:42:07 UTC (rev 161256)
@@ -568,6 +568,7 @@
WebKitResponsePolicyDecision
webkit_response_policy_decision_get_request
webkit_response_policy_decision_get_response
+webkit_response_policy_decision_is_mime_type_supported
<SUBSECTION Standard>
WebKitResponsePolicyDecisionClass
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitPolicyClient.cpp (161255 => 161256)
--- trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitPolicyClient.cpp 2014-01-03 07:56:55 UTC (rev 161255)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitPolicyClient.cpp 2014-01-03 08:42:07 UTC (rev 161256)
@@ -157,6 +157,16 @@
g_assert_cmpint(test->m_loadEvents[1], ==, LoadTrackingTest::LoadCommitted);
g_assert_cmpint(test->m_loadEvents[2], ==, LoadTrackingTest::LoadFinished);
+ WebKitResponsePolicyDecision* decision = WEBKIT_RESPONSE_POLICY_DECISION(test->m_previousPolicyDecision.get());
+ WebKitURIRequest* request = webkit_response_policy_decision_get_request(decision);
+ g_assert(WEBKIT_IS_URI_REQUEST(request));
+ ASSERT_CMP_CSTRING(webkit_uri_request_get_uri(request), ==, kServer->getURIForPath("/"));
+ WebKitURIResponse* response = webkit_response_policy_decision_get_response(decision);
+ g_assert(WEBKIT_IS_URI_RESPONSE(response));
+ ASSERT_CMP_CSTRING(webkit_uri_response_get_uri(response), ==, kServer->getURIForPath("/"));
+ g_assert(webkit_web_view_can_show_mime_type(test->m_webView, webkit_uri_response_get_mime_type(response)) ==
+ webkit_response_policy_decision_is_mime_type_supported(decision));
+
test->m_respondToPolicyDecisionAsynchronously = true;
test->loadURI(kServer->getURIForPath("/").data());
test->waitUntilLoadFinished();
Modified: trunk/Tools/ChangeLog (161255 => 161256)
--- trunk/Tools/ChangeLog 2014-01-03 07:56:55 UTC (rev 161255)
+++ trunk/Tools/ChangeLog 2014-01-03 08:42:07 UTC (rev 161256)
@@ -1,5 +1,16 @@
2014-01-02 Carlos Garcia Campos <[email protected]>
+ [GTK] Add API to WebKitResponsePolicyDecision to check if the MIME type can be shown
+ https://bugs.webkit.org/show_bug.cgi?id=124652
+
+ Reviewed by Martin Robinson.
+
+ * MiniBrowser/gtk/BrowserWindow.c:
+ (webViewDecidePolicy): Use the new API instead of
+ webkit_web_view_can_show_mime_type().
+
+2014-01-02 Carlos Garcia Campos <[email protected]>
+
REGRESSION(r160304): [GTK] Disable libtool fast install
https://bugs.webkit.org/show_bug.cgi?id=126381
Modified: trunk/Tools/MiniBrowser/gtk/BrowserWindow.c (161255 => 161256)
--- trunk/Tools/MiniBrowser/gtk/BrowserWindow.c 2014-01-03 07:56:55 UTC (rev 161255)
+++ trunk/Tools/MiniBrowser/gtk/BrowserWindow.c 2014-01-03 08:42:07 UTC (rev 161256)
@@ -378,10 +378,7 @@
}
case WEBKIT_POLICY_DECISION_TYPE_RESPONSE: {
WebKitResponsePolicyDecision *responseDecision = WEBKIT_RESPONSE_POLICY_DECISION(decision);
- WebKitURIResponse *response = webkit_response_policy_decision_get_response(responseDecision);
- const char *mimeType = webkit_uri_response_get_mime_type(response);
-
- if (webkit_web_view_can_show_mime_type(webView, mimeType))
+ if (webkit_response_policy_decision_is_mime_type_supported(responseDecision))
return FALSE;
WebKitWebResource *mainResource = webkit_web_view_get_main_resource(webView);