RESOLVED FIXED 133605
[GTK] 8tracks.com triggers annoying pop-up window/installation of "About protocol source plugin" (GStreamer?)
https://bugs.webkit.org/show_bug.cgi?id=133605
Summary [GTK] 8tracks.com triggers annoying pop-up window/installation of "About prot...
Jiří Janoušek
Reported 2014-06-07 08:06:29 PDT
Hi, a few users of my WebKitGtk-based application (Nuvola Player) reported that an annoying pop-up window at 8tracks.com is shown when a new song is played from the playlist. The text varies: "Required plugin not found - Nuvola Player requires to install plugins to support the following multimedia feature: ABOUT protocol source." "gnome-packagekit-session requires an additional plugin for this operation. The following plugin is required: ABOUT protocol source. Do you want to search for this now?" "Invalid commandline. The parameters passed to the application had an invalid format. Please file a bug! The parameters were: gstreamer|1.0|nuvolaplayer|ABOUT protocol source|urisource-about" The issue affects both WebKitGtk and WebKit2Gtk, for example using WebKit2Gtk 2.4.2 MiniBrowser on Debian Jessie: - Run /usr/lib/x86_64-linux-gnu/webkit2gtk-3.0/libexec/MiniBrowser --enable-plugins=false http://8tracks.com/ellejolene/if-your-life-were-a-pixar-film - Click Play button - Click Skip to next song button - A popup window is shown I suspect 8tracks.com does some kind of check for HTML5 audio support and it triggers installation of missing GStreamer plugin. Is it possible to get rid of that pop-up window? 8tracks.com works great with WebKitGtk + GStreamer otherwise, but user experience suffers. Thank you.
Attachments
GST_DEBUG="webkit*:5" MiniBrowser (83.20 KB, text/plain)
2014-06-22 11:03 PDT, Jiří Janoušek
no flags
patch (3.89 KB, patch)
2014-06-27 02:53 PDT, Philippe Normand
cgarcia: review+
Philippe Normand
Comment 1 2014-06-08 23:27:07 PDT
I can't seem to reproduce that issue here... But I see a bunch of these warnings: CONSOLE ERROR Blocked a frame with origin "https://www.facebook.com" from accessing a frame with origin "http://8tracks.com". The frame requesting access has a protocol of "https", the frame being accessed has a protocol of "about". Protocols must match.
Jiří Janoušek
Comment 2 2014-06-09 12:39:51 PDT
I don't think these "Blocked a frame with origin" warnings are irrelevant for this issue. Which version of WebKitGtk and GStreamer have you tested? Maybe the issue has been fixed in the latest/development version. - I can reproduce it with WebKitGtk 2.4.2 + GStreamer 1.2.4 (Debian Jessie) and with WebKitGtk 2.4.0 + GStreamer 1.2.3 (Ubuntu 14.04). - The issue is not reproducible with WebKitGtk 1.10.2 + GStreamer 1.2.0 (Ubuntu 13.10) and on older systems. - Also, the issue is *not* reproducible when web plugins (Flash) are enabled. According to xprop, the pop-up window is shown by "session-installer" on Ubuntu, "gstreamer-codec-install" on Debian.
Philippe Normand
Comment 3 2014-06-21 00:46:33 PDT
This very much looks like a duplicate of bug 123158.
Philippe Normand
Comment 4 2014-06-21 00:47:07 PDT
Wrong bug, please ignore previous comment :P
Philippe Normand
Comment 5 2014-06-21 01:10:19 PDT
Well I'm using WebKit trunk and GStreamer git master and it works just fine here :) One issue though when I press the "Next" button, a GStreamer error is emitted: 0:00:14.370165986 10615 0x2a76590 WARN uridecodebin gsturidecodebin.c:1416:gen_source_element:<uridecodebin1> error: No URI handler implemented for "about". 0:00:14.374626133 10615 0x7f79bc0e2d90 FIXME default gstutils.c:3638:gst_pad_create_stream_id_internal:<appsrc1:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id 0:00:14.400080435 10615 0x2a76590 ERROR webkitmediaplayer ../../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:922:handleMessage: Error 12: No URI handler implemented for "about". (url=about:blank) But the next song starts playing anyway. Can you please run MiniBrowser with GST_DEBUG_NO_COLOR=1 and GST_DEBUG=3 and attach the log here? Please also try with GST_DEBUG="webkit*:5"
Jiří Janoušek
Comment 6 2014-06-22 11:03:54 PDT
Created attachment 233570 [details] GST_DEBUG="webkit*:5" MiniBrowser
Jiří Janoušek
Comment 7 2014-06-22 11:05:03 PDT
> WARN uridecodebin gsturidecodebin.c:1416:gen_source_element:<uridecodebin1> error: No URI handler implemented for "about". > FIXME default gstutils.c:3638:gst_pad_create_stream_id_internal:<appsrc1:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id Same as in my case. > ERROR webkitmediaplayer ../../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:922:handleMessage: Error 12: No URI handler implemented for "about". (url=about:blank) I cannot see this error on my system, Gst Install Plugin Helper is launched instead [1]. Is the Gst Install Plugin Helper functionality enabled in builds from trunk/git master? [1] https://developer.gnome.org/gst-plugins-libs/1.0/gst-plugins-base-libs-gstpbutilsinstallplugins.html > But the next song starts playing anyway. Yes, it does play, but this bug report is about the annoying dialog. $ GST_DEBUG_NO_COLOR=1 GST_DEBUG=3 /usr/lib/x86_64-linux-gnu/webkit2gtk-3.0/libexec/MiniBrowser --enable-plugins=false http://8tracks.com/ellejolene/if-your-life-were-a-pixar-film 0:00:03.898039105 5337 0x1839990 FIXME default gstutils.c:3648:gst_pad_create_stream_id_printf_valist:<appsrc0:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id 0:00:04.298987966 5337 0x7f18f00018d0 FIXME bin gstbin.c:4008:gst_bin_query: implement duration caching in GstBin again 0:00:04.299040775 5337 0x7f18f00018d0 FIXME bin gstbin.c:4008:gst_bin_query: implement duration caching in GstBin again 0:00:04.299057501 5337 0x7f18f00018d0 FIXME bin gstbin.c:4008:gst_bin_query: implement duration caching in GstBin again 0:00:04.299075456 5337 0x7f18f00018d0 FIXME bin gstbin.c:4008:gst_bin_query: implement duration caching in GstBin again 0:00:04.299089872 5337 0x7f18f00018d0 FIXME bin gstbin.c:4008:gst_bin_query: implement duration caching in GstBin again <Skip to next button clicked> 0:00:21.806909262 5337 0x7f18f00018d0 WARN uridecodebin gsturidecodebin.c:1398:gen_source_element:<uridecodebin1> error: No URI handler implemented for "about". 0:00:21.812233330 5337 0x7f18c81071e0 FIXME default gstutils.c:3648:gst_pad_create_stream_id_printf_valist:<appsrc1:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id invalid commandline '['gstreamer|1.0|WebKitWebProcess|ABOUT protocol source|urisource-about']' 0:00:22.068199089 5337 0x7f18c81071e0 WARN qtdemux qtdemux_types.c:196:qtdemux_type_get: unknown QuickTime node type iods 0:00:22.068237503 5337 0x7f18c81071e0 WARN qtdemux qtdemux_types.c:196:qtdemux_type_get: unknown QuickTime node type sgpd 0:00:22.068250653 5337 0x7f18c81071e0 WARN qtdemux qtdemux_types.c:196:qtdemux_type_get: unknown QuickTime node type sbgp 0:00:22.068288511 5337 0x7f18c81071e0 WARN qtdemux qtdemux.c:7977:qtdemux_parse_trak:<qtdemux0> unknown version 00000000 0:00:22.068433734 5337 0x7f18c81071e0 WARN qtdemux qtdemux.c:6740:qtdemux_parse_segments:<qtdemux0> streaming; discarding edit list segments 0:00:22.136309263 5337 0x7f18f00018d0 FIXME bin gstbin.c:4008:gst_bin_query: implement duration caching in GstBin again 0:00:22.136431534 5337 0x7f18f00018d0 FIXME bin gstbin.c:4008:gst_bin_query: implement duration caching in GstBin again 0:00:22.136477645 5337 0x7f18f00018d0 FIXME bin gstbin.c:4008:gst_bin_query: implement duration caching in GstBin again 0:00:22.136536062 5337 0x7f18f00018d0 FIXME bin gstbin.c:4008:gst_bin_query: implement duration caching in GstBin again 0:00:22.136579585 5337 0x7f18f00018d0 FIXME bin gstbin.c:4008:gst_bin_query: implement duration caching in GstBin again 0:00:22.158390890 5337 0x7f18f00018d0 FIXME bin gstbin.c:4008:gst_bin_query: implement duration caching in GstBin again
Philippe Normand
Comment 8 2014-06-22 12:24:15 PDT
The codec installer is not enabled in developer builds. Have you contacted the 8tracks webmaster? This clearly looks like a bug in their code, the media elements are not supposed to play about: urls...
Philippe Normand
Comment 9 2014-06-22 12:46:26 PDT
OTOH I think we could also have a black-list for the unsupported protocols within the player, that would prevent the codec installer from kicking in. :)
Jiří Janoušek
Comment 10 2014-06-26 13:08:12 PDT
> Have you contacted the 8tracks webmaster? This clearly looks like a bug in their code, the media elements are not supposed to play about: urls... I could contact the webmaster. However, the about: url causes troubles only in WebKit2Gtk and webmasters generally don't care about minor web browsers :-( The same issue affects also Jango.com and maybe other websites. > OTOH I think we could also have a black-list for the unsupported protocols within the player, that would prevent the codec installer from kicking in. :) About: URLs are generally considered as safe placeholder urls that do nothing, so it would make sense to catch them and don't attempt to play them :-)
Philippe Normand
Comment 11 2014-06-27 02:53:20 PDT
Sergio Villar Senin
Comment 12 2014-06-27 03:02:18 PDT
Comment on attachment 233975 [details] patch View in context: https://bugs.webkit.org/attachment.cgi?id=233975&action=review > Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:280 > + Why is the MediaPlayer getting that url? Don't we control which URLs are handled by the MediaPlayer ?
Carlos Garcia Campos
Comment 13 2014-06-27 03:05:05 PDT
Comment on attachment 233975 [details] patch View in context: https://bugs.webkit.org/attachment.cgi?id=233975&action=review > Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:279 > String cleanUrl(url); > > + if (kurl.isBlankURL()) > + return; That cleanUrl (that should be cleanURL) would be unused in case kurl is blank. Also, even if it was already there, I'm not sure kurl is a good name . . .
Philippe Normand
Comment 14 2014-06-27 03:29:28 PDT
(In reply to comment #12) > (From update of attachment 233975 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=233975&action=review > > > Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:280 > > + > > Why is the MediaPlayer getting that url? Don't we control which URLs are handled by the MediaPlayer ? The MediaPlayer doesn't filter urls AFAIK. Since the mac port players don't seem to have this issue I wrote the patch at the GStreamer player level
Philippe Normand
Comment 15 2014-06-27 04:29:17 PDT
Note You need to log in before you can comment on or make changes to this bug.