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

Reply via email to