WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
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
Details
patch
(3.89 KB, patch)
2014-06-27 02:53 PDT
,
Philippe Normand
cgarcia
: review+
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
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
Created
attachment 233975
[details]
patch
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
Committed
r170526
: <
http://trac.webkit.org/changeset/170526
>
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug