GNOME Bugzilla – Bug 432778
Totem-mozplug doesn't handle IDN-domains
Last modified: 2010-05-22 09:45:11 UTC
Please describe the problem: What i think is happening is that Firfox hands over the IDN-domain to totem-mozplug in utf8, not ace-encoding it first. And it seems totem doesn't support IDN-domains. Steps to reproduce: 1. Go to a IDN domain with an embedded video 2. See totem-mozplug try to download the video with a strange url. Actual results: The video doesn't play Expected results: To see the video Does this happen every time? Yes Other information: Gnome should really embrace IDN.
What errors do you see? How do I test it (ie. test URL?) Which backend do you use for Totem? What's the output of "firefox -debug" when you try to reproduce this problem?
Well i don't really get any error. Just a wierd Url in the statusbar of firefox (might be firefox doing something funny when handing over the url). I use the gstreamer backend. Will do -debug in a minute in the meantime here is a web page for you to replicate the problem. http://www.kåremåla.se/testcase.html or http://www.xn--kremla-iuad.se/testcase.html
Created attachment 86883 [details] firefox accessing a similar webpage (gallery2) with -debug
The test page is gone, and I'm still not sure what the problem is. Could you put the test page back up, as well as show the problem in a screenshot for example? Cheers
Sorry about that, got lost in a server migration; should work now, though. The only other anomaly, except the video not playing, is in the status bar of firefox (see screenshot testcase_html.png).
Created attachment 95054 [details] Firefox statusbar while trying to access the video
I can download the file just fine, using: http://www.xn--kremla-iuad.se/graff-demo-2.avi as the URL, but I added more debug to the totem plugin, and the data never seems to start streaming. Christian, is a Mozilla problem?
$ echo "http://www.kåremåla.se/testcase.html" | iconv -f latin1 -t utf-8 http://www.kÃ¥remÃ¥la.se/testcase.html Yes, this is a gecko bug. The plugin host interprets the URL we use in GetURL as latin1, not UTF-8. I can't test it since the testcase is gone from the web, but his patch might fix it: http://www.gnome.org/~chpe/patches/pluginhost-uri-idn-fix.diff
David, could you leave the testcase online please? :)
Better patch: http://www.gnome.org/~chpe/patches/pluginhost-uri-idn-fix-2.diff
The testcase is back on-line. With ff2.0, I get this: ** Message: NewStream mimetype 'video/x-msvideo' URL 'http://www.kåremåla.se/graff-demo-2.avi' ** Message: Viewer not ready, aborting stream TotemEmbedded-Message: Viewer state: STOPPED TotemEmbedded-Message: Viewer: Controls height is 26px ** Message: SetWindow reply ** Message: ViewerReady ** Message: IsSchemeSupported scheme 'http': yes TotemEmbedded-Message: totem_embedded_open_stream called: uri http://www.kåremåla.se/graff-demo-2.avi, base_uri: http://www.kåremåla.se/testcase.html TotemEmbedded-Message: totem_embedded_open_internal 'fd://0' is-browser-stream 1 start-play 1 TotemEmbedded-Message: BEFORE _open TotemEmbedded-Message: AFTER _open (ret: 1) TotemEmbedded-Message: Viewer state: PLAYING ** Message: OpenStream reply ** Message: URLNotify URL 'http://www.kåremåla.se/graff-demo-2.avi' reason 2 ** Message: Failed to get stream where the URLNotify only comes when I load a new page (or quit the browser). In ff trunk on xulrunner with my patch: ** Message: NewStream mimetype 'video/x-msvideo' URL 'http://www.kåremåla.se/graff-demo-2.avi' ** Message: Viewer not ready, aborting stream Viewer: PID 24426, args: /opt/totem-gst/libexec/totem-plugin-viewer --plugin-type gmp --user-agent Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9b4pre) Gecko/2008021720 Minefield/3.0b4pre --mimetype video/x-msvideo ** Message: Viewer DBus interface name is 'org.gnome.totem.PluginViewer_24426' ** Message: NameOwnerChanged old-owner '' new-owner ':1.41' ** Message: Viewer now connected to the bus ** Message: ViewerSetup ** Message: Calling SetWindow ** Message: NameOwnerChanged old-owner '' new-owner ':1.41' ** Message: Already have owner, why are we notified again? Viewer: SetWindow XID 73402059 size 640:530 TotemEmbedded-Message: Viewer state: STOPPED TotemEmbedded-Message: Viewer: Controls height is 26px ** Message: SetWindow reply ** Message: ViewerReady ** Message: IsSchemeSupported scheme 'http': yes TotemEmbedded-Message: totem_embedded_open_stream called: uri http://www.kåremåla.se/graff-demo-2.avi, base_uri: http://www.kåremåla.se/testcase.html TotemEmbedded-Message: totem_embedded_open_internal 'fd://0' is-browser-stream 1 start-play 1 TotemEmbedded-Message: BEFORE _open TotemEmbedded-Message: AFTER _open (ret: 1) TotemEmbedded-Message: Viewer state: PLAYING ** Message: OpenStream reply ** Message: NewStream mimetype 'video/x-msvideo' URL 'http://www.kåremåla.se/graff-demo-2.avi' ** Message: Is unsupported mime-type 'video/x-msvideo' ** Message: Is not playlist: totem_pl_parser_can_parse_from_data failed (len 1119) ** Message: don't know how to handle video/x-divx, divxversion=(int)4, framerate=(fraction)25/1, width=(int)800, height=(int)480 0:00:04.056546994 24426 0x807e1b0 ERROR totem bacon-video-widget-gst-0.10.c:324:bvw_error_msg: message = You do not have a decoder installed to handle this file. You might need to install the necessary plugins. 0:00:04.056597506 24426 0x807e1b0 ERROR totem bacon-video-widget-gst-0.10.c:326:bvw_error_msg: domain = 1848 (gst-stream-error-quark) 0:00:04.056614472 24426 0x807e1b0 ERROR totem bacon-video-widget-gst-0.10.c:327:bvw_error_msg: code = 6 0:00:04.056629087 24426 0x807e1b0 ERROR totem bacon-video-widget-gst-0.10.c:328:bvw_error_msg: debug = gstplaybasebin.c(2284): prepare_output (): /play 0:00:04.056644581 24426 0x807e1b0 ERROR totem bacon-video-widget-gst-0.10.c:329:bvw_error_msg: source = <play> 0:00:04.056678496 24426 0x807e1b0 ERROR totem bacon-video-widget-gst-0.10.c:330:bvw_error_msg: uri = fd://0 ** Message: Error: You do not have a decoder installed to handle this file. You might need to install the necessary plugins. gstplaybasebin.c(2284): prepare_output (): /play TotemEmbedded-Message: Viewer state: STOPPED TotemEmbedded-Message: totem_embedded_set_error: 'The playback of this movie requires a DivX MPEG-4 Version 4 decoder plugin which is not installed.' TotemEmbedded-Message: totem_embedded_set_error_logo called by browser plugin ** Message: StopStream signal received ** Message: DestroyStream reason 1 ** Message: URLNotify URL 'http://www.kåremåla.se/graff-demo-2.avi' reason 1 So it seems to get the file but aborts because I don't have the right gstreamer plugins. -> PATCH WORKS! :)
Yay! Could you file a bug against Firefox and close this bug as NOTGNOME?
Can someone test this with unmodified xulrunner1.9 on firefox 3.0, so we're sure it's not an unrelated gecko 1.8/1.9 difference that's solving this?
It now seems to work just fine with the current xulrunner in Fedora 9 (xulrunner-1.9-1.fc9.x86_64). I've opened bug 548287 because libsoup which GStreamer uses for the HTTP doesn't support IDN domain names. OK to close this bug? Christian, David?
Well, I'd say it would have to work in webkit too before we can declare it closed, but when I tried to test it, it appeared that webkit doesn't support IDN at all. So I guess this can be closed for now :(
We can certainly leave this opened until the WebKit backend supports it, but Totem itself seems to support IDN, whereas libsoup and WebKit would need support for it.
Reopening as per comment #16.
Test case is gone again.
Bastien: Hm, could you formulate a question for the reporter then? ;-) TIA!
(In reply to comment #19) > Bastien: Hm, could you formulate a question for the reporter then? ;-) TIA! There's no test case, so NEEDINFO.
Closing this bug report as no further information has been provided. Please feel free to reopen this bug if you can provide the information asked for. Thanks!