Title: [106270] releases/WebKitGTK/webkit-1.6/Source/WebCore
Revision
106270
Author
[email protected]
Date
2012-01-30 11:37:41 -0800 (Mon, 30 Jan 2012)

Log Message

Merging r102958

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-1.6/Source/WebCore/ChangeLog (106269 => 106270)


--- releases/WebKitGTK/webkit-1.6/Source/WebCore/ChangeLog	2012-01-30 19:35:26 UTC (rev 106269)
+++ releases/WebKitGTK/webkit-1.6/Source/WebCore/ChangeLog	2012-01-30 19:37:41 UTC (rev 106270)
@@ -1,5 +1,21 @@
 2012-01-30  Martin Robinson  <[email protected]>
 
+        plugin crash
+
+        [GTK] Plugins sometimes crash WebKitGTK+ with Gdk-CRITICAL **: gdk_window_get_toplevel: assertion `GDK_IS_WINDOW (window)' failed
+        https://bugs.webkit.org/show_bug.cgi?id=73719
+
+        Reviewed by Philippe Normand.
+
+        No new tests. It's difficult to test or reproduce this exact situation
+        as it only occurs when running plugins under nspluginwrapper.
+
+        * plugins/gtk/PluginViewGtk.cpp:
+        (WebCore::PluginView::platformGetValue): Properly handle when the plugin tries to
+        get the window value when the GtkSocket is no longer realized.
+
+2012-01-30  Martin Robinson  <[email protected]>
+
         [GTK] The process freezes when you right click on windowless Flash
         https://bugs.webkit.org/show_bug.cgi?id=69123
 

Modified: releases/WebKitGTK/webkit-1.6/Source/WebCore/plugins/gtk/PluginViewGtk.cpp (106269 => 106270)


--- releases/WebKitGTK/webkit-1.6/Source/WebCore/plugins/gtk/PluginViewGtk.cpp	2012-01-30 19:35:26 UTC (rev 106269)
+++ releases/WebKitGTK/webkit-1.6/Source/WebCore/plugins/gtk/PluginViewGtk.cpp	2012-01-30 19:37:41 UTC (rev 106270)
@@ -694,7 +694,12 @@
         case NPNVnetscapeWindow: {
             GdkWindow* gdkWindow = gtk_widget_get_window(m_parentFrame->view()->hostWindow()->platformPageClient());
 #if defined(XP_UNIX)
-            *static_cast<Window*>(value) = GDK_WINDOW_XWINDOW(gdk_window_get_toplevel(gdkWindow));
+            GdkWindow* toplevelWindow = gdk_window_get_toplevel(gdkWindow);
+            if (!toplevelWindow) {
+                *result = NPERR_GENERIC_ERROR;
+                return true;
+            }
+            *static_cast<Window*>(value) = GDK_WINDOW_XWINDOW(toplevelWindow);
 #elif defined(GDK_WINDOWING_WIN32)
             *static_cast<HGDIOBJ*>(value) = GDK_WINDOW_HWND(gdkWindow);
 #endif
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to