Title: [160059] trunk/Source/WebKit2
Revision
160059
Author
[email protected]
Date
2013-12-03 16:36:00 -0800 (Tue, 03 Dec 2013)

Log Message

PageOverlayClientImpl should be a proper API::Client
https://bugs.webkit.org/show_bug.cgi?id=125199

Reviewed by Tim Horton.

* WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp:
(PageOverlayClientImpl::PageOverlayClientImpl):
(PageOverlayClientImpl::setAccessibilityClient):
(PageOverlayClientImpl::willMoveToWebPage):
(PageOverlayClientImpl::didMoveToWebPage):
(PageOverlayClientImpl::drawRect):
(PageOverlayClientImpl::mouseEvent):
(PageOverlayClientImpl::copyAccessibilityAttributeValue):
(PageOverlayClientImpl::copyAccessibilityAttributeNames):
(WKBundlePageOverlayCreate):
(WKBundlePageOverlaySetAccessibilityClient):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (160058 => 160059)


--- trunk/Source/WebKit2/ChangeLog	2013-12-04 00:19:12 UTC (rev 160058)
+++ trunk/Source/WebKit2/ChangeLog	2013-12-04 00:36:00 UTC (rev 160059)
@@ -1,5 +1,24 @@
 2013-12-03  Anders Carlsson  <[email protected]>
 
+        PageOverlayClientImpl should be a proper API::Client
+        https://bugs.webkit.org/show_bug.cgi?id=125199
+
+        Reviewed by Tim Horton.
+
+        * WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp:
+        (PageOverlayClientImpl::PageOverlayClientImpl):
+        (PageOverlayClientImpl::setAccessibilityClient):
+        (PageOverlayClientImpl::willMoveToWebPage):
+        (PageOverlayClientImpl::didMoveToWebPage):
+        (PageOverlayClientImpl::drawRect):
+        (PageOverlayClientImpl::mouseEvent):
+        (PageOverlayClientImpl::copyAccessibilityAttributeValue):
+        (PageOverlayClientImpl::copyAccessibilityAttributeNames):
+        (WKBundlePageOverlayCreate):
+        (WKBundlePageOverlaySetAccessibilityClient):
+
+2013-12-03  Anders Carlsson  <[email protected]>
+
         Initialize the PageBannerClientImpl API::Client
         https://bugs.webkit.org/show_bug.cgi?id=125198
 

Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp (160058 => 160059)


--- trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp	2013-12-04 00:19:12 UTC (rev 160058)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp	2013-12-04 00:36:00 UTC (rev 160059)
@@ -26,28 +26,37 @@
 #include "config.h"
 #include "WKBundlePageOverlay.h"
 
+#include "APIClient.h"
 #include "PageOverlay.h"
 #include "WKAPICast.h"
 #include "WKBundleAPICast.h"
 #include <WebCore/GraphicsContext.h>
 
+namespace API {
+
+template<> struct ClientTraits<WKBundlePageOverlayClientBase> {
+    typedef std::tuple<WKBundlePageOverlayClientV0> Versions;
+};
+
+template<> struct ClientTraits<WKBundlePageOverlayAccessibilityClientBase> {
+    typedef std::tuple<WKBundlePageOverlayAccessibilityClientV0> Versions;
+};
+
+}
+
 using namespace WebCore;
 using namespace WebKit;
 
-class PageOverlayClientImpl : public PageOverlay::Client {
+class PageOverlayClientImpl : API::Client<WKBundlePageOverlayClientBase>, public PageOverlay::Client {
 public:
-    explicit PageOverlayClientImpl(WKBundlePageOverlayClient* client)
-        : m_client()
-        , m_accessibilityClient()
+    explicit PageOverlayClientImpl(WKBundlePageOverlayClientBase* client)
     {
-        if (client)
-            m_client = *client;
+        initialize(client);
     }
 
-    virtual void setAccessibilityClient(WKBundlePageOverlayAccessibilityClient* client)
+    virtual void setAccessibilityClient(WKBundlePageOverlayAccessibilityClientBase* client)
     {
-        if (client)
-            m_accessibilityClient = *client;
+        m_accessibilityClient.initialize(client);
     }
 
 private:
@@ -62,7 +71,7 @@
         if (!m_client.willMoveToPage)
             return;
 
-        m_client.willMoveToPage(toAPI(pageOverlay), toAPI(page), m_client.clientInfo);
+        m_client.willMoveToPage(toAPI(pageOverlay), toAPI(page), m_client.base.clientInfo);
     }
     
     virtual void didMoveToWebPage(PageOverlay* pageOverlay, WebPage* page)
@@ -70,7 +79,7 @@
         if (!m_client.didMoveToPage)
             return;
 
-        m_client.didMoveToPage(toAPI(pageOverlay), toAPI(page), m_client.clientInfo);
+        m_client.didMoveToPage(toAPI(pageOverlay), toAPI(page), m_client.base.clientInfo);
     }
 
     virtual void drawRect(PageOverlay* pageOverlay, GraphicsContext& graphicsContext, const IntRect& dirtyRect)
@@ -78,7 +87,7 @@
         if (!m_client.drawRect)
             return;
 
-        m_client.drawRect(toAPI(pageOverlay), graphicsContext.platformContext(), toAPI(dirtyRect), m_client.clientInfo);
+        m_client.drawRect(toAPI(pageOverlay), graphicsContext.platformContext(), toAPI(dirtyRect), m_client.base.clientInfo);
     }
     
     virtual bool mouseEvent(PageOverlay* pageOverlay, const WebMouseEvent& event)
@@ -88,27 +97,27 @@
             if (!m_client.mouseDown)
                 return false;
 
-            return m_client.mouseDown(toAPI(pageOverlay), toAPI(event.position()), toAPI(event.button()), m_client.clientInfo);
+            return m_client.mouseDown(toAPI(pageOverlay), toAPI(event.position()), toAPI(event.button()), m_client.base.clientInfo);
         }
         case WebEvent::MouseUp: {
             if (!m_client.mouseUp)
                 return false;
 
-            return m_client.mouseUp(toAPI(pageOverlay), toAPI(event.position()), toAPI(event.button()), m_client.clientInfo);
+            return m_client.mouseUp(toAPI(pageOverlay), toAPI(event.position()), toAPI(event.button()), m_client.base.clientInfo);
         }
         case WebEvent::MouseMove: {
             if (event.button() == WebMouseEvent::NoButton) {
                 if (!m_client.mouseMoved)
                     return false;
 
-                return m_client.mouseMoved(toAPI(pageOverlay), toAPI(event.position()), m_client.clientInfo);
+                return m_client.mouseMoved(toAPI(pageOverlay), toAPI(event.position()), m_client.base.clientInfo);
             }
 
             // This is a MouseMove event with a mouse button pressed. Call mouseDragged.
             if (!m_client.mouseDragged)
                 return false;
 
-            return m_client.mouseDragged(toAPI(pageOverlay), toAPI(event.position()), toAPI(event.button()), m_client.clientInfo);
+            return m_client.mouseDragged(toAPI(pageOverlay), toAPI(event.position()), toAPI(event.button()), m_client.base.clientInfo);
         }
 
         default:
@@ -118,20 +127,19 @@
     
     virtual WKTypeRef copyAccessibilityAttributeValue(PageOverlay* pageOverlay, WKStringRef attribute, WKTypeRef parameter)
     {
-        if (!m_accessibilityClient.copyAccessibilityAttributeValue)
+        if (!m_accessibilityClient.client().copyAccessibilityAttributeValue)
             return 0;
-        return m_accessibilityClient.copyAccessibilityAttributeValue(toAPI(pageOverlay), attribute, parameter, m_client.clientInfo);
+        return m_accessibilityClient.client().copyAccessibilityAttributeValue(toAPI(pageOverlay), attribute, parameter, m_accessibilityClient.client().base.clientInfo);
     }
 
     virtual WKArrayRef copyAccessibilityAttributeNames(PageOverlay* pageOverlay, bool paramerizedNames)
     {
-        if (!m_accessibilityClient.copyAccessibilityAttributeNames)
+        if (!m_accessibilityClient.client().copyAccessibilityAttributeNames)
             return 0;
-        return m_accessibilityClient.copyAccessibilityAttributeNames(toAPI(pageOverlay), paramerizedNames, m_client.clientInfo);
+        return m_accessibilityClient.client().copyAccessibilityAttributeNames(toAPI(pageOverlay), paramerizedNames, m_accessibilityClient.client().base.clientInfo);
     }
     
-    WKBundlePageOverlayClient m_client;
-    WKBundlePageOverlayAccessibilityClient m_accessibilityClient;
+    API::Client<WKBundlePageOverlayAccessibilityClientBase> m_accessibilityClient;
 };
 
 WKTypeID WKBundlePageOverlayGetTypeID()
@@ -144,7 +152,7 @@
     if (wkClient && wkClient->version)
         return 0;
 
-    auto clientImpl = std::make_unique<PageOverlayClientImpl>(wkClient);
+    auto clientImpl = std::make_unique<PageOverlayClientImpl>(reinterpret_cast<WKBundlePageOverlayClientBase*>(wkClient));
 
     // FIXME: Looks like this leaks the clientImpl.
     return toAPI(PageOverlay::create(clientImpl.release()).leakRef());
@@ -154,7 +162,7 @@
 {
     if (client && client->version)
         return;
-    static_cast<PageOverlayClientImpl*>(toImpl(bundlePageOverlayRef)->client())->setAccessibilityClient(client);
+    static_cast<PageOverlayClientImpl*>(toImpl(bundlePageOverlayRef)->client())->setAccessibilityClient(reinterpret_cast<WKBundlePageOverlayAccessibilityClientBase*>(client));
 }
 
 void WKBundlePageOverlaySetNeedsDisplay(WKBundlePageOverlayRef bundlePageOverlayRef, WKRect rect)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to