Visit http://www.demorgen using Epiphany or Midori with webkitgtk 1.2.0. After load, a Flash item will be placed on top of the page. when scrolling, the element is moved to the correct place neare the bottom of the page. It should have been on this location automatically from the beginning.
URL should be http://www.demorgen.be
So far on current trunk I get an assertion (ASSERTION FAILED: m_state == ParsingState). Might be related, I'll comment it out, so see how far I'll get.
I've commented that assertion and bug cannot be reproduced on latest trunk. Will file another bug for this assertion with proper information.
The issue here seems to be http://trac.webkit.org/changeset/55238. Flash content is somehow getting an incorrect allocation when the plugin is added. Possibly the frameRect and the m_windowRect have diverged at this point. Here is a page that reproduces the original Java issue: http://download.oracle.com/javase/tutorial/deployment/applet/getStarted.html Removing the work around results in the Java applet not rendering until a scroll, focus change or resize.
Created attachment 83539 [details] Patch
Comment on attachment 83539 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=83539&action=review Since the patch seems to clearly improve some broken cases I guess we can go for it, but honestly we should either improve our tests or stop messing with this code. > Source/WebCore/plugins/gtk/PluginViewGtk.cpp:534 > + *(m_delayedAllocation.get()) = allocation; Can't we just store a 'GtkAllocation' in the struct and copy the values? Seems more straightforward.
Created attachment 83551 [details] Patch with a manual-test
I've managed to make a manual-test for this issue. It seems that it only appears when the Flash content is in an iframe. Uploaded a new patch.
Comment on attachment 83551 [details] Patch with a manual-test View in context: https://bugs.webkit.org/attachment.cgi?id=83551&action=review Thank you for making a test! > Source/WebCore/plugins/gtk/PluginViewGtk.cpp:534 > + *(m_delayedAllocation.get()) = allocation; g_memdup?
Committed r79495: <http://trac.webkit.org/changeset/79495>
Comment on attachment 83551 [details] Patch with a manual-test Thanks for the review! Landed with the g_memdup change.