Diff
Modified: trunk/Source/WebKit2/ChangeLog (131730 => 131731)
--- trunk/Source/WebKit2/ChangeLog 2012-10-18 12:20:35 UTC (rev 131730)
+++ trunk/Source/WebKit2/ChangeLog 2012-10-18 12:22:34 UTC (rev 131731)
@@ -1,5 +1,42 @@
2012-10-18 Carlos Garcia Campos <cgar...@igalia.com>
+ [GTK] Don't use the C API internally in PolicyClient classes
+ https://bugs.webkit.org/show_bug.cgi?id=96781
+
+ Reviewed by Xan Lopez.
+
+ Using the C++ classes directly instead of the C API wrappers we
+ avoid a lot of toImpl/toAPI casts, string conversions and
+ allocations. The code is also a lot simpler and easier to read.
+
+ * UIProcess/API/gtk/WebKitNavigationPolicyDecision.cpp:
+ (webkitNavigationPolicyDecisionCreate):
+ * UIProcess/API/gtk/WebKitNavigationPolicyDecisionPrivate.h:
+ * UIProcess/API/gtk/WebKitPolicyClient.cpp:
+ (decidePolicyForNavigationActionCallback):
+ (decidePolicyForNewWindowActionCallback):
+ (decidePolicyForResponseCallback):
+ (attachPolicyClientToView):
+ * UIProcess/API/gtk/WebKitPolicyClient.h:
+ * UIProcess/API/gtk/WebKitPolicyDecision.cpp:
+ (_WebKitPolicyDecisionPrivate):
+ (webkitPolicyDecisionFinalize):
+ (webkitPolicyDecisionSetListener):
+ (webkit_policy_decision_use):
+ (webkit_policy_decision_ignore):
+ (webkit_policy_decision_download):
+ * UIProcess/API/gtk/WebKitPolicyDecisionPrivate.h:
+ * UIProcess/API/gtk/WebKitPrivate.cpp:
+ (wkEventMouseButtonToWebKitMouseButton):
+ * UIProcess/API/gtk/WebKitPrivate.h:
+ * UIProcess/API/gtk/WebKitResponsePolicyDecision.cpp:
+ (webkitResponsePolicyDecisionCreate):
+ * UIProcess/API/gtk/WebKitResponsePolicyDecisionPrivate.h:
+ * UIProcess/API/gtk/WebKitWebView.cpp:
+ (webkitWebViewConstructed):
+
+2012-10-18 Carlos Garcia Campos <cgar...@igalia.com>
+
[GTK] Don't use the C API internally in WebKitHitTestResult
https://bugs.webkit.org/show_bug.cgi?id=96779
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitNavigationPolicyDecision.cpp (131730 => 131731)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitNavigationPolicyDecision.cpp 2012-10-18 12:20:35 UTC (rev 131730)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitNavigationPolicyDecision.cpp 2012-10-18 12:22:34 UTC (rev 131731)
@@ -20,16 +20,16 @@
#include "config.h"
#include "WebKitNavigationPolicyDecision.h"
+#include "WebEvent.h"
#include "WebKitEnumTypes.h"
#include "WebKitPolicyDecisionPrivate.h"
-#include "WebKitPrivate.h"
#include "WebKitURIRequestPrivate.h"
#include "WebURLRequest.h"
#include <glib/gi18n-lib.h>
#include <wtf/gobject/GRefPtr.h>
#include <wtf/text/CString.h>
-using namespace WebKit;
+using namespace WebCore;
/**
* SECTION: WebKitNavigationPolicyDecision
@@ -256,36 +256,20 @@
return decision->priv->frameName.data();
}
-COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_NAVIGATION_TYPE_LINK_CLICKED, kWKFrameNavigationTypeLinkClicked);
-COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_NAVIGATION_TYPE_FORM_SUBMITTED, kWKFrameNavigationTypeFormSubmitted);
-COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_NAVIGATION_TYPE_BACK_FORWARD, kWKFrameNavigationTypeBackForward);
-COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_NAVIGATION_TYPE_RELOAD, kWKFrameNavigationTypeReload);
-COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_NAVIGATION_TYPE_FORM_RESUBMITTED, kWKFrameNavigationTypeFormResubmitted);
-COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_NAVIGATION_TYPE_OTHER, kWKFrameNavigationTypeOther);
+COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_NAVIGATION_TYPE_LINK_CLICKED, NavigationTypeLinkClicked);
+COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_NAVIGATION_TYPE_FORM_SUBMITTED, NavigationTypeFormSubmitted);
+COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_NAVIGATION_TYPE_BACK_FORWARD, NavigationTypeBackForward);
+COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_NAVIGATION_TYPE_RELOAD, NavigationTypeReload);
+COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_NAVIGATION_TYPE_FORM_RESUBMITTED, NavigationTypeFormResubmitted);
+COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_NAVIGATION_TYPE_OTHER, NavigationTypeOther);
-static unsigned wkEventMouseButtonToWebKitMouseButton(WKEventMouseButton wkButton)
+WebKitNavigationPolicyDecision* webkitNavigationPolicyDecisionCreate(WebKitNavigationType navigationType, unsigned mouseButton, unsigned modifiers, WebURLRequest* request, const char* frameName, WebFramePolicyListenerProxy* listener)
{
- switch (wkButton) {
- case kWKEventMouseButtonNoButton:
- return 0;
- case kWKEventMouseButtonLeftButton:
- return 1;
- case kWKEventMouseButtonMiddleButton:
- return 2;
- case kWKEventMouseButtonRightButton:
- return 3;
- }
- ASSERT_NOT_REACHED();
- return 0;
-}
-
-WebKitNavigationPolicyDecision* webkitNavigationPolicyDecisionCreate(WKFrameNavigationType navigationType, WKEventMouseButton mouseButton, WKEventModifiers modifiers, WKURLRequestRef request, const char* frameName, WKFramePolicyListenerRef listener)
-{
WebKitNavigationPolicyDecision* decision = WEBKIT_NAVIGATION_POLICY_DECISION(g_object_new(WEBKIT_TYPE_NAVIGATION_POLICY_DECISION, NULL));
- decision->priv->navigationType = static_cast<WebKitNavigationType>(navigationType);
- decision->priv->mouseButton = wkEventMouseButtonToWebKitMouseButton(mouseButton);
- decision->priv->modifiers = wkEventModifiersToGdkModifiers(modifiers);
- decision->priv->request = adoptGRef(webkitURIRequestCreateForResourceRequest(toImpl(request)->resourceRequest()));
+ 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);
return decision;
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitNavigationPolicyDecisionPrivate.h (131730 => 131731)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitNavigationPolicyDecisionPrivate.h 2012-10-18 12:20:35 UTC (rev 131730)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitNavigationPolicyDecisionPrivate.h 2012-10-18 12:22:34 UTC (rev 131731)
@@ -23,6 +23,8 @@
#include "WebKitNavigationPolicyDecision.h"
#include "WebKitPrivate.h"
-WebKitNavigationPolicyDecision* webkitNavigationPolicyDecisionCreate(WKFrameNavigationType, WKEventMouseButton, WKEventModifiers, WKURLRequestRef, const char* frameName, WKFramePolicyListenerRef);
+using namespace WebKit;
+WebKitNavigationPolicyDecision* webkitNavigationPolicyDecisionCreate(WebKitNavigationType, unsigned mouseButton, unsigned modifiers, WebURLRequest*, const char* frameName, WebFramePolicyListenerProxy*);
+
#endif // WebKitNavigationPolicyDecisionPrivate_h
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitPolicyClient.cpp (131730 => 131731)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitPolicyClient.cpp 2012-10-18 12:20:35 UTC (rev 131730)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitPolicyClient.cpp 2012-10-18 12:22:34 UTC (rev 131731)
@@ -21,24 +21,23 @@
#include "WebKitPolicyClient.h"
#include "WebKitNavigationPolicyDecisionPrivate.h"
-#include "WebKitPolicyDecision.h"
-#include "WebKitPrivate.h"
#include "WebKitResponsePolicyDecisionPrivate.h"
#include "WebKitWebViewBasePrivate.h"
#include "WebKitWebViewPrivate.h"
#include <wtf/gobject/GRefPtr.h>
+#include <wtf/text/CString.h>
using namespace WebKit;
static void decidePolicyForNavigationActionCallback(WKPageRef page, WKFrameRef frame, WKFrameNavigationType navigationType, WKEventModifiers modifiers, WKEventMouseButton mouseButton, WKURLRequestRef request, WKFramePolicyListenerRef listener, WKTypeRef userData, const void* clientInfo)
{
GRefPtr<WebKitNavigationPolicyDecision> decision =
- adoptGRef(webkitNavigationPolicyDecisionCreate(navigationType,
- mouseButton,
- modifiers,
- request,
+ adoptGRef(webkitNavigationPolicyDecisionCreate(static_cast<WebKitNavigationType>(navigationType),
+ wkEventMouseButtonToWebKitMouseButton(mouseButton),
+ wkEventModifiersToGdkModifiers(modifiers),
+ toImpl(request),
0, /* frame name */
- listener));
+ toImpl(listener)));
webkitWebViewMakePolicyDecision(WEBKIT_WEB_VIEW(clientInfo),
WEBKIT_POLICY_DECISION_TYPE_NAVIGATION_ACTION,
WEBKIT_POLICY_DECISION(decision.get()));
@@ -47,12 +46,12 @@
static void decidePolicyForNewWindowActionCallback(WKPageRef page, WKFrameRef frame, WKFrameNavigationType navigationType, WKEventModifiers modifiers, WKEventMouseButton mouseButton, WKURLRequestRef request, WKStringRef frameName, WKFramePolicyListenerRef listener, WKTypeRef userData, const void* clientInfo)
{
GRefPtr<WebKitNavigationPolicyDecision> decision =
- adoptGRef(webkitNavigationPolicyDecisionCreate(navigationType,
- mouseButton,
- modifiers,
- request,
+ adoptGRef(webkitNavigationPolicyDecisionCreate(static_cast<WebKitNavigationType>(navigationType),
+ wkEventMouseButtonToWebKitMouseButton(mouseButton),
+ wkEventModifiersToGdkModifiers(modifiers),
+ toImpl(request),
toImpl(frameName)->string().utf8().data(),
- listener));
+ toImpl(listener)));
webkitWebViewMakePolicyDecision(WEBKIT_WEB_VIEW(clientInfo),
WEBKIT_POLICY_DECISION_TYPE_NEW_WINDOW_ACTION,
WEBKIT_POLICY_DECISION(decision.get()));
@@ -61,13 +60,13 @@
static void decidePolicyForResponseCallback(WKPageRef page, WKFrameRef frame, WKURLResponseRef response, WKURLRequestRef request, WKFramePolicyListenerRef listener, WKTypeRef userData, const void* clientInfo)
{
GRefPtr<WebKitResponsePolicyDecision> decision =
- adoptGRef(webkitResponsePolicyDecisionCreate(request, response, listener));
+ adoptGRef(webkitResponsePolicyDecisionCreate(toImpl(request), toImpl(response), toImpl(listener)));
webkitWebViewMakePolicyDecision(WEBKIT_WEB_VIEW(clientInfo),
WEBKIT_POLICY_DECISION_TYPE_RESPONSE,
WEBKIT_POLICY_DECISION(decision.get()));
}
-void attachPolicyClientToPage(WebKitWebView* webView)
+void attachPolicyClientToView(WebKitWebView* webView)
{
WKPagePolicyClient policyClient = {
kWKPagePolicyClientCurrentVersion,
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitPolicyClient.h (131730 => 131731)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitPolicyClient.h 2012-10-18 12:20:35 UTC (rev 131730)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitPolicyClient.h 2012-10-18 12:22:34 UTC (rev 131731)
@@ -22,6 +22,6 @@
#include "WebKitWebView.h"
-void attachPolicyClientToPage(WebKitWebView*);
+void attachPolicyClientToView(WebKitWebView*);
#endif // WebKitPolicyClient_h
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitPolicyDecision.cpp (131730 => 131731)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitPolicyDecision.cpp 2012-10-18 12:20:35 UTC (rev 131730)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitPolicyDecision.cpp 2012-10-18 12:22:34 UTC (rev 131731)
@@ -20,10 +20,9 @@
#include "config.h"
#include "WebKitPolicyDecision.h"
+#include "WebFramePolicyListenerProxy.h"
#include "WebKitPolicyDecisionPrivate.h"
-#include "WebKitPrivate.h"
-
/**
* SECTION: WebKitPolicyDecision
* @Short_description: A pending policy decision
@@ -43,7 +42,7 @@
G_DEFINE_ABSTRACT_TYPE(WebKitPolicyDecision, webkit_policy_decision, G_TYPE_OBJECT)
struct _WebKitPolicyDecisionPrivate {
- WKRetainPtr<WKFramePolicyListenerRef> listener;
+ RefPtr<WebFramePolicyListenerProxy> listener;
bool madePolicyDecision;
};
@@ -60,13 +59,13 @@
// This is the default choice for all policy decisions in WebPageProxy.cpp.
if (!priv->madePolicyDecision)
- WKFramePolicyListenerUse(priv->listener.get());
+ priv->listener->use();
priv->~WebKitPolicyDecisionPrivate();
G_OBJECT_CLASS(webkit_policy_decision_parent_class)->finalize(object);
}
-void webkitPolicyDecisionSetListener(WebKitPolicyDecision* decision, WKFramePolicyListenerRef listener)
+void webkitPolicyDecisionSetListener(WebKitPolicyDecision* decision, WebFramePolicyListenerProxy* listener)
{
decision->priv->listener = listener;
}
@@ -87,7 +86,7 @@
void webkit_policy_decision_use(WebKitPolicyDecision* decision)
{
g_return_if_fail(WEBKIT_IS_POLICY_DECISION(decision));
- WKFramePolicyListenerUse(decision->priv->listener.get());
+ decision->priv->listener->use();
decision->priv->madePolicyDecision = true;
}
@@ -101,7 +100,7 @@
void webkit_policy_decision_ignore(WebKitPolicyDecision* decision)
{
g_return_if_fail(WEBKIT_IS_POLICY_DECISION(decision));
- WKFramePolicyListenerIgnore(decision->priv->listener.get());
+ decision->priv->listener->ignore();
decision->priv->madePolicyDecision = true;
}
@@ -114,6 +113,6 @@
void webkit_policy_decision_download(WebKitPolicyDecision* decision)
{
g_return_if_fail(WEBKIT_IS_POLICY_DECISION(decision));
- WKFramePolicyListenerDownload(decision->priv->listener.get());
+ decision->priv->listener->download();
decision->priv->madePolicyDecision = true;
}
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitPolicyDecisionPrivate.h (131730 => 131731)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitPolicyDecisionPrivate.h 2012-10-18 12:20:35 UTC (rev 131730)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitPolicyDecisionPrivate.h 2012-10-18 12:22:34 UTC (rev 131731)
@@ -21,8 +21,10 @@
#define WebKitPolicyDecisionPrivate_h
#include "WebKitPolicyDecision.h"
-#include <WebKit2/WebKit2_C.h>
+#include "WebKitPrivate.h"
-void webkitPolicyDecisionSetListener(WebKitPolicyDecision*, WKFramePolicyListenerRef);
+using namespace WebKit;
+void webkitPolicyDecisionSetListener(WebKitPolicyDecision*, WebFramePolicyListenerProxy*);
+
#endif // WebKitResponsePolicyDecisionPrivate_h
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitPrivate.cpp (131730 => 131731)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitPrivate.cpp 2012-10-18 12:20:35 UTC (rev 131730)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitPrivate.cpp 2012-10-18 12:22:34 UTC (rev 131731)
@@ -35,3 +35,19 @@
modifiers |= GDK_META_MASK;
return modifiers;
}
+
+unsigned wkEventMouseButtonToWebKitMouseButton(WKEventMouseButton wkButton)
+{
+ switch (wkButton) {
+ case kWKEventMouseButtonNoButton:
+ return 0;
+ case kWKEventMouseButtonLeftButton:
+ return 1;
+ case kWKEventMouseButtonMiddleButton:
+ return 2;
+ case kWKEventMouseButtonRightButton:
+ return 3;
+ }
+ ASSERT_NOT_REACHED();
+ return 0;
+}
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitPrivate.h (131730 => 131731)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitPrivate.h 2012-10-18 12:20:35 UTC (rev 131730)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitPrivate.h 2012-10-18 12:22:34 UTC (rev 131731)
@@ -67,5 +67,6 @@
}
unsigned wkEventModifiersToGdkModifiers(WKEventModifiers);
+unsigned wkEventMouseButtonToWebKitMouseButton(WKEventMouseButton);
#endif // WebKitPrivate_h
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitResponsePolicyDecision.cpp (131730 => 131731)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitResponsePolicyDecision.cpp 2012-10-18 12:20:35 UTC (rev 131730)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitResponsePolicyDecision.cpp 2012-10-18 12:22:34 UTC (rev 131731)
@@ -30,8 +30,6 @@
#include <wtf/gobject/GRefPtr.h>
#include <wtf/text/CString.h>
-using namespace WebKit;
-
/**
* SECTION: WebKitResponsePolicyDecision
* @Short_description: A policy decision for resource responses
@@ -150,11 +148,11 @@
return decision->priv->response.get();
}
-WebKitResponsePolicyDecision* webkitResponsePolicyDecisionCreate(WKURLRequestRef request, WKURLResponseRef response, WKFramePolicyListenerRef listener)
+WebKitResponsePolicyDecision* webkitResponsePolicyDecisionCreate(WebURLRequest* request, WebURLResponse* response, WebFramePolicyListenerProxy* listener)
{
WebKitResponsePolicyDecision* decision = WEBKIT_RESPONSE_POLICY_DECISION(g_object_new(WEBKIT_TYPE_RESPONSE_POLICY_DECISION, NULL));
- decision->priv->request = adoptGRef(webkitURIRequestCreateForResourceRequest(toImpl(request)->resourceRequest()));
- decision->priv->response = adoptGRef(webkitURIResponseCreateForResourceResponse(toImpl(response)->resourceResponse()));
+ decision->priv->request = adoptGRef(webkitURIRequestCreateForResourceRequest(request->resourceRequest()));
+ decision->priv->response = adoptGRef(webkitURIResponseCreateForResourceResponse(response->resourceResponse()));
webkitPolicyDecisionSetListener(WEBKIT_POLICY_DECISION(decision), listener);
return decision;
}
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitResponsePolicyDecisionPrivate.h (131730 => 131731)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitResponsePolicyDecisionPrivate.h 2012-10-18 12:20:35 UTC (rev 131730)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitResponsePolicyDecisionPrivate.h 2012-10-18 12:22:34 UTC (rev 131731)
@@ -23,6 +23,8 @@
#include "WebKitPrivate.h"
#include "WebKitResponsePolicyDecision.h"
-WebKitResponsePolicyDecision* webkitResponsePolicyDecisionCreate(WKURLRequestRef, WKURLResponseRef, WKFramePolicyListenerRef);
+using namespace WebKit;
+WebKitResponsePolicyDecision* webkitResponsePolicyDecisionCreate(WebURLRequest*, WebURLResponse*, WebFramePolicyListenerProxy*);
+
#endif // WebKitResponsePolicyDecisionPrivate_h
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp (131730 => 131731)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp 2012-10-18 12:20:35 UTC (rev 131730)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp 2012-10-18 12:22:34 UTC (rev 131731)
@@ -402,7 +402,7 @@
attachLoaderClientToView(webView);
attachUIClientToView(webView);
- attachPolicyClientToPage(webView);
+ attachPolicyClientToView(webView);
attachResourceLoadClientToView(webView);
attachFullScreenClientToView(webView);
attachContextMenuClientToView(webView);