Title: [97000] trunk/Source/WebKit2
Revision
97000
Author
je...@apple.com
Date
2011-10-07 19:46:20 -0700 (Fri, 07 Oct 2011)

Log Message

Add WKPageContextMenuClient callback when context menu is dismissed
https://bugs.webkit.org/show_bug.cgi?id=69553

Add contextMenuDismissed callback to WKPageContextMenuClient, and bump the API
version of this client to 1 so we continue to work with old clients.

* Shared/APIClientTraits.cpp: Added array of interface sizes for WKPageContextMenuClient.
* Shared/APIClientTraits.h: Added APIClientTraits for WKPageContextMenuClient.

* UIProcess/API/C/WKPage.h: Added contextMenuDismissed callback to WKPageContextMenuClient and bumped kWKPageContextMenuClientCurrentVersion.

* UIProcess/WebPageContextMenuClient.cpp:
(WebKit::WebPageContextMenuClient::contextMenuDismissed): Added.

* UIProcess/WebPageContextMenuClient.h: Added WebPageContextMenuClient::contextMenuDismissed().

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::internalShowContextMenu): Notify client when context menu is dismissed.

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (96999 => 97000)


--- trunk/Source/WebKit2/ChangeLog	2011-10-08 02:22:21 UTC (rev 96999)
+++ trunk/Source/WebKit2/ChangeLog	2011-10-08 02:46:20 UTC (rev 97000)
@@ -1,3 +1,24 @@
+2011-10-07  Jeff Miller  <je...@apple.com>
+
+        Add WKPageContextMenuClient callback when context menu is dismissed
+        https://bugs.webkit.org/show_bug.cgi?id=69553
+
+        Add contextMenuDismissed callback to WKPageContextMenuClient, and bump the API
+        version of this client to 1 so we continue to work with old clients.
+
+        * Shared/APIClientTraits.cpp: Added array of interface sizes for WKPageContextMenuClient.
+        * Shared/APIClientTraits.h: Added APIClientTraits for WKPageContextMenuClient.
+
+        * UIProcess/API/C/WKPage.h: Added contextMenuDismissed callback to WKPageContextMenuClient and bumped kWKPageContextMenuClientCurrentVersion.
+
+        * UIProcess/WebPageContextMenuClient.cpp:
+        (WebKit::WebPageContextMenuClient::contextMenuDismissed): Added.
+
+        * UIProcess/WebPageContextMenuClient.h: Added WebPageContextMenuClient::contextMenuDismissed().
+
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::internalShowContextMenu): Notify client when context menu is dismissed.
+
 2011-10-07  Mark Hahnenberg  <mhahnenb...@apple.com>
 
         Remove getCallDataVirtual methods

Modified: trunk/Source/WebKit2/Shared/APIClientTraits.cpp (96999 => 97000)


--- trunk/Source/WebKit2/Shared/APIClientTraits.cpp	2011-10-08 02:22:21 UTC (rev 96999)
+++ trunk/Source/WebKit2/Shared/APIClientTraits.cpp	2011-10-08 02:46:20 UTC (rev 97000)
@@ -35,6 +35,11 @@
     sizeof(WKBundlePageLoaderClient)
 };
 
+const size_t APIClientTraits<WKPageContextMenuClient>::interfaceSizesByVersion[] = {
+    offsetof(WKPageContextMenuClient, contextMenuDismissed),
+    sizeof(WKPageContextMenuClient)
+};
+    
 const size_t APIClientTraits<WKPageUIClient>::interfaceSizesByVersion[] = {
     offsetof(WKPageUIClient, createNewPage),
     sizeof(WKPageUIClient)

Modified: trunk/Source/WebKit2/Shared/APIClientTraits.h (96999 => 97000)


--- trunk/Source/WebKit2/Shared/APIClientTraits.h	2011-10-08 02:22:21 UTC (rev 96999)
+++ trunk/Source/WebKit2/Shared/APIClientTraits.h	2011-10-08 02:46:20 UTC (rev 97000)
@@ -42,6 +42,10 @@
     static const size_t interfaceSizesByVersion[2];
 };
 
+template<> struct APIClientTraits<WKPageContextMenuClient> {
+    static const size_t interfaceSizesByVersion[2];
+};
+
 template<> struct APIClientTraits<WKPageUIClient>
 {
     static const size_t interfaceSizesByVersion[2];

Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPage.h (96999 => 97000)


--- trunk/Source/WebKit2/UIProcess/API/C/WKPage.h	2011-10-08 02:22:21 UTC (rev 96999)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPage.h	2011-10-08 02:46:20 UTC (rev 97000)
@@ -274,16 +274,22 @@
 // ContextMenu client
 typedef void (*WKPageGetContextMenuFromProposedContextMenuCallback)(WKPageRef page, WKArrayRef proposedMenu, WKArrayRef* newMenu, WKTypeRef userData, const void* clientInfo);
 typedef void (*WKPageCustomContextMenuItemSelectedCallback)(WKPageRef page, WKContextMenuItemRef contextMenuItem, const void* clientInfo);
+typedef void (*WKPageContextMenuDismissedCallback)(WKPageRef page, const void* clientInfo);
 
 struct WKPageContextMenuClient {
     int                                                                 version;
     const void *                                                        clientInfo;
+    
+    // Version 0
     WKPageGetContextMenuFromProposedContextMenuCallback                 getContextMenuFromProposedMenu;
     WKPageCustomContextMenuItemSelectedCallback                         customContextMenuItemSelected;
+    
+    // Version 1
+    WKPageContextMenuDismissedCallback                                  contextMenuDismissed;
 };
 typedef struct WKPageContextMenuClient WKPageContextMenuClient;
 
-enum { kWKPageContextMenuClientCurrentVersion = 0 };
+enum { kWKPageContextMenuClientCurrentVersion = 1 };
 
 WK_EXPORT WKTypeID WKPageGetTypeID();
 

Modified: trunk/Source/WebKit2/UIProcess/WebPageContextMenuClient.cpp (96999 => 97000)


--- trunk/Source/WebKit2/UIProcess/WebPageContextMenuClient.cpp	2011-10-08 02:22:21 UTC (rev 96999)
+++ trunk/Source/WebKit2/UIProcess/WebPageContextMenuClient.cpp	2011-10-08 02:46:20 UTC (rev 97000)
@@ -74,4 +74,12 @@
     m_client.customContextMenuItemSelected(toAPI(page), toAPI(item.get()), m_client.clientInfo);
 }
 
+void WebPageContextMenuClient::contextMenuDismissed(WebPageProxy* page)
+{
+    if (!m_client.contextMenuDismissed)
+        return;
+    
+    m_client.contextMenuDismissed(toAPI(page), m_client.clientInfo);
+}
+
 } // namespace WebKit

Modified: trunk/Source/WebKit2/UIProcess/WebPageContextMenuClient.h (96999 => 97000)


--- trunk/Source/WebKit2/UIProcess/WebPageContextMenuClient.h	2011-10-08 02:22:21 UTC (rev 96999)
+++ trunk/Source/WebKit2/UIProcess/WebPageContextMenuClient.h	2011-10-08 02:46:20 UTC (rev 97000)
@@ -40,6 +40,7 @@
 public:
     bool getContextMenuFromProposedMenu(WebPageProxy*, const Vector<WebContextMenuItemData>& proposedMenu, Vector<WebContextMenuItemData>& customMenu, APIObject* userData);
     void customContextMenuItemSelected(WebPageProxy*, const WebContextMenuItemData&);
+    void contextMenuDismissed(WebPageProxy*);
 };
 
 } // namespace WebKit

Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp (96999 => 97000)


--- trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp	2011-10-08 02:22:21 UTC (rev 96999)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp	2011-10-08 02:46:20 UTC (rev 97000)
@@ -2398,6 +2398,8 @@
         m_activeContextMenu->showContextMenu(menuLocation, proposedItems);
     else
         m_activeContextMenu->showContextMenu(menuLocation, items);
+    
+    m_contextMenuClient.contextMenuDismissed(this);
 }
 
 void WebPageProxy::contextMenuItemSelected(const WebContextMenuItemData& item)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to