[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-10851-g50815da

commit-queue at webkit.org commit-queue at webkit.org
Wed Dec 22 18:15:25 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 435f1a32ae0c5947a38cf1ec1a82fe85f1579b19
Author: commit-queue at webkit.org <commit-queue at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Thu Dec 9 03:33:39 2010 +0000

    2010-12-08  Nicolas Dufresne  <nicolas.dufresne at collabora.co.uk>
    
            Reviewed by Martin Robinson.
    
            Full page size flash plugins do not show in all situations
            https://bugs.webkit.org/show_bug.cgi?id=47742
    
            This patch moves the plugin widget size allocation after the
            NPP_SetWindow is called with the effect that the resize of Flash
            content no longer result in grey flash. This seems logical since the
            widget tree cannot be fully constructed before the plugin receives
            the new container window.
    
            Test: manual-tests/plugins/gtk-windowed-grey-glitch.html
    
            * plugins/gtk/PluginViewGtk.cpp:
            (WebCore::PluginView::setNPWindowIfNeeded):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@73587 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index d8acab5..569a91a 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,21 @@
+2010-12-08  Nicolas Dufresne  <nicolas.dufresne at collabora.co.uk>
+
+        Reviewed by Martin Robinson.
+
+        Full page size flash plugins do not show in all situations
+        https://bugs.webkit.org/show_bug.cgi?id=47742
+
+        This patch moves the plugin widget size allocation after the
+        NPP_SetWindow is called with the effect that the resize of Flash
+        content no longer result in grey flash. This seems logical since the
+        widget tree cannot be fully constructed before the plugin receives
+        the new container window.
+
+        Test: manual-tests/plugins/gtk-windowed-grey-glitch.html
+
+        * plugins/gtk/PluginViewGtk.cpp:
+        (WebCore::PluginView::setNPWindowIfNeeded):
+
 2010-12-08  David Hyatt  <hyatt at apple.com>
 
         Reviewed by Simon Fraser.
diff --git a/WebCore/manual-tests/plugins/gtk-windowed-grey-glitch.html b/WebCore/manual-tests/plugins/gtk-windowed-grey-glitch.html
new file mode 100644
index 0000000..73975eb
--- /dev/null
+++ b/WebCore/manual-tests/plugins/gtk-windowed-grey-glitch.html
@@ -0,0 +1,20 @@
+<html>
+<script type="text/javascript">
+  function openFullScreenFlash() {
+      window.open("test.swf","","width=200,height=200");
+  }
+</script>
+<head>
+  <title>Test grey glitch with fullscreen Flash animation (but 47742)</title>
+</head>
+<body>
+  <p>This manual test is used to test <a href="https://bugs.webkit.org/show_bug.cgi?id=47742">bug 47742</a>.</p>
+  <ul>
+    <li>1. Click on the button to open popup with full screen flash animation.</li>
+    <li>2. Make sure the popup content is not grey.</li>
+    <li>3. Resize the popup. </li>
+    <li>4. Make sure the resize does not produce grey flash (especially when scaling down).</li>
+  </ul>
+  <input type="button" value="Open fullscreen Flash" onclick="openFullScreenFlash();"/>
+</body>
+</html>
diff --git a/WebCore/plugins/gtk/PluginViewGtk.cpp b/WebCore/plugins/gtk/PluginViewGtk.cpp
index 35f8ee2..925ab79 100644
--- a/WebCore/plugins/gtk/PluginViewGtk.cpp
+++ b/WebCore/plugins/gtk/PluginViewGtk.cpp
@@ -492,15 +492,6 @@ void PluginView::setNPWindowIfNeeded()
         m_npWindow.clipRect.top = max(0, m_clipRect.y());
         m_npWindow.clipRect.right = m_clipRect.x() + m_clipRect.width();
         m_npWindow.clipRect.bottom = m_clipRect.y() + m_clipRect.height();
-
-        GtkAllocation allocation = { m_windowRect.x(), m_windowRect.y(), m_windowRect.width(), m_windowRect.height() };
-        gtk_widget_size_allocate(platformPluginWidget(), &allocation);
-#if defined(XP_UNIX)
-        if (!m_needsXEmbed) {
-            gtk_xtbin_set_position(GTK_XTBIN(platformPluginWidget()), m_windowRect.x(), m_windowRect.y());
-            gtk_xtbin_resize(platformPluginWidget(), m_windowRect.width(), m_windowRect.height());
-        }
-#endif
     } else {
         m_npWindow.x = 0;
         m_npWindow.y = 0;
@@ -519,6 +510,17 @@ void PluginView::setNPWindowIfNeeded()
     m_plugin->pluginFuncs()->setwindow(m_instance, &m_npWindow);
     setCallingPlugin(false);
     PluginView::setCurrentPluginView(0);
+
+    if (m_isWindowed) {
+        GtkAllocation allocation = { m_windowRect.x(), m_windowRect.y(), m_windowRect.width(), m_windowRect.height() };
+        gtk_widget_size_allocate(platformPluginWidget(), &allocation);
+#if defined(XP_UNIX)
+        if (!m_needsXEmbed) {
+            gtk_xtbin_set_position(GTK_XTBIN(platformPluginWidget()), m_windowRect.x(), m_windowRect.y());
+            gtk_xtbin_resize(platformPluginWidget(), m_windowRect.width(), m_windowRect.height());
+        }
+#endif
+    }
 }
 
 void PluginView::setParentVisible(bool visible)

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list