Title: [131606] trunk/Source/WebKit2
Revision
131606
Author
[email protected]
Date
2012-10-17 08:52:17 -0700 (Wed, 17 Oct 2012)

Log Message

[GTK] Don't use the C API internally in WebKitContextMenu
https://bugs.webkit.org/show_bug.cgi?id=96770

Reviewed by Gustavo Noronha Silva.

Using the C++ classes directly instead of the C API wrappers we
avoid a lot of toImpl/toAPI casts, string conversions and
allocations. The code is also a lot simpler and easier to read.

* UIProcess/API/gtk/WebKitContextMenu.cpp:
(webkitContextMenuCreate):
* UIProcess/API/gtk/WebKitContextMenuItem.cpp:
(webkitContextMenuItemCreate):
* UIProcess/API/gtk/WebKitContextMenuItemPrivate.h:
* UIProcess/API/gtk/WebKitContextMenuPrivate.h:
* UIProcess/API/gtk/WebKitWebView.cpp:
(webkitWebViewPopulateContextMenu):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (131605 => 131606)


--- trunk/Source/WebKit2/ChangeLog	2012-10-17 15:47:48 UTC (rev 131605)
+++ trunk/Source/WebKit2/ChangeLog	2012-10-17 15:52:17 UTC (rev 131606)
@@ -1,5 +1,25 @@
 2012-10-17  Carlos Garcia Campos  <[email protected]>
 
+        [GTK] Don't use the C API internally in WebKitContextMenu
+        https://bugs.webkit.org/show_bug.cgi?id=96770
+
+        Reviewed by Gustavo Noronha Silva.
+
+        Using the C++ classes directly instead of the C API wrappers we
+        avoid a lot of toImpl/toAPI casts, string conversions and
+        allocations. The code is also a lot simpler and easier to read.
+
+        * UIProcess/API/gtk/WebKitContextMenu.cpp:
+        (webkitContextMenuCreate):
+        * UIProcess/API/gtk/WebKitContextMenuItem.cpp:
+        (webkitContextMenuItemCreate):
+        * UIProcess/API/gtk/WebKitContextMenuItemPrivate.h:
+        * UIProcess/API/gtk/WebKitContextMenuPrivate.h:
+        * UIProcess/API/gtk/WebKitWebView.cpp:
+        (webkitWebViewPopulateContextMenu):
+
+2012-10-17  Carlos Garcia Campos  <[email protected]>
+
         [GTK] Don't use the C API internally in WebKitBackForwardList
         https://bugs.webkit.org/show_bug.cgi?id=96769
 

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitContextMenu.cpp (131605 => 131606)


--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitContextMenu.cpp	2012-10-17 15:47:48 UTC (rev 131605)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitContextMenu.cpp	2012-10-17 15:52:17 UTC (rev 131606)
@@ -20,10 +20,11 @@
 #include "config.h"
 #include "WebKitContextMenu.h"
 
+#include "ImmutableArray.h"
+#include "WebContextMenuItem.h"
 #include "WebKitContextMenuItemPrivate.h"
 #include "WebKitContextMenuPrivate.h"
 
-using namespace WebKit;
 using namespace WebCore;
 
 struct _WebKitContextMenuPrivate {
@@ -64,12 +65,12 @@
     }
 }
 
-WebKitContextMenu* webkitContextMenuCreate(WKArrayRef wkItems)
+WebKitContextMenu* webkitContextMenuCreate(ImmutableArray* items)
 {
     WebKitContextMenu* menu = webkit_context_menu_new();
-    for (size_t i = 0; i < WKArrayGetSize(wkItems); ++i) {
-        WKContextMenuItemRef wkItem = static_cast<WKContextMenuItemRef>(WKArrayGetItemAtIndex(wkItems, i));
-        webkit_context_menu_prepend(menu, webkitContextMenuItemCreate(wkItem));
+    for (size_t i = 0; i < items->size(); ++i) {
+        WebContextMenuItem* item = static_cast<WebContextMenuItem*>(items->at(i));
+        webkit_context_menu_prepend(menu, webkitContextMenuItemCreate(item));
     }
     menu->priv->items = g_list_reverse(menu->priv->items);
 

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitContextMenuItem.cpp (131605 => 131606)


--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitContextMenuItem.cpp	2012-10-17 15:47:48 UTC (rev 131605)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitContextMenuItem.cpp	2012-10-17 15:52:17 UTC (rev 131606)
@@ -34,7 +34,6 @@
 #include <wtf/gobject/GOwnPtr.h>
 #include <wtf/gobject/GRefPtr.h>
 
-using namespace WebKit;
 using namespace WebCore;
 
 struct _WebKitContextMenuItemPrivate {
@@ -91,10 +90,10 @@
         webkitContextMenuSetParentItem(subMenu.get(), item);
 }
 
-WebKitContextMenuItem* webkitContextMenuItemCreate(WKContextMenuItemRef wkItem)
+WebKitContextMenuItem* webkitContextMenuItemCreate(WebContextMenuItem* webItem)
 {
     WebKitContextMenuItem* item = WEBKIT_CONTEXT_MENU_ITEM(g_object_new(WEBKIT_TYPE_CONTEXT_MENU_ITEM, NULL));
-    WebContextMenuItemData* itemData = toImpl(wkItem)->data();
+    WebContextMenuItemData* itemData = webItem->data();
     item->priv->menuItem = WTF::adoptPtr(new ContextMenuItem(itemData->type(), itemData->action(), itemData->title(), itemData->enabled(), itemData->checked()));
     const Vector<WebContextMenuItemData>& subMenu = itemData->submenu();
     if (!subMenu.size())
@@ -104,7 +103,7 @@
     subMenuItems->reserveCapacity(subMenu.size());
     for (size_t i = 0; i < subMenu.size(); ++i)
         subMenuItems->append(WebContextMenuItem::create(subMenu[i]).get());
-    webkitContextMenuItemSetSubMenu(item, adoptGRef(webkitContextMenuCreate(toAPI(subMenuItems.get()))));
+    webkitContextMenuItemSetSubMenu(item, adoptGRef(webkitContextMenuCreate(subMenuItems.get())));
 
     return item;
 }

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitContextMenuItemPrivate.h (131605 => 131606)


--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitContextMenuItemPrivate.h	2012-10-17 15:47:48 UTC (rev 131605)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitContextMenuItemPrivate.h	2012-10-17 15:52:17 UTC (rev 131606)
@@ -23,7 +23,9 @@
 #include "WebKitContextMenuItem.h"
 #include "WebKitPrivate.h"
 
-WebKitContextMenuItem* webkitContextMenuItemCreate(WKContextMenuItemRef);
+using namespace WebKit;
+
+WebKitContextMenuItem* webkitContextMenuItemCreate(WebContextMenuItem*);
 GtkMenuItem* webkitContextMenuItemRelease(WebKitContextMenuItem*);
 void webkitContextMenuItemSetSubMenuFromGtkMenu(WebKitContextMenuItem*, GtkMenu*);
 

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitContextMenuPrivate.h (131605 => 131606)


--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitContextMenuPrivate.h	2012-10-17 15:47:48 UTC (rev 131605)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitContextMenuPrivate.h	2012-10-17 15:52:17 UTC (rev 131606)
@@ -23,7 +23,9 @@
 #include "WebKitContextMenu.h"
 #include "WebKitPrivate.h"
 
-WebKitContextMenu* webkitContextMenuCreate(WKArrayRef wkItems);
+using namespace WebKit;
+
+WebKitContextMenu* webkitContextMenuCreate(ImmutableArray* items);
 void webkitContextMenuPopulate(WebKitContextMenu*, Vector<WebCore::ContextMenuItem>&);
 void webkitContextMenuSetParentItem(WebKitContextMenu*, WebKitContextMenuItem*);
 WebKitContextMenuItem* webkitContextMenuGetParentItem(WebKitContextMenu*);

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp (131605 => 131606)


--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp	2012-10-17 15:47:48 UTC (rev 131605)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp	2012-10-17 15:52:17 UTC (rev 131606)
@@ -1577,7 +1577,7 @@
     WebContextMenuProxyGtk* contextMenuProxy = webkitWebViewBaseGetActiveContextMenuProxy(webViewBase);
     ASSERT(contextMenuProxy);
 
-    GRefPtr<WebKitContextMenu> contextMenu = adoptGRef(webkitContextMenuCreate(toAPI(proposedMenu)));
+    GRefPtr<WebKitContextMenu> contextMenu = adoptGRef(webkitContextMenuCreate(proposedMenu));
     if (webHitTestResult->isContentEditable())
         webkitWebViewCreateAndAppendInputMethodsMenuItem(webView, contextMenu.get());
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to