Title: [218262] trunk/Source/WebKit2
Revision
218262
Author
[email protected]
Date
2017-06-14 09:24:32 -0700 (Wed, 14 Jun 2017)

Log Message

[GTK] Use API::InjectedBundleClient in WebKitInjectedBundleClient
https://bugs.webkit.org/show_bug.cgi?id=173351

Reviewed by Michael Catanzaro.

Instead of the C API.

* UIProcess/API/gtk/WebKitInjectedBundleClient.cpp:
(attachInjectedBundleClientToContext):
(didReceiveWebViewMessageFromInjectedBundle): Deleted.
(didReceiveMessageFromInjectedBundle): Deleted.
(getInjectedBundleInitializationUserData): Deleted.

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (218261 => 218262)


--- trunk/Source/WebKit2/ChangeLog	2017-06-14 16:21:28 UTC (rev 218261)
+++ trunk/Source/WebKit2/ChangeLog	2017-06-14 16:24:32 UTC (rev 218262)
@@ -1,5 +1,20 @@
 2017-06-14  Carlos Garcia Campos  <[email protected]>
 
+        [GTK] Use API::InjectedBundleClient in WebKitInjectedBundleClient
+        https://bugs.webkit.org/show_bug.cgi?id=173351
+
+        Reviewed by Michael Catanzaro.
+
+        Instead of the C API.
+
+        * UIProcess/API/gtk/WebKitInjectedBundleClient.cpp:
+        (attachInjectedBundleClientToContext):
+        (didReceiveWebViewMessageFromInjectedBundle): Deleted.
+        (didReceiveMessageFromInjectedBundle): Deleted.
+        (getInjectedBundleInitializationUserData): Deleted.
+
+2017-06-14  Carlos Garcia Campos  <[email protected]>
+
         Add API::InjectedBundleClient
         https://bugs.webkit.org/show_bug.cgi?id=173350
 

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitInjectedBundleClient.cpp (218261 => 218262)


--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitInjectedBundleClient.cpp	2017-06-14 16:21:28 UTC (rev 218261)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitInjectedBundleClient.cpp	2017-06-14 16:24:32 UTC (rev 218262)
@@ -20,6 +20,7 @@
 #include "config.h"
 #include "WebKitInjectedBundleClient.h"
 
+#include "APIInjectedBundleClient.h"
 #include "WebImage.h"
 #include "WebKitPrivate.h"
 #include "WebKitURIRequestPrivate.h"
@@ -32,113 +33,113 @@
 using namespace WebKit;
 using namespace WebCore;
 
-static void didReceiveWebViewMessageFromInjectedBundle(WebKitWebView* webView, const char* messageName, API::Dictionary& message)
-{
-    if (g_str_equal(messageName, "DidInitiateLoadForResource")) {
-        WebFrameProxy* frame = static_cast<WebFrameProxy*>(message.get(String::fromUTF8("Frame")));
-        API::UInt64* resourceIdentifier = static_cast<API::UInt64*>(message.get(String::fromUTF8("Identifier")));
-        API::URLRequest* webRequest = static_cast<API::URLRequest*>(message.get(String::fromUTF8("Request")));
-        GRefPtr<WebKitURIRequest> request = adoptGRef(webkitURIRequestCreateForResourceRequest(webRequest->resourceRequest()));
+class WebKitInjectedBundleClient final : public API::InjectedBundleClient {
+public:
+    explicit WebKitInjectedBundleClient(WebKitWebContext* webContext)
+        : m_webContext(webContext)
+    {
+    }
 
-        webkitWebViewResourceLoadStarted(webView, frame, resourceIdentifier->value(), request.get());
-    } else if (g_str_equal(messageName, "DidSendRequestForResource")) {
-        API::UInt64* resourceIdentifier = static_cast<API::UInt64*>(message.get(String::fromUTF8("Identifier")));
-        GRefPtr<WebKitWebResource> resource = webkitWebViewGetLoadingWebResource(webView, resourceIdentifier->value());
-        if (!resource)
-            return;
+private:
+    static void didReceiveWebViewMessageFromInjectedBundle(WebKitWebView* webView, const char* messageName, API::Dictionary& message)
+    {
+        if (g_str_equal(messageName, "DidInitiateLoadForResource")) {
+            WebFrameProxy* frame = static_cast<WebFrameProxy*>(message.get(String::fromUTF8("Frame")));
+            API::UInt64* resourceIdentifier = static_cast<API::UInt64*>(message.get(String::fromUTF8("Identifier")));
+            API::URLRequest* webRequest = static_cast<API::URLRequest*>(message.get(String::fromUTF8("Request")));
+            GRefPtr<WebKitURIRequest> request = adoptGRef(webkitURIRequestCreateForResourceRequest(webRequest->resourceRequest()));
 
-        API::URLRequest* webRequest = static_cast<API::URLRequest*>(message.get(String::fromUTF8("Request")));
-        GRefPtr<WebKitURIRequest> request = adoptGRef(webkitURIRequestCreateForResourceRequest(webRequest->resourceRequest()));
-        API::URLResponse* webRedirectResponse = static_cast<API::URLResponse*>(message.get(String::fromUTF8("RedirectResponse")));
-        GRefPtr<WebKitURIResponse> redirectResponse = webRedirectResponse ? adoptGRef(webkitURIResponseCreateForResourceResponse(webRedirectResponse->resourceResponse())) : 0;
+            webkitWebViewResourceLoadStarted(webView, frame, resourceIdentifier->value(), request.get());
+        } else if (g_str_equal(messageName, "DidSendRequestForResource")) {
+            API::UInt64* resourceIdentifier = static_cast<API::UInt64*>(message.get(String::fromUTF8("Identifier")));
+            GRefPtr<WebKitWebResource> resource = webkitWebViewGetLoadingWebResource(webView, resourceIdentifier->value());
+            if (!resource)
+                return;
 
-        webkitWebResourceSentRequest(resource.get(), request.get(), redirectResponse.get());
-    } else if (g_str_equal(messageName, "DidReceiveResponseForResource")) {
-        API::UInt64* resourceIdentifier = static_cast<API::UInt64*>(message.get(String::fromUTF8("Identifier")));
-        GRefPtr<WebKitWebResource> resource = webkitWebViewGetLoadingWebResource(webView, resourceIdentifier->value());
-        if (!resource)
-            return;
+            API::URLRequest* webRequest = static_cast<API::URLRequest*>(message.get(String::fromUTF8("Request")));
+            GRefPtr<WebKitURIRequest> request = adoptGRef(webkitURIRequestCreateForResourceRequest(webRequest->resourceRequest()));
+            API::URLResponse* webRedirectResponse = static_cast<API::URLResponse*>(message.get(String::fromUTF8("RedirectResponse")));
+            GRefPtr<WebKitURIResponse> redirectResponse = webRedirectResponse ? adoptGRef(webkitURIResponseCreateForResourceResponse(webRedirectResponse->resourceResponse())) : 0;
 
-        API::URLResponse* webResponse = static_cast<API::URLResponse*>(message.get(String::fromUTF8("Response")));
-        GRefPtr<WebKitURIResponse> response = adoptGRef(webkitURIResponseCreateForResourceResponse(webResponse->resourceResponse()));
+            webkitWebResourceSentRequest(resource.get(), request.get(), redirectResponse.get());
+        } else if (g_str_equal(messageName, "DidReceiveResponseForResource")) {
+            API::UInt64* resourceIdentifier = static_cast<API::UInt64*>(message.get(String::fromUTF8("Identifier")));
+            GRefPtr<WebKitWebResource> resource = webkitWebViewGetLoadingWebResource(webView, resourceIdentifier->value());
+            if (!resource)
+                return;
 
-        webkitWebResourceSetResponse(resource.get(), response.get());
-    } else if (g_str_equal(messageName, "DidReceiveContentLengthForResource")) {
-        API::UInt64* resourceIdentifier = static_cast<API::UInt64*>(message.get(String::fromUTF8("Identifier")));
-        GRefPtr<WebKitWebResource> resource = webkitWebViewGetLoadingWebResource(webView, resourceIdentifier->value());
-        if (!resource)
-            return;
+            API::URLResponse* webResponse = static_cast<API::URLResponse*>(message.get(String::fromUTF8("Response")));
+            GRefPtr<WebKitURIResponse> response = adoptGRef(webkitURIResponseCreateForResourceResponse(webResponse->resourceResponse()));
 
-        API::UInt64* contentLength = static_cast<API::UInt64*>(message.get(String::fromUTF8("ContentLength")));
-        webkitWebResourceNotifyProgress(resource.get(), contentLength->value());
-    } else if (g_str_equal(messageName, "DidFinishLoadForResource")) {
-        API::UInt64* resourceIdentifier = static_cast<API::UInt64*>(message.get(String::fromUTF8("Identifier")));
-        GRefPtr<WebKitWebResource> resource = webkitWebViewGetLoadingWebResource(webView, resourceIdentifier->value());
-        if (!resource)
-            return;
+            webkitWebResourceSetResponse(resource.get(), response.get());
+        } else if (g_str_equal(messageName, "DidReceiveContentLengthForResource")) {
+            API::UInt64* resourceIdentifier = static_cast<API::UInt64*>(message.get(String::fromUTF8("Identifier")));
+            GRefPtr<WebKitWebResource> resource = webkitWebViewGetLoadingWebResource(webView, resourceIdentifier->value());
+            if (!resource)
+                return;
 
-        webkitWebResourceFinished(resource.get());
-        webkitWebViewRemoveLoadingWebResource(webView, resourceIdentifier->value());
-    } else if (g_str_equal(messageName, "DidFailLoadForResource")) {
-        API::UInt64* resourceIdentifier = static_cast<API::UInt64*>(message.get(String::fromUTF8("Identifier")));
-        GRefPtr<WebKitWebResource> resource = webkitWebViewGetLoadingWebResource(webView, resourceIdentifier->value());
-        if (!resource)
-            return;
+            API::UInt64* contentLength = static_cast<API::UInt64*>(message.get(String::fromUTF8("ContentLength")));
+            webkitWebResourceNotifyProgress(resource.get(), contentLength->value());
+        } else if (g_str_equal(messageName, "DidFinishLoadForResource")) {
+            API::UInt64* resourceIdentifier = static_cast<API::UInt64*>(message.get(String::fromUTF8("Identifier")));
+            GRefPtr<WebKitWebResource> resource = webkitWebViewGetLoadingWebResource(webView, resourceIdentifier->value());
+            if (!resource)
+                return;
 
-        API::Error* webError = static_cast<API::Error*>(message.get(String::fromUTF8("Error")));
-        const ResourceError& platformError = webError->platformError();
-        GUniquePtr<GError> resourceError(g_error_new_literal(g_quark_from_string(platformError.domain().utf8().data()),
-            toWebKitError(platformError.errorCode()), platformError.localizedDescription().utf8().data()));
-        if (platformError.tlsErrors())
-            webkitWebResourceFailedWithTLSErrors(resource.get(), static_cast<GTlsCertificateFlags>(platformError.tlsErrors()), platformError.certificate());
-        else
-            webkitWebResourceFailed(resource.get(), resourceError.get());
+            webkitWebResourceFinished(resource.get());
+            webkitWebViewRemoveLoadingWebResource(webView, resourceIdentifier->value());
+        } else if (g_str_equal(messageName, "DidFailLoadForResource")) {
+            API::UInt64* resourceIdentifier = static_cast<API::UInt64*>(message.get(String::fromUTF8("Identifier")));
+            GRefPtr<WebKitWebResource> resource = webkitWebViewGetLoadingWebResource(webView, resourceIdentifier->value());
+            if (!resource)
+                return;
 
-        webkitWebViewRemoveLoadingWebResource(webView, resourceIdentifier->value());
-    } else if (g_str_equal(messageName, "DidGetSnapshot")) {
-        API::UInt64* callbackID = static_cast<API::UInt64*>(message.get("CallbackID"));
-        WebImage* image = static_cast<WebImage*>(message.get("Snapshot"));
-        webKitWebViewDidReceiveSnapshot(webView, callbackID->value(), image);
-    } else
-        ASSERT_NOT_REACHED();
-}
+            API::Error* webError = static_cast<API::Error*>(message.get(String::fromUTF8("Error")));
+            const ResourceError& platformError = webError->platformError();
+            GUniquePtr<GError> resourceError(g_error_new_literal(g_quark_from_string(platformError.domain().utf8().data()),
+                toWebKitError(platformError.errorCode()), platformError.localizedDescription().utf8().data()));
+            if (platformError.tlsErrors())
+                webkitWebResourceFailedWithTLSErrors(resource.get(), static_cast<GTlsCertificateFlags>(platformError.tlsErrors()), platformError.certificate());
+            else
+                webkitWebResourceFailed(resource.get(), resourceError.get());
 
-static void didReceiveMessageFromInjectedBundle(WKContextRef, WKStringRef messageName, WKTypeRef messageBody, const void* clientInfo)
-{
-    ASSERT(WKGetTypeID(messageBody) == WKDictionaryGetTypeID());
-    API::Dictionary& message = *toImpl(static_cast<WKDictionaryRef>(messageBody));
+            webkitWebViewRemoveLoadingWebResource(webView, resourceIdentifier->value());
+        } else if (g_str_equal(messageName, "DidGetSnapshot")) {
+            API::UInt64* callbackID = static_cast<API::UInt64*>(message.get("CallbackID"));
+            WebImage* image = static_cast<WebImage*>(message.get("Snapshot"));
+            webKitWebViewDidReceiveSnapshot(webView, callbackID->value(), image);
+        } else
+            ASSERT_NOT_REACHED();
+    }
 
-    CString messageNameCString = toImpl(messageName)->string().utf8();
-    const char* messageNameUTF8 = messageNameCString.data();
+    void didReceiveMessageFromInjectedBundle(WebProcessPool&, const String& messageName, API::Object* messageBody) override
+    {
+        ASSERT(messageBody->type() == API::Object::Type::Dictionary);
+        API::Dictionary& message = *static_cast<API::Dictionary*>(messageBody);
 
-    if (g_str_has_prefix(messageNameUTF8, "WebPage.")) {
-        WebPageProxy* page = static_cast<WebPageProxy*>(message.get(String::fromUTF8("Page")));
-        WebKitWebView* webView = webkitWebContextGetWebViewForPage(WEBKIT_WEB_CONTEXT(clientInfo), page);
-        if (!webView)
-            return;
+        CString messageNameUTF8 = messageName.utf8();
+        if (g_str_has_prefix(messageNameUTF8.data(), "WebPage.")) {
+            WebPageProxy* page = static_cast<WebPageProxy*>(message.get(String::fromUTF8("Page")));
+            WebKitWebView* webView = webkitWebContextGetWebViewForPage(m_webContext, page);
+            if (!webView)
+                return;
 
-        didReceiveWebViewMessageFromInjectedBundle(webView, messageNameUTF8 + strlen("WebPage."), message);
-    } else
-        ASSERT_NOT_REACHED();
-}
+            didReceiveWebViewMessageFromInjectedBundle(webView, messageNameUTF8.data() + strlen("WebPage."), message);
+        } else
+            ASSERT_NOT_REACHED();
+    }
 
-static WKTypeRef getInjectedBundleInitializationUserData(WKContextRef, const void* clientInfo)
-{
-    GRefPtr<GVariant> data = ""
-    GUniquePtr<gchar> dataString(g_variant_print(data.get(), TRUE));
-    return static_cast<WKTypeRef>(WKStringCreateWithUTF8CString(dataString.get()));
-}
+    RefPtr<API::Object> getInjectedBundleInitializationUserData(WebProcessPool&)
+    {
+        GRefPtr<GVariant> data = ""
+        GUniquePtr<gchar> dataString(g_variant_print(data.get(), TRUE));
+        return API::String::create(String::fromUTF8(dataString.get()));
+    }
 
+    WebKitWebContext* m_webContext;
+};
+
 void attachInjectedBundleClientToContext(WebKitWebContext* webContext)
 {
-    WKContextInjectedBundleClientV1 wkInjectedBundleClient = {
-        {
-            1, // version
-            webContext, // clientInfo
-        },
-        didReceiveMessageFromInjectedBundle,
-        0, // didReceiveSynchronousMessageFromInjectedBundle
-        getInjectedBundleInitializationUserData
-    };
-    WKContextSetInjectedBundleClient(toAPI(&webkitWebContextGetProcessPool(webContext)), &wkInjectedBundleClient.base);
+    webkitWebContextGetProcessPool(webContext).setInjectedBundleClient(std::make_unique<WebKitInjectedBundleClient>(webContext));
 }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to