Changeset 161256 in webkit


Ignore:
Timestamp:
Jan 3, 2014 12:42:07 AM (10 years ago)
Author:
Carlos Garcia Campos
Message:

[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.

Source/WebKit2:

  • 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.

Tools:

  • MiniBrowser/gtk/BrowserWindow.c:

(webViewDecidePolicy): Use the new API instead of
webkit_web_view_can_show_mime_type().

Location:
trunk
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r161255 r161256  
     12014-01-02  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        [GTK] Add API to WebKitResponsePolicyDecision to check if the MIME type can be shown
     4        https://bugs.webkit.org/show_bug.cgi?id=124652
     5
     6        Reviewed by Martin Robinson.
     7
     8        * UIProcess/API/gtk/WebKitPolicyClient.cpp:
     9        (decidePolicyForResponse): Pass canShowMIMEType to
     10        webkitResponsePolicyDecisionCreate.
     11        * UIProcess/API/gtk/WebKitResponsePolicyDecision.cpp:
     12        (webkit_response_policy_decision_is_mime_type_supported): Return
     13        canShowMIMEType.
     14        (webkitResponsePolicyDecisionCreate): Set the canShowMIMEType
     15        member from the given parameter.
     16        * UIProcess/API/gtk/WebKitResponsePolicyDecision.h:
     17        * UIProcess/API/gtk/WebKitResponsePolicyDecisionPrivate.h:
     18        * UIProcess/API/gtk/WebKitWebView.cpp:
     19        (webkitWebViewDecidePolicy): Use the new API instead of
     20        webkit_web_view_can_show_mime_type() since it's more efficient.
     21        * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbol.
     22        * UIProcess/API/gtk/tests/TestWebKitPolicyClient.cpp:
     23        (testResponsePolicy): Test the new API.
     24
    1252014-01-02  Carlos Garcia Campos  <cgarcia@igalia.com>
    226
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitPolicyClient.cpp

    r160125 r161256  
    6161{
    6262    GRefPtr<WebKitResponsePolicyDecision> decision =
    63         adoptGRef(webkitResponsePolicyDecisionCreate(toImpl(request), toImpl(response), toImpl(listener)));
     63        adoptGRef(webkitResponsePolicyDecisionCreate(toImpl(request), toImpl(response), canShowMIMEType, toImpl(listener)));
    6464    webkitWebViewMakePolicyDecision(WEBKIT_WEB_VIEW(clientInfo),
    6565                                    WEBKIT_POLICY_DECISION_TYPE_RESPONSE,
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitResponsePolicyDecision.cpp

    r160861 r161256  
    4949    GRefPtr<WebKitURIRequest> request;
    5050    GRefPtr<WebKitURIResponse> response;
     51    bool canShowMIMEType;
    5152};
    5253
     
    138139}
    139140
    140 WebKitResponsePolicyDecision* webkitResponsePolicyDecisionCreate(API::URLRequest* request, API::URLResponse* response, WebFramePolicyListenerProxy* listener)
     141/**
     142 * webkit_response_policy_decision_is_mime_type_supported:
     143 * @decision: a #WebKitResponsePolicyDecision
     144 *
     145 * Gets whether the MIME type of the response can be displayed in the #WebKitWebView
     146 * that triggered this policy decision request. See also webkit_web_view_can_show_mime_type().
     147 *
     148 * Returns: %TRUE if the MIME type of the response is supported or %FALSE otherwise
     149 *
     150 * Since: 2.4
     151 */
     152gboolean webkit_response_policy_decision_is_mime_type_supported(WebKitResponsePolicyDecision* decision)
     153{
     154    g_return_val_if_fail(WEBKIT_IS_RESPONSE_POLICY_DECISION(decision), FALSE);
     155    return decision->priv->canShowMIMEType;
     156}
     157
     158WebKitResponsePolicyDecision* webkitResponsePolicyDecisionCreate(API::URLRequest* request, API::URLResponse* response, bool canShowMIMEType, WebFramePolicyListenerProxy* listener)
    141159{
    142160    WebKitResponsePolicyDecision* decision = WEBKIT_RESPONSE_POLICY_DECISION(g_object_new(WEBKIT_TYPE_RESPONSE_POLICY_DECISION, NULL));
    143161    decision->priv->request = adoptGRef(webkitURIRequestCreateForResourceRequest(request->resourceRequest()));
    144162    decision->priv->response = adoptGRef(webkitURIResponseCreateForResourceResponse(response->resourceResponse()));
     163    decision->priv->canShowMIMEType = canShowMIMEType;
    145164    webkitPolicyDecisionSetListener(WEBKIT_POLICY_DECISION(decision), listener);
    146165    return decision;
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitResponsePolicyDecision.h

    r150130 r161256  
    6161
    6262WEBKIT_API GType
    63 webkit_response_policy_decision_get_type            (void);
     63webkit_response_policy_decision_get_type               (void);
    6464
    6565WEBKIT_API WebKitURIRequest *
    66 webkit_response_policy_decision_get_request         (WebKitResponsePolicyDecision *decision);
     66webkit_response_policy_decision_get_request            (WebKitResponsePolicyDecision *decision);
    6767
    6868WEBKIT_API WebKitURIResponse *
    69 webkit_response_policy_decision_get_response        (WebKitResponsePolicyDecision *decision);
     69webkit_response_policy_decision_get_response           (WebKitResponsePolicyDecision *decision);
     70
     71WEBKIT_API gboolean
     72webkit_response_policy_decision_is_mime_type_supported (WebKitResponsePolicyDecision *decision);
    7073
    7174G_END_DECLS
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitResponsePolicyDecisionPrivate.h

    r160861 r161256  
    2424#include "WebKitResponsePolicyDecision.h"
    2525
    26 WebKitResponsePolicyDecision* webkitResponsePolicyDecisionCreate(API::URLRequest*, API::URLResponse*, WebKit::WebFramePolicyListenerProxy*);
     26WebKitResponsePolicyDecision* webkitResponsePolicyDecisionCreate(API::URLRequest*, API::URLResponse*, bool canShowMIMEType, WebKit::WebFramePolicyListenerProxy*);
    2727
    2828#endif // WebKitResponsePolicyDecisionPrivate_h
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp

    r160750 r161256  
    280280    }
    281281
    282     if (webkit_web_view_can_show_mime_type(webView, webkit_uri_response_get_mime_type(response)))
     282    if (webkit_response_policy_decision_is_mime_type_supported(WEBKIT_RESPONSE_POLICY_DECISION(decision)))
    283283        webkit_policy_decision_use(decision);
    284284    else
  • trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt

    r160434 r161256  
    569569webkit_response_policy_decision_get_request
    570570webkit_response_policy_decision_get_response
     571webkit_response_policy_decision_is_mime_type_supported
    571572
    572573<SUBSECTION Standard>
  • trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitPolicyClient.cpp

    r130507 r161256  
    158158    g_assert_cmpint(test->m_loadEvents[2], ==, LoadTrackingTest::LoadFinished);
    159159
     160    WebKitResponsePolicyDecision* decision = WEBKIT_RESPONSE_POLICY_DECISION(test->m_previousPolicyDecision.get());
     161    WebKitURIRequest* request = webkit_response_policy_decision_get_request(decision);
     162    g_assert(WEBKIT_IS_URI_REQUEST(request));
     163    ASSERT_CMP_CSTRING(webkit_uri_request_get_uri(request), ==, kServer->getURIForPath("/"));
     164    WebKitURIResponse* response = webkit_response_policy_decision_get_response(decision);
     165    g_assert(WEBKIT_IS_URI_RESPONSE(response));
     166    ASSERT_CMP_CSTRING(webkit_uri_response_get_uri(response), ==, kServer->getURIForPath("/"));
     167    g_assert(webkit_web_view_can_show_mime_type(test->m_webView, webkit_uri_response_get_mime_type(response)) ==
     168        webkit_response_policy_decision_is_mime_type_supported(decision));
     169
    160170    test->m_respondToPolicyDecisionAsynchronously = true;
    161171    test->loadURI(kServer->getURIForPath("/").data());
  • trunk/Tools/ChangeLog

    r161255 r161256  
     12014-01-02  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        [GTK] Add API to WebKitResponsePolicyDecision to check if the MIME type can be shown
     4        https://bugs.webkit.org/show_bug.cgi?id=124652
     5
     6        Reviewed by Martin Robinson.
     7
     8        * MiniBrowser/gtk/BrowserWindow.c:
     9        (webViewDecidePolicy): Use the new API instead of
     10        webkit_web_view_can_show_mime_type().
     11
    1122014-01-02  Carlos Garcia Campos  <cgarcia@igalia.com>
    213
  • trunk/Tools/MiniBrowser/gtk/BrowserWindow.c

    r161187 r161256  
    379379    case WEBKIT_POLICY_DECISION_TYPE_RESPONSE: {
    380380        WebKitResponsePolicyDecision *responseDecision = WEBKIT_RESPONSE_POLICY_DECISION(decision);
    381         WebKitURIResponse *response = webkit_response_policy_decision_get_response(responseDecision);
    382         const char *mimeType = webkit_uri_response_get_mime_type(response);
    383 
    384         if (webkit_web_view_can_show_mime_type(webView, mimeType))
     381        if (webkit_response_policy_decision_is_mime_type_supported(responseDecision))
    385382            return FALSE;
    386383
Note: See TracChangeset for help on using the changeset viewer.