RESOLVED FIXED Bug 98789
[GTK] Plugin don't display
https://bugs.webkit.org/show_bug.cgi?id=98789
Summary [GTK] Plugin don't display
Daniel Drake
Reported 2012-10-09 10:10:30 PDT
Since webkitgtk-1.9.90, plugins don't display properly. Testing <embed src="foo.ogg" width="100" height="100" /> with totem-mozplugin installed to handle such requests, using GtkLauncher. Reproduced on systems with and without OpenGL support available. When the page is loaded, the audio starts playing, but the video can't be seen - its all white. Moving the window around the screen doesn't cause any change. Maximizing the window causes the video to suddenly appear. Tracked this down; the regression was introduced by r126182 in bug #90085.
Attachments
Patch (1.67 KB, patch)
2012-10-09 12:58 PDT, Daniel Drake
no flags
Patch (3.41 KB, patch)
2012-10-09 15:29 PDT, Daniel Drake
no flags
Martin Robinson
Comment 1 2012-10-09 10:18:45 PDT
I can't test plugins easily, but could you check if removing the early-return in webkit_web_view_size_allocate fixes the issue?
Daniel Drake
Comment 2 2012-10-09 10:37:07 PDT
Thanks for the fast response. Commenting out the first return statement in webkit_web_view_size_allocate() (as follows) avoids the issue. if (allocation->width == oldAllocation.width && allocation->height == oldAllocation.height) /*return*/;
Martin Robinson
Comment 3 2012-10-09 10:40:31 PDT
Do you mind writing a patch that takes the same approach as webkitWebViewBaseSizeAllocate from ~/WebKit/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp?
Carlos Garcia Campos
Comment 4 2012-10-09 10:45:02 PDT
This is probably because you always have to allocate the children in size allocate. You can probably still avoid resizing the frame view if the size hasn't changed, but even if the size it's the same, the coords might have changed, so children need to be allocated.
Daniel Drake
Comment 5 2012-10-09 12:58:15 PDT
Martin Robinson
Comment 6 2012-10-09 13:05:14 PDT
Comment on attachment 167828 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=167828&action=review > Source/WebKit/gtk/webkit/webkitwebview.cpp:-875 > - gtk_widget_get_allocation(widget, &oldAllocation); > - > GTK_WIDGET_CLASS(webkit_web_view_parent_class)->size_allocate(widget, allocation); > - if (allocation->width == oldAllocation.width && allocation->height == oldAllocation.height) > - return; I think this is the wrong fix. Instead of simply ignoring whether or not the size has changed, you should pass the information to resizeWebViewFromAllocation and only keep the call to gtk_container_forall(GTK_CONTAINER(webView), updateChildAllocationFromPendingAllocation, 0); when the size hasn't changed. Please see the WebKitWebViewBase for an example.
Daniel Drake
Comment 7 2012-10-09 15:29:27 PDT
WebKit Review Bot
Comment 8 2012-10-09 19:11:34 PDT
Comment on attachment 167861 [details] Patch Clearing flags on attachment: 167861 Committed r130838: <http://trac.webkit.org/changeset/130838>
WebKit Review Bot
Comment 9 2012-10-09 19:11:38 PDT
All reviewed patches have been landed. Closing bug.
WebKit Review Bot
Comment 10 2012-10-09 23:00:35 PDT
Re-opened since this is blocked by bug 98860
Zan Dobersek
Comment 11 2012-10-09 23:43:32 PDT
(In reply to comment #10) > Re-opened since this is blocked by bug 98860 Sigh ... The rollout didn't help, the crashes are still there. Sorry for all the noise, I'll get this patch back into the tree.
Zan Dobersek
Comment 12 2012-10-10 00:39:46 PDT
(In reply to comment #11) > (In reply to comment #10) > > Re-opened since this is blocked by bug 98860 > > Sigh ... The rollout didn't help, the crashes are still there. Sorry for all the noise, I'll get this patch back into the tree. Rolled back in in r130867. http://trac.webkit.org/changeset/130867
Note You need to log in before you can comment on or make changes to this bug.