[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.22-985-g3c00f00
xan at webkit.org
xan at webkit.org
Wed Mar 17 18:05:42 UTC 2010
The following commit has been merged in the webkit-1.1 branch:
commit 31ddc1656648db2642120c041e94bc571ecfdc4f
Author: xan at webkit.org <xan at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Sat Feb 27 08:57:37 2010 +0000
WebCore:
2010-02-27 Xan Lopez <xlopez at igalia.com>
Reviewed by Gustavo Noronha.
Abort XEmbed plugin initialization if our parent is not anchored
in a widget hierarchy. This can happen when the browser window is
destroyed while the plugin is being loaded, and will lead to a
crash.
* plugins/gtk/PluginViewGtk.cpp:
(WebCore::PluginView::platformStart):
LayoutTests:
2010-02-27 Xan Lopez <xlopez at igalia.com>
Reviewed by Gustavo Noronha.
We now pass this test, unskip.
* platform/gtk/Skipped:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@55351 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 49f0d8a..2516ded 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,11 @@
+2010-02-27 Xan Lopez <xlopez at igalia.com>
+
+ Reviewed by Gustavo Noronha.
+
+ We now pass this test, unskip.
+
+ * platform/gtk/Skipped:
+
2010-02-26 Alexey Proskuryakov <ap at apple.com>
Reviewed by Anders Carlsson.
diff --git a/LayoutTests/platform/gtk/Skipped b/LayoutTests/platform/gtk/Skipped
index 6ffc18b..e2f25a3 100644
--- a/LayoutTests/platform/gtk/Skipped
+++ b/LayoutTests/platform/gtk/Skipped
@@ -3586,7 +3586,6 @@ plugins/embed-attributes-setting.html
plugins/get-url-with-blank-target.html
plugins/mouse-events.html
plugins/mouse-events-fixedpos.html
-plugins/open-and-close-window-with-plugin.html
plugins/plugin-javascript-access.html
# https://bugs.webkit.org/show_bug.cgi?id=30561
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 0b4114d..70bfc73 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,15 @@
+2010-02-27 Xan Lopez <xlopez at igalia.com>
+
+ Reviewed by Gustavo Noronha.
+
+ Abort XEmbed plugin initialization if our parent is not anchored
+ in a widget hierarchy. This can happen when the browser window is
+ destroyed while the plugin is being loaded, and will lead to a
+ crash.
+
+ * plugins/gtk/PluginViewGtk.cpp:
+ (WebCore::PluginView::platformStart):
+
2010-02-26 Pavel Feldman <pfeldman at chromium.org>
Reviewed by Timothy Hatcher.
diff --git a/WebCore/plugins/gtk/PluginViewGtk.cpp b/WebCore/plugins/gtk/PluginViewGtk.cpp
index 1847324..8f60a26 100644
--- a/WebCore/plugins/gtk/PluginViewGtk.cpp
+++ b/WebCore/plugins/gtk/PluginViewGtk.cpp
@@ -2,6 +2,7 @@
* Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
* Copyright (C) 2008 Collabora Ltd. All rights reserved.
* Copyright (C) 2009, 2010 Kakai, Inc. <brian at kakai.com>
+ * Copyright (C) 2010 Igalia S.L.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -828,16 +829,25 @@ bool PluginView::platformStart()
if (m_isWindowed) {
#if defined(XP_UNIX)
+ GtkWidget* pageClient = m_parentFrame->view()->hostWindow()->platformPageClient();
+
if (m_needsXEmbed) {
+ // If our parent is not anchored the startup process will
+ // fail miserably for XEmbed plugins a bit later on when
+ // we try to get the ID of our window (since realize will
+ // fail), so let's just abort here.
+ if (!gtk_widget_get_parent(pageClient))
+ return false;
+
setPlatformWidget(gtk_socket_new());
- gtk_container_add(GTK_CONTAINER(m_parentFrame->view()->hostWindow()->platformPageClient()), platformPluginWidget());
+ gtk_container_add(GTK_CONTAINER(pageClient), platformPluginWidget());
g_signal_connect(platformPluginWidget(), "plug-added", G_CALLBACK(plugAddedCallback), this);
g_signal_connect(platformPluginWidget(), "plug-removed", G_CALLBACK(plugRemovedCallback), NULL);
} else
- setPlatformWidget(gtk_xtbin_new(m_parentFrame->view()->hostWindow()->platformPageClient()->window, 0));
+ setPlatformWidget(gtk_xtbin_new(pageClient->window, 0));
#else
setPlatformWidget(gtk_socket_new());
- gtk_container_add(GTK_CONTAINER(m_parentFrame->view()->hostWindow()->platformPageClient()), platformPluginWidget());
+ gtk_container_add(GTK_CONTAINER(pageClient), platformPluginWidget());
#endif
} else {
setPlatformWidget(0);
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list