Title: [191282] trunk/Source/WebKit2
- Revision
- 191282
- Author
- commit-qu...@webkit.org
- Date
- 2015-10-19 02:13:43 -0700 (Mon, 19 Oct 2015)
Log Message
[EFL] Implement WebContextMenuProxyEfl::showContextMenu after r191194
https://bugs.webkit.org/show_bug.cgi?id=150310
Patch by Hunseop Jeong <hs85.je...@samsung.com> on 2015-10-19
Reviewed by Gyuyoung Kim.
showContextMenu() doesn't work correctly after r191194 in EFL port.
This patch implements WebContextMenuProxyEfl::showContextMenu.
* UIProcess/efl/WebContextMenuProxyEfl.cpp:
(WebKit::WebContextMenuProxyEfl::WebContextMenuProxyEfl):
(WebKit::WebContextMenuProxyEfl::showContextMenu):
(WebKit::WebContextMenuProxyEfl::hideContextMenu):
* UIProcess/efl/WebContextMenuProxyEfl.h:
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (191281 => 191282)
--- trunk/Source/WebKit2/ChangeLog 2015-10-19 08:56:28 UTC (rev 191281)
+++ trunk/Source/WebKit2/ChangeLog 2015-10-19 09:13:43 UTC (rev 191282)
@@ -1,3 +1,19 @@
+2015-10-19 Hunseop Jeong <hs85.je...@samsung.com>
+
+ [EFL] Implement WebContextMenuProxyEfl::showContextMenu after r191194
+ https://bugs.webkit.org/show_bug.cgi?id=150310
+
+ Reviewed by Gyuyoung Kim.
+
+ showContextMenu() doesn't work correctly after r191194 in EFL port.
+ This patch implements WebContextMenuProxyEfl::showContextMenu.
+
+ * UIProcess/efl/WebContextMenuProxyEfl.cpp:
+ (WebKit::WebContextMenuProxyEfl::WebContextMenuProxyEfl):
+ (WebKit::WebContextMenuProxyEfl::showContextMenu):
+ (WebKit::WebContextMenuProxyEfl::hideContextMenu):
+ * UIProcess/efl/WebContextMenuProxyEfl.h:
+
2015-10-18 Csaba Osztrogonác <o...@webkit.org>
[WK2] Simplify unused return warning in WKRetainPtr.h
Modified: trunk/Source/WebKit2/UIProcess/efl/WebContextMenuProxyEfl.cpp (191281 => 191282)
--- trunk/Source/WebKit2/UIProcess/efl/WebContextMenuProxyEfl.cpp 2015-10-19 08:56:28 UTC (rev 191281)
+++ trunk/Source/WebKit2/UIProcess/efl/WebContextMenuProxyEfl.cpp 2015-10-19 09:13:43 UTC (rev 191282)
@@ -28,7 +28,9 @@
#if ENABLE(CONTEXT_MENUS)
+#include "APIContextMenuClient.h"
#include "EwkView.h"
+#include "WebContextMenuItem.h"
#include "WebContextMenuItemData.h"
#include "WebPageProxy.h"
#include <WebCore/NotImplemented.h>
@@ -37,8 +39,10 @@
namespace WebKit {
-WebContextMenuProxyEfl::WebContextMenuProxyEfl(EwkView*, WebPageProxy&, const ContextMenuContextData& context, const UserData& userData)
+WebContextMenuProxyEfl::WebContextMenuProxyEfl(EwkView* ewkView, WebPageProxy& page, const ContextMenuContextData& context, const UserData& userData)
: WebContextMenuProxy(context, userData)
+ , m_ewkView(ewkView)
+ , m_page(page)
{
}
@@ -48,7 +52,31 @@
void WebContextMenuProxyEfl::showContextMenu()
{
- notImplemented();
+ Vector<RefPtr<WebContextMenuItem>> proposedAPIItems;
+ for (auto& item : m_context.menuItems()) {
+ if (item.action() != ContextMenuItemTagShareMenu)
+ proposedAPIItems.append(WebContextMenuItem::create(item));
+ }
+
+ Vector<RefPtr<WebContextMenuItem>> clientItems;
+ bool useProposedItems = true;
+
+ if (m_page.contextMenuClient().getContextMenuFromProposedMenu(m_page, proposedAPIItems, clientItems, m_context.webHitTestResultData(), m_page.process().transformHandlesToObjects(m_userData.object()).get()))
+ useProposedItems = false;
+
+ const Vector<RefPtr<WebContextMenuItem>>& items = useProposedItems ? proposedAPIItems : clientItems;
+
+ if (items.isEmpty())
+ return;
+
+ Vector<RefPtr<API::Object>> menuItems;
+ menuItems.reserveInitialCapacity(items.size());
+
+ for (const auto& menuItem : items)
+ menuItems.uncheckedAppend(menuItem);
+
+ if (m_ewkView)
+ m_ewkView->showContextMenu(toAPI(m_context.menuLocation()), toAPI(API::Array::create(WTF::move(menuItems)).ptr()));
}
void WebContextMenuProxyEfl::hideContextMenu()
Modified: trunk/Source/WebKit2/UIProcess/efl/WebContextMenuProxyEfl.h (191281 => 191282)
--- trunk/Source/WebKit2/UIProcess/efl/WebContextMenuProxyEfl.h 2015-10-19 08:56:28 UTC (rev 191281)
+++ trunk/Source/WebKit2/UIProcess/efl/WebContextMenuProxyEfl.h 2015-10-19 09:13:43 UTC (rev 191282)
@@ -54,6 +54,9 @@
private:
WebContextMenuProxyEfl(EwkView*, WebPageProxy&, const ContextMenuContextData&, const UserData&);
+
+ EwkView* m_ewkView;
+ WebPageProxy& m_page;
};
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes