Title: [188034] releases/WebKitGTK/webkit-2.8/Source/WebKit2
- Revision
- 188034
- Author
- carlo...@webkit.org
- Date
- 2015-08-06 01:50:53 -0700 (Thu, 06 Aug 2015)
Log Message
Merge r188031 - [GTK] Crash closing a page when a context menu is open
https://bugs.webkit.org/show_bug.cgi?id=147682
Reviewed by Sergio Villar Senin.
Implement WebContextMenuProxy::cancelTracking() to clear the
internal menu when the web page is closed.
* UIProcess/gtk/WebContextMenuProxyGtk.cpp:
(WebKit::WebContextMenuProxyGtk::cancelTracking):
(WebKit::WebContextMenuProxyGtk::~WebContextMenuProxyGtk): Deleted.
* UIProcess/gtk/WebContextMenuProxyGtk.h:
Modified Paths
Diff
Modified: releases/WebKitGTK/webkit-2.8/Source/WebKit2/ChangeLog (188033 => 188034)
--- releases/WebKitGTK/webkit-2.8/Source/WebKit2/ChangeLog 2015-08-06 08:47:54 UTC (rev 188033)
+++ releases/WebKitGTK/webkit-2.8/Source/WebKit2/ChangeLog 2015-08-06 08:50:53 UTC (rev 188034)
@@ -1,3 +1,18 @@
+2015-08-06 Carlos Garcia Campos <cgar...@igalia.com>
+
+ [GTK] Crash closing a page when a context menu is open
+ https://bugs.webkit.org/show_bug.cgi?id=147682
+
+ Reviewed by Sergio Villar Senin.
+
+ Implement WebContextMenuProxy::cancelTracking() to clear the
+ internal menu when the web page is closed.
+
+ * UIProcess/gtk/WebContextMenuProxyGtk.cpp:
+ (WebKit::WebContextMenuProxyGtk::cancelTracking):
+ (WebKit::WebContextMenuProxyGtk::~WebContextMenuProxyGtk): Deleted.
+ * UIProcess/gtk/WebContextMenuProxyGtk.h:
+
2015-07-28 Carlos Garcia Campos <cgar...@igalia.com>
[GTK] Use fastMalloc instead of g_slice
Modified: releases/WebKitGTK/webkit-2.8/Source/WebKit2/UIProcess/gtk/WebContextMenuProxyGtk.cpp (188033 => 188034)
--- releases/WebKitGTK/webkit-2.8/Source/WebKit2/UIProcess/gtk/WebContextMenuProxyGtk.cpp 2015-08-06 08:47:54 UTC (rev 188033)
+++ releases/WebKitGTK/webkit-2.8/Source/WebKit2/UIProcess/gtk/WebContextMenuProxyGtk.cpp 2015-08-06 08:50:53 UTC (rev 188034)
@@ -170,10 +170,7 @@
WebContextMenuProxyGtk::~WebContextMenuProxyGtk()
{
- for (auto iter = m_signalHandlers.begin(); iter != m_signalHandlers.end(); ++iter)
- g_signal_handler_disconnect(iter->value, iter->key);
-
- webkitWebViewBaseSetActiveContextMenuProxy(WEBKIT_WEB_VIEW_BASE(m_webView), 0);
+ cancelTracking();
}
void WebContextMenuProxyGtk::menuPositionFunction(GtkMenu* menu, gint* x, gint* y, gboolean* pushIn, WebContextMenuProxyGtk* popupMenu)
@@ -193,5 +190,15 @@
*pushIn = FALSE;
}
+void WebContextMenuProxyGtk::cancelTracking()
+{
+ for (auto iter = m_signalHandlers.begin(); iter != m_signalHandlers.end(); ++iter)
+ g_signal_handler_disconnect(iter->value, iter->key);
+ m_signalHandlers.clear();
+
+ webkitWebViewBaseSetActiveContextMenuProxy(WEBKIT_WEB_VIEW_BASE(m_webView), nullptr);
+ m_menu.setPlatformDescription(nullptr);
+}
+
} // namespace WebKit
#endif // ENABLE(CONTEXT_MENUS)
Modified: releases/WebKitGTK/webkit-2.8/Source/WebKit2/UIProcess/gtk/WebContextMenuProxyGtk.h (188033 => 188034)
--- releases/WebKitGTK/webkit-2.8/Source/WebKit2/UIProcess/gtk/WebContextMenuProxyGtk.h 2015-08-06 08:47:54 UTC (rev 188033)
+++ releases/WebKitGTK/webkit-2.8/Source/WebKit2/UIProcess/gtk/WebContextMenuProxyGtk.h 2015-08-06 08:50:53 UTC (rev 188034)
@@ -46,8 +46,9 @@
}
~WebContextMenuProxyGtk();
- virtual void showContextMenu(const WebCore::IntPoint&, const Vector<WebContextMenuItemData>&, const ContextMenuContextData&);
- virtual void hideContextMenu();
+ virtual void showContextMenu(const WebCore::IntPoint&, const Vector<WebContextMenuItemData>&, const ContextMenuContextData&) override;
+ virtual void hideContextMenu() override;
+ virtual void cancelTracking() override;
void populate(Vector<WebCore::ContextMenuItem>&);
GtkMenu* gtkMenu() const { return m_menu.platformDescription(); }
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes