Diff
Modified: trunk/Source/WebKit2/ChangeLog (172210 => 172211)
--- trunk/Source/WebKit2/ChangeLog 2014-08-07 14:11:12 UTC (rev 172210)
+++ trunk/Source/WebKit2/ChangeLog 2014-08-07 14:58:11 UTC (rev 172211)
@@ -1,3 +1,48 @@
+2014-08-07 Carlos Garcia Campos <[email protected]>
+
+ [GTK] Use WebKitNavigationAction also for WebKitNavigationPolicyDecision
+ https://bugs.webkit.org/show_bug.cgi?id=135695
+
+ Reviewed by Gustavo Noronha Silva.
+
+ WebKitNavigationAction was introduced to extend WebKitWebView::create signal
+ and its API is mostly duplicated in WebKitNavigationPolicyDecision.
+ Use WebKitNavigationAction insternally in WebKitNavigationPolicyDecision and
+ deprecated all the duplicated API in favor of a single property navigation-action.
+
+ * UIProcess/API/gtk/WebKitDefines.h: Remove unused macro
+ WEBKIT_OBSOLETE and add WEBKIT_DEPRECATED and WEBKIT_DEPRECATED_FOR.
+ * UIProcess/API/gtk/WebKitNavigationPolicyDecision.cpp:
+ (_WebKitNavigationPolicyDecisionPrivate::~_WebKitNavigationPolicyDecisionPrivate):
+ Free the WebKitNavigationAction.
+ (webkitNavigationPolicyDecisionGetProperty): Add getter for
+ navigation-action and use WebKitNavigationAction in all other getters.
+ (webkit_navigation_policy_decision_class_init): Add navigation-action
+ property and deprecated all others except frame-name.
+ (webkit_navigation_policy_decision_get_navigation_action): Return the WebKitNavigationAction.
+ (webkit_navigation_policy_decision_get_navigation_type): Use WebKitNavigationAction.
+ (webkit_navigation_policy_decision_get_mouse_button): Ditto.
+ (webkit_navigation_policy_decision_get_modifiers): Ditto.
+ (webkit_navigation_policy_decision_get_request): Ditto.
+ (webkitNavigationPolicyDecisionCreate):
+ (webkitNewWindowPolicyDecisionCreate):
+ * UIProcess/API/gtk/WebKitNavigationPolicyDecision.h:
+ * UIProcess/API/gtk/WebKitNavigationPolicyDecisionPrivate.h:
+ * UIProcess/API/gtk/WebKitPolicyClient.cpp: Use a custom
+ PolicyClient class so that we receive a NavigationActionData in
+ the callbacks.
+ (attachPolicyClientToView):
+ (toWebKitNavigationType): Deleted.
+ (decidePolicyForNavigationAction): Deleted.
+ (decidePolicyForNewWindowAction): Deleted.
+ (decidePolicyForResponse): Deleted.
+ * UIProcess/API/gtk/WebKitResponsePolicyDecision.cpp:
+ (webkitResponsePolicyDecisionCreate):
+ * UIProcess/API/gtk/WebKitResponsePolicyDecisionPrivate.h:
+ * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add new section for
+ deprecated symbols.
+ * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols.
+
2014-08-06 Antti Koivisto <[email protected]>
Move Soup specific code out of WebCoreArgumentCoders.cpp
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitDefines.h (172210 => 172211)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitDefines.h 2014-08-07 14:11:12 UTC (rev 172210)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitDefines.h 2014-08-07 14:58:11 UTC (rev 172211)
@@ -38,10 +38,11 @@
# else
# define WEBKIT_API __declspec(dllimport)
# endif
-# define WEBKIT_OBSOLETE_API WEBKIT_API
#else
# define WEBKIT_API __attribute__((visibility("default")))
-# define WEBKIT_OBSOLETE_API WEBKIT_API __attribute__((deprecated))
#endif
+#define WEBKIT_DEPRECATED WEBKIT_API G_DEPRECATED
+#define WEBKIT_DEPRECATED_FOR(f) WEBKIT_API G_DEPRECATED_FOR(f)
+
#endif // WebKitDefines_h
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitNavigationPolicyDecision.cpp (172210 => 172211)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitNavigationPolicyDecision.cpp 2014-08-07 14:11:12 UTC (rev 172210)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitNavigationPolicyDecision.cpp 2014-08-07 14:58:11 UTC (rev 172211)
@@ -20,9 +20,9 @@
#include "config.h"
#include "WebKitNavigationPolicyDecision.h"
-#include "APIURLRequest.h"
-#include "WebEvent.h"
#include "WebKitEnumTypes.h"
+#include "WebKitNavigationActionPrivate.h"
+#include "WebKitNavigationPolicyDecisionPrivate.h"
#include "WebKitPolicyDecisionPrivate.h"
#include "WebKitURIRequestPrivate.h"
#include <glib/gi18n-lib.h>
@@ -44,10 +44,12 @@
*/
struct _WebKitNavigationPolicyDecisionPrivate {
- WebKitNavigationType navigationType;
- unsigned modifiers;
- unsigned mouseButton;
- GRefPtr<WebKitURIRequest> request;
+ ~_WebKitNavigationPolicyDecisionPrivate()
+ {
+ webkit_navigation_action_free(navigationAction);
+ }
+
+ WebKitNavigationAction* navigationAction;
CString frameName;
};
@@ -55,6 +57,7 @@
enum {
PROP_0,
+ PROP_NAVIGATION_ACTION,
PROP_NAVIGATION_TYPE,
PROP_MOUSE_BUTTON,
PROP_MODIFIERS,
@@ -66,17 +69,20 @@
{
WebKitNavigationPolicyDecision* decision = WEBKIT_NAVIGATION_POLICY_DECISION(object);
switch (propId) {
+ case PROP_NAVIGATION_ACTION:
+ g_value_set_boxed(value, webkit_navigation_policy_decision_get_navigation_action(decision));
+ break;
case PROP_NAVIGATION_TYPE:
- g_value_set_enum(value, webkit_navigation_policy_decision_get_navigation_type(decision));
+ g_value_set_enum(value, webkit_navigation_action_get_navigation_type(decision->priv->navigationAction));
break;
case PROP_MOUSE_BUTTON:
- g_value_set_enum(value, webkit_navigation_policy_decision_get_mouse_button(decision));
+ g_value_set_enum(value, webkit_navigation_action_get_mouse_button(decision->priv->navigationAction));
break;
case PROP_MODIFIERS:
- g_value_set_uint(value, webkit_navigation_policy_decision_get_modifiers(decision));
+ g_value_set_uint(value, webkit_navigation_action_get_modifiers(decision->priv->navigationAction));
break;
case PROP_REQUEST:
- g_value_set_object(value, webkit_navigation_policy_decision_get_request(decision));
+ g_value_set_object(value, webkit_navigation_action_get_request(decision->priv->navigationAction));
break;
case PROP_FRAME_NAME:
g_value_set_string(value, webkit_navigation_policy_decision_get_frame_name(decision));
@@ -93,11 +99,30 @@
objectClass->get_property = webkitNavigationPolicyDecisionGetProperty;
/**
+ * WebKitNavigationPolicyDecision:navigation-action:
+ *
+ * The #WebKitNavigationAction that triggered this policy decision.
+ *
+ * Since: 2.6
+ */
+ g_object_class_install_property(
+ objectClass,
+ PROP_NAVIGATION_ACTION,
+ g_param_spec_boxed(
+ "navigation-action",
+ _("Navigation action"),
+ _("The WebKitNavigationAction triggering this decision"),
+ WEBKIT_TYPE_NAVIGATION_ACTION,
+ WEBKIT_PARAM_READABLE));
+
+ /**
* WebKitNavigationPolicyDecision:navigation-type:
*
* The type of navigation that triggered this policy decision. This is
* useful for enacting different policies depending on what type of user
* action caused the navigation.
+ *
+ * Deprecated: 2.6: Use #WebKitNavigationPolicyDecision:navigation-action instead
*/
g_object_class_install_property(objectClass,
PROP_NAVIGATION_TYPE,
@@ -116,6 +141,8 @@
* of the button triggering that event. The button numbers match those from GDK.
* If the navigation was not triggered by a mouse event, the value of this
* property will be 0.
+ *
+ * Deprecated: 2.6: Use #WebKitNavigationPolicyDecision:navigation-action instead
*/
g_object_class_install_property(objectClass,
PROP_MOUSE_BUTTON,
@@ -133,6 +160,8 @@
* #GdkModifierType values describing the modifiers used for that click.
* If the navigation was not triggered by a mouse event or no modifiers
* were active, the value of this property will be zero.
+ *
+ * Deprecated: 2.6: Use #WebKitNavigationPolicyDecision:navigation-action instead
*/
g_object_class_install_property(objectClass,
PROP_MODIFIERS,
@@ -147,6 +176,8 @@
*
* This property contains the #WebKitURIRequest associated with this
* navigation.
+ *
+ * Deprecated: 2.6: Use #WebKitNavigationPolicyDecision:navigation-action instead
*/
g_object_class_install_property(objectClass,
PROP_REQUEST,
@@ -174,17 +205,35 @@
}
/**
+ * webkit_navigation_policy_decision_get_navigation_action:
+ * @decision: a #WebKitNavigationPolicyDecision
+ *
+ * Gets the value of the #WebKitNavigationPolicyDecision:navigation-action property.
+ *
+ * Returns: (transfer none): The #WebKitNavigationAction triggering this policy decision.
+ *
+ * Since: 2.6
+ */
+WebKitNavigationAction* webkit_navigation_policy_decision_get_navigation_action(WebKitNavigationPolicyDecision* decision)
+{
+ g_return_val_if_fail(WEBKIT_IS_NAVIGATION_POLICY_DECISION(decision), nullptr);
+ return decision->priv->navigationAction;
+}
+
+/**
* webkit_navigation_policy_decision_get_navigation_type:
* @decision: a #WebKitNavigationPolicyDecision
*
* Gets the value of the #WebKitNavigationPolicyDecision:navigation-type property.
*
* Returns: The type of navigation triggering this policy decision.
+ *
+ * Deprecated: 2.6: Use webkit_navigation_policy_decision_get_navigation_action() instead.
*/
WebKitNavigationType webkit_navigation_policy_decision_get_navigation_type(WebKitNavigationPolicyDecision* decision)
{
g_return_val_if_fail(WEBKIT_IS_NAVIGATION_POLICY_DECISION(decision), WEBKIT_NAVIGATION_TYPE_OTHER);
- return decision->priv->navigationType;
+ return webkit_navigation_action_get_navigation_type(decision->priv->navigationAction);
}
/**
@@ -194,11 +243,13 @@
* Gets the value of the #WebKitNavigationPolicyDecision:mouse-button property.
*
* Returns: The mouse button used if this decision was triggered by a mouse event or 0 otherwise
+ *
+ * Deprecated: 2.6: Use webkit_navigation_policy_decision_get_navigation_action() instead.
*/
guint webkit_navigation_policy_decision_get_mouse_button(WebKitNavigationPolicyDecision* decision)
{
g_return_val_if_fail(WEBKIT_IS_NAVIGATION_POLICY_DECISION(decision), 0);
- return decision->priv->mouseButton;
+ return webkit_navigation_action_get_mouse_button(decision->priv->navigationAction);
}
/**
@@ -208,11 +259,13 @@
* Gets the value of the #WebKitNavigationPolicyDecision:modifiers property.
*
* Returns: The modifiers active if this decision was triggered by a mouse event
+ *
+ * Deprecated: 2.6: Use webkit_navigation_policy_decision_get_navigation_action() instead.
*/
unsigned webkit_navigation_policy_decision_get_modifiers(WebKitNavigationPolicyDecision* decision)
{
g_return_val_if_fail(WEBKIT_IS_NAVIGATION_POLICY_DECISION(decision), 0);
- return decision->priv->modifiers;
+ return webkit_navigation_action_get_modifiers(decision->priv->navigationAction);
}
/**
@@ -222,11 +275,13 @@
* Gets the value of the #WebKitNavigationPolicyDecision:request property.
*
* Returns: (transfer none): The URI request that is associated with this navigation
+ *
+ * Deprecated: 2.6: Use webkit_navigation_policy_decision_get_navigation_action() instead.
*/
WebKitURIRequest* webkit_navigation_policy_decision_get_request(WebKitNavigationPolicyDecision* decision)
{
- g_return_val_if_fail(WEBKIT_IS_NAVIGATION_POLICY_DECISION(decision), 0);
- return decision->priv->request.get();
+ g_return_val_if_fail(WEBKIT_IS_NAVIGATION_POLICY_DECISION(decision), nullptr);
+ return webkit_navigation_action_get_request(decision->priv->navigationAction);
}
/**
@@ -243,14 +298,19 @@
return decision->priv->frameName.data();
}
-WebKitNavigationPolicyDecision* webkitNavigationPolicyDecisionCreate(WebKitNavigationType navigationType, unsigned mouseButton, unsigned modifiers, API::URLRequest* request, const char* frameName, WebFramePolicyListenerProxy* listener)
+WebKitPolicyDecision* webkitNavigationPolicyDecisionCreate(const NavigationActionData& navigationActionData, const ResourceRequest& request, WebFramePolicyListenerProxy* listener)
{
- WebKitNavigationPolicyDecision* decision = WEBKIT_NAVIGATION_POLICY_DECISION(g_object_new(WEBKIT_TYPE_NAVIGATION_POLICY_DECISION, NULL));
- decision->priv->navigationType = navigationType;
- decision->priv->mouseButton = mouseButton;
- decision->priv->modifiers = modifiers;
- decision->priv->request = adoptGRef(webkitURIRequestCreateForResourceRequest(request->resourceRequest()));
- decision->priv->frameName = frameName;
- webkitPolicyDecisionSetListener(WEBKIT_POLICY_DECISION(decision), listener);
+ WebKitNavigationPolicyDecision* navigationDecision = WEBKIT_NAVIGATION_POLICY_DECISION(g_object_new(WEBKIT_TYPE_NAVIGATION_POLICY_DECISION, nullptr));
+ GRefPtr<WebKitURIRequest> uriRequest = adoptGRef(webkitURIRequestCreateForResourceRequest(request));
+ navigationDecision->priv->navigationAction = webkitNavigationActionCreate(uriRequest.get(), navigationActionData);
+ WebKitPolicyDecision* decision = WEBKIT_POLICY_DECISION(navigationDecision);
+ webkitPolicyDecisionSetListener(decision, listener);
return decision;
}
+
+WebKitPolicyDecision* webkitNewWindowPolicyDecisionCreate(const NavigationActionData& navigationActionData, const ResourceRequest& request, const String& frameName, WebFramePolicyListenerProxy* listener)
+{
+ WebKitPolicyDecision* decision = webkitNavigationPolicyDecisionCreate(navigationActionData, request, listener);
+ WEBKIT_NAVIGATION_POLICY_DECISION(decision)->priv->frameName = frameName.utf8().data();
+ return decision;
+}
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitNavigationPolicyDecision.h (172210 => 172211)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitNavigationPolicyDecision.h 2014-08-07 14:11:12 UTC (rev 172210)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitNavigationPolicyDecision.h 2014-08-07 14:58:11 UTC (rev 172211)
@@ -62,16 +62,24 @@
WEBKIT_API GType
webkit_navigation_policy_decision_get_type (void);
-WEBKIT_API WebKitNavigationType
-webkit_navigation_policy_decision_get_navigation_type (WebKitNavigationPolicyDecision *decision);
-WEBKIT_API guint
-webkit_navigation_policy_decision_get_mouse_button (WebKitNavigationPolicyDecision *decision);
-WEBKIT_API guint
-webkit_navigation_policy_decision_get_modifiers (WebKitNavigationPolicyDecision *decision);
-WEBKIT_API WebKitURIRequest *
-webkit_navigation_policy_decision_get_request (WebKitNavigationPolicyDecision *decision);
+WEBKIT_API WebKitNavigationAction *
+webkit_navigation_policy_decision_get_navigation_action (WebKitNavigationPolicyDecision *decision);
+
+WEBKIT_DEPRECATED_FOR(webkit_navigation_policy_decision_get_navigation_action) WebKitNavigationType
+webkit_navigation_policy_decision_get_navigation_type (WebKitNavigationPolicyDecision *decision);
+
+WEBKIT_DEPRECATED_FOR(webkit_navigation_policy_decision_get_navigation_action) guint
+webkit_navigation_policy_decision_get_mouse_button (WebKitNavigationPolicyDecision *decision);
+
+WEBKIT_DEPRECATED_FOR(webkit_navigation_policy_decision_get_navigation_action) guint
+webkit_navigation_policy_decision_get_modifiers (WebKitNavigationPolicyDecision *decision);
+
+WEBKIT_DEPRECATED_FOR(webkit_navigation_policy_decision_get_navigation_action) WebKitURIRequest *
+webkit_navigation_policy_decision_get_request (WebKitNavigationPolicyDecision *decision);
+
WEBKIT_API const gchar *
-webkit_navigation_policy_decision_get_frame_name (WebKitNavigationPolicyDecision *decision);
+webkit_navigation_policy_decision_get_frame_name (WebKitNavigationPolicyDecision *decision);
+
G_END_DECLS
#endif
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitNavigationPolicyDecisionPrivate.h (172210 => 172211)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitNavigationPolicyDecisionPrivate.h 2014-08-07 14:11:12 UTC (rev 172210)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitNavigationPolicyDecisionPrivate.h 2014-08-07 14:58:11 UTC (rev 172211)
@@ -20,9 +20,11 @@
#ifndef WebKitNavigationPolicyDecisionPrivate_h
#define WebKitNavigationPolicyDecisionPrivate_h
+#include "NavigationActionData.h"
#include "WebKitNavigationPolicyDecision.h"
#include "WebKitPrivate.h"
-WebKitNavigationPolicyDecision* webkitNavigationPolicyDecisionCreate(WebKitNavigationType, unsigned mouseButton, unsigned modifiers, API::URLRequest*, const char* frameName, WebKit::WebFramePolicyListenerProxy*);
+WebKitPolicyDecision* webkitNavigationPolicyDecisionCreate(const WebKit::NavigationActionData&, const WebCore::ResourceRequest&, WebKit::WebFramePolicyListenerProxy*);
+WebKitPolicyDecision* webkitNewWindowPolicyDecisionCreate(const WebKit::NavigationActionData&, const WebCore::ResourceRequest&, const String& frameName, WebKit::WebFramePolicyListenerProxy*);
#endif // WebKitNavigationPolicyDecisionPrivate_h
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitPolicyClient.cpp (172210 => 172211)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitPolicyClient.cpp 2014-08-07 14:11:12 UTC (rev 172210)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitPolicyClient.cpp 2014-08-07 14:58:11 UTC (rev 172211)
@@ -20,6 +20,7 @@
#include "config.h"
#include "WebKitPolicyClient.h"
+#include "APIPolicyClient.h"
#include "WebKitNavigationPolicyDecisionPrivate.h"
#include "WebKitResponsePolicyDecisionPrivate.h"
#include "WebKitWebViewBasePrivate.h"
@@ -29,77 +30,37 @@
using namespace WebKit;
-static inline WebKitNavigationType toWebKitNavigationType(WKFrameNavigationType type)
-{
- switch (type) {
- case kWKFrameNavigationTypeLinkClicked:
- return WEBKIT_NAVIGATION_TYPE_LINK_CLICKED;
- case kWKFrameNavigationTypeFormSubmitted:
- return WEBKIT_NAVIGATION_TYPE_FORM_SUBMITTED;
- case kWKFrameNavigationTypeBackForward:
- return WEBKIT_NAVIGATION_TYPE_BACK_FORWARD;
- case kWKFrameNavigationTypeReload:
- return WEBKIT_NAVIGATION_TYPE_RELOAD;
- case kWKFrameNavigationTypeFormResubmitted:
- return WEBKIT_NAVIGATION_TYPE_FORM_RESUBMITTED;
- case kWKFrameNavigationTypeOther:
- return WEBKIT_NAVIGATION_TYPE_OTHER;
- default:
- ASSERT_NOT_REACHED();
- return WEBKIT_NAVIGATION_TYPE_LINK_CLICKED;
+class PolicyClient: public API::PolicyClient {
+public:
+ explicit PolicyClient(WebKitWebView* webView)
+ : m_webView(webView)
+ {
}
-}
-static void decidePolicyForNavigationAction(WKPageRef, WKFrameRef, WKFrameNavigationType navigationType, WKEventModifiers modifiers, WKEventMouseButton mouseButton, WKFrameRef, WKURLRequestRef request, WKFramePolicyListenerRef listener, WKTypeRef /* userData */, const void* clientInfo)
-{
- GRefPtr<WebKitNavigationPolicyDecision> decision =
- adoptGRef(webkitNavigationPolicyDecisionCreate(toWebKitNavigationType(navigationType),
- wkEventMouseButtonToWebKitMouseButton(mouseButton),
- wkEventModifiersToGdkModifiers(modifiers),
- toImpl(request),
- 0, /* frame name */
- toImpl(listener)));
- webkitWebViewMakePolicyDecision(WEBKIT_WEB_VIEW(clientInfo),
- WEBKIT_POLICY_DECISION_TYPE_NAVIGATION_ACTION,
- WEBKIT_POLICY_DECISION(decision.get()));
-}
+private:
+ virtual void decidePolicyForNavigationAction(WebPageProxy*, WebFrameProxy*, const NavigationActionData& navigationActionData, WebFrameProxy* /*originatingFrame*/, const WebCore::ResourceRequest& /*originalRequest*/, const WebCore::ResourceRequest& request, RefPtr<WebFramePolicyListenerProxy> listener, API::Object* /*userData*/) override
+ {
+ GRefPtr<WebKitPolicyDecision> decision = adoptGRef(webkitNavigationPolicyDecisionCreate(navigationActionData, request, listener.get()));
+ webkitWebViewMakePolicyDecision(m_webView, WEBKIT_POLICY_DECISION_TYPE_NAVIGATION_ACTION, decision.get());
+ }
-static void decidePolicyForNewWindowAction(WKPageRef, WKFrameRef, WKFrameNavigationType navigationType, WKEventModifiers modifiers, WKEventMouseButton mouseButton, WKURLRequestRef request, WKStringRef frameName, WKFramePolicyListenerRef listener, WKTypeRef /* userData */, const void* clientInfo)
-{
- GRefPtr<WebKitNavigationPolicyDecision> decision =
- adoptGRef(webkitNavigationPolicyDecisionCreate(toWebKitNavigationType(navigationType),
- wkEventMouseButtonToWebKitMouseButton(mouseButton),
- wkEventModifiersToGdkModifiers(modifiers),
- toImpl(request),
- toImpl(frameName)->string().utf8().data(),
- toImpl(listener)));
- webkitWebViewMakePolicyDecision(WEBKIT_WEB_VIEW(clientInfo),
- WEBKIT_POLICY_DECISION_TYPE_NEW_WINDOW_ACTION,
- WEBKIT_POLICY_DECISION(decision.get()));
-}
+ virtual void decidePolicyForNewWindowAction(WebPageProxy*, WebFrameProxy*, const NavigationActionData& navigationActionData, const WebCore::ResourceRequest& request, const String& frameName, RefPtr<WebFramePolicyListenerProxy> listener, API::Object* /*userData*/) override
+ {
+ GRefPtr<WebKitPolicyDecision> decision = adoptGRef(webkitNewWindowPolicyDecisionCreate(navigationActionData, request, frameName, listener.get()));
+ webkitWebViewMakePolicyDecision(m_webView, WEBKIT_POLICY_DECISION_TYPE_NEW_WINDOW_ACTION, decision.get());
+ }
-static void decidePolicyForResponse(WKPageRef, WKFrameRef, WKURLResponseRef response, WKURLRequestRef request, bool canShowMIMEType, WKFramePolicyListenerRef listener, WKTypeRef /* userData */, const void* clientInfo)
-{
- GRefPtr<WebKitResponsePolicyDecision> decision =
- adoptGRef(webkitResponsePolicyDecisionCreate(toImpl(request), toImpl(response), canShowMIMEType, toImpl(listener)));
- webkitWebViewMakePolicyDecision(WEBKIT_WEB_VIEW(clientInfo),
- WEBKIT_POLICY_DECISION_TYPE_RESPONSE,
- WEBKIT_POLICY_DECISION(decision.get()));
-}
+ virtual void decidePolicyForResponse(WebPageProxy*, WebFrameProxy*, const WebCore::ResourceResponse& response, const WebCore::ResourceRequest& request, bool canShowMIMEType, RefPtr<WebFramePolicyListenerProxy> listener, API::Object* /*userData*/) override
+ {
+ GRefPtr<WebKitPolicyDecision> decision = adoptGRef(webkitResponsePolicyDecisionCreate(request, response, canShowMIMEType, listener.get()));
+ webkitWebViewMakePolicyDecision(m_webView, WEBKIT_POLICY_DECISION_TYPE_RESPONSE, decision.get());
+ }
+ WebKitWebView* m_webView;
+};
+
void attachPolicyClientToView(WebKitWebView* webView)
{
- WKPagePolicyClientV1 policyClient = {
- {
- 1, // version
- webView, // clientInfo
- },
- 0, // decidePolicyForNavigationAction_deprecatedForUseWithV0
- decidePolicyForNewWindowAction,
- 0, // decidePolicyForResponse_deprecatedForUseWithV0
- 0, // unableToImplementPolicy
- decidePolicyForNavigationAction,
- decidePolicyForResponse
- };
- WKPageSetPagePolicyClient(toAPI(webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView))), &policyClient.base);
+ WebPageProxy* page = webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView));
+ page->setPolicyClient(std::make_unique<PolicyClient>(webView));
}
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitResponsePolicyDecision.cpp (172210 => 172211)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitResponsePolicyDecision.cpp 2014-08-07 14:11:12 UTC (rev 172210)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitResponsePolicyDecision.cpp 2014-08-07 14:58:11 UTC (rev 172211)
@@ -20,8 +20,6 @@
#include "config.h"
#include "WebKitResponsePolicyDecision.h"
-#include "APIURLRequest.h"
-#include "APIURLResponse.h"
#include "WebKitPolicyDecisionPrivate.h"
#include "WebKitPrivate.h"
#include "WebKitURIRequestPrivate.h"
@@ -31,6 +29,7 @@
#include <wtf/text/CString.h>
using namespace WebKit;
+using namespace WebCore;
/**
* SECTION: WebKitResponsePolicyDecision
@@ -155,12 +154,13 @@
return decision->priv->canShowMIMEType;
}
-WebKitResponsePolicyDecision* webkitResponsePolicyDecisionCreate(API::URLRequest* request, API::URLResponse* response, bool canShowMIMEType, WebFramePolicyListenerProxy* listener)
+WebKitPolicyDecision* webkitResponsePolicyDecisionCreate(const ResourceRequest& request, const ResourceResponse& 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);
+ WebKitResponsePolicyDecision* responseDecision = WEBKIT_RESPONSE_POLICY_DECISION(g_object_new(WEBKIT_TYPE_RESPONSE_POLICY_DECISION, nullptr));
+ responseDecision->priv->request = adoptGRef(webkitURIRequestCreateForResourceRequest(request));
+ responseDecision->priv->response = adoptGRef(webkitURIResponseCreateForResourceResponse(response));
+ responseDecision->priv->canShowMIMEType = canShowMIMEType;
+ WebKitPolicyDecision* decision = WEBKIT_POLICY_DECISION(responseDecision);
+ webkitPolicyDecisionSetListener(decision, listener);
return decision;
}
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitResponsePolicyDecisionPrivate.h (172210 => 172211)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitResponsePolicyDecisionPrivate.h 2014-08-07 14:11:12 UTC (rev 172210)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitResponsePolicyDecisionPrivate.h 2014-08-07 14:58:11 UTC (rev 172211)
@@ -23,6 +23,6 @@
#include "WebKitPrivate.h"
#include "WebKitResponsePolicyDecision.h"
-WebKitResponsePolicyDecision* webkitResponsePolicyDecisionCreate(API::URLRequest*, API::URLResponse*, bool canShowMIMEType, WebKit::WebFramePolicyListenerProxy*);
+WebKitPolicyDecision* webkitResponsePolicyDecisionCreate(const WebCore::ResourceRequest&, const WebCore::ResourceResponse&, bool canShowMIMEType, WebKit::WebFramePolicyListenerProxy*);
#endif // WebKitResponsePolicyDecisionPrivate_h
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-docs.sgml (172210 => 172211)
--- trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-docs.sgml 2014-08-07 14:11:12 UTC (rev 172210)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-docs.sgml 2014-08-07 14:58:11 UTC (rev 172211)
@@ -58,11 +58,16 @@
<index id="index-all">
<title>Index</title>
</index>
-
+
+ <index id="api-index-deprecated" role="deprecated">
+ <title>Index of deprecated symbols</title>
+ <xi:include href="" /></xi:include>
+ </index>
+
<index id="api-index-2-2" role="2.2">
<title>Index of new symbols in 2.2</title>
<xi:include href="" /></xi:include>
- </index>
+ </index>
<index id="api-index-2-4" role="2.4">
<title>Index of new symbols in 2.4</title>
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt (172210 => 172211)
--- trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt 2014-08-07 14:11:12 UTC (rev 172210)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt 2014-08-07 14:58:11 UTC (rev 172211)
@@ -16,7 +16,8 @@
webkit_web_view_base_get_type
WebKitWebViewBasePrivate
WEBKIT_API
-WEBKIT_OBSOLETE_API
+WEBKIT_DEPRECATED
+WEBKIT_DEPRECATED_FOR
</SECTION>
<SECTION>
@@ -613,6 +614,7 @@
<FILE>WebKitNavigationPolicyDecision</FILE>
WebKitNavigationPolicyDecision
WebKitNavigationType
+webkit_navigation_policy_decision_get_navigation_action
webkit_navigation_policy_decision_get_frame_name
webkit_navigation_policy_decision_get_modifiers
webkit_navigation_policy_decision_get_mouse_button
Modified: trunk/Tools/ChangeLog (172210 => 172211)
--- trunk/Tools/ChangeLog 2014-08-07 14:11:12 UTC (rev 172210)
+++ trunk/Tools/ChangeLog 2014-08-07 14:58:11 UTC (rev 172211)
@@ -1,5 +1,19 @@
2014-08-07 Carlos Garcia Campos <[email protected]>
+ [GTK] Use WebKitNavigationAction also for WebKitNavigationPolicyDecision
+ https://bugs.webkit.org/show_bug.cgi?id=135695
+
+ Reviewed by Gustavo Noronha Silva.
+
+ Use WebKitNavigationAction API.
+
+ * MiniBrowser/gtk/BrowserWindow.c:
+ (webViewDecidePolicy):
+ * TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitPolicyClient.cpp:
+ (testNavigationPolicy):
+
+2014-08-07 Carlos Garcia Campos <[email protected]>
+
[GTK] Test /webkit2/WebKitUserContentManager/injected-script fails
https://bugs.webkit.org/show_bug.cgi?id=135696
Modified: trunk/Tools/MiniBrowser/gtk/BrowserWindow.c (172210 => 172211)
--- trunk/Tools/MiniBrowser/gtk/BrowserWindow.c 2014-08-07 14:11:12 UTC (rev 172210)
+++ trunk/Tools/MiniBrowser/gtk/BrowserWindow.c 2014-08-07 14:58:11 UTC (rev 172211)
@@ -370,15 +370,15 @@
{
switch (decisionType) {
case WEBKIT_POLICY_DECISION_TYPE_NAVIGATION_ACTION: {
- WebKitNavigationPolicyDecision *navigationDecision = WEBKIT_NAVIGATION_POLICY_DECISION(decision);
- if (webkit_navigation_policy_decision_get_navigation_type(navigationDecision) != WEBKIT_NAVIGATION_TYPE_LINK_CLICKED
- || webkit_navigation_policy_decision_get_mouse_button(navigationDecision) != GDK_BUTTON_MIDDLE)
+ WebKitNavigationAction *navigationAction = webkit_navigation_policy_decision_get_navigation_action(WEBKIT_NAVIGATION_POLICY_DECISION(decision));
+ if (webkit_navigation_action_get_navigation_type(navigationAction) != WEBKIT_NAVIGATION_TYPE_LINK_CLICKED
+ || webkit_navigation_action_get_mouse_button(navigationAction) != GDK_BUTTON_MIDDLE)
return FALSE;
// Opening a new window if link clicked with the middle button.
WebKitWebView *newWebView = WEBKIT_WEB_VIEW(webkit_web_view_new_with_context(webkit_web_view_get_context(webView)));
GtkWidget *newWindow = browser_window_new(newWebView, GTK_WINDOW(window));
- webkit_web_view_load_request(newWebView, webkit_navigation_policy_decision_get_request(navigationDecision));
+ webkit_web_view_load_request(newWebView, webkit_navigation_action_get_request(navigationAction));
gtk_widget_show(newWindow);
webkit_policy_decision_ignore(decision);
Modified: trunk/Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitPolicyClient.cpp (172210 => 172211)
--- trunk/Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitPolicyClient.cpp 2014-08-07 14:11:12 UTC (rev 172210)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitPolicyClient.cpp 2014-08-07 14:58:11 UTC (rev 172211)
@@ -117,11 +117,12 @@
// Ideally we'd like to have a more intensive test here, but it's still pretty tricky
// to trigger different types of navigations with the GTK+ WebKit2 API.
WebKitNavigationPolicyDecision* decision = WEBKIT_NAVIGATION_POLICY_DECISION(test->m_previousPolicyDecision.get());
- g_assert_cmpint(webkit_navigation_policy_decision_get_navigation_type(decision), ==, WEBKIT_NAVIGATION_TYPE_OTHER);
- g_assert_cmpint(webkit_navigation_policy_decision_get_mouse_button(decision), ==, 0);
- g_assert_cmpint(webkit_navigation_policy_decision_get_modifiers(decision), ==, 0);
- g_assert_cmpstr(webkit_navigation_policy_decision_get_frame_name(decision), ==, 0);
- WebKitURIRequest* request = webkit_navigation_policy_decision_get_request(decision);
+ WebKitNavigationAction* navigationAction = webkit_navigation_policy_decision_get_navigation_action(decision);
+ g_assert_cmpint(webkit_navigation_action_get_navigation_type(navigationAction), ==, WEBKIT_NAVIGATION_TYPE_OTHER);
+ g_assert_cmpint(webkit_navigation_action_get_mouse_button(navigationAction), ==, 0);
+ g_assert_cmpint(webkit_navigation_action_get_modifiers(navigationAction), ==, 0);
+ g_assert(!webkit_navigation_policy_decision_get_frame_name(decision));
+ WebKitURIRequest* request = webkit_navigation_action_get_request(navigationAction);
g_assert_cmpstr(webkit_uri_request_get_uri(request), ==, "http://webkitgtk.org/");
test->m_policyDecisionResponse = PolicyClientTest::Use;