- 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)