Created attachment 15719 [details] iPlayer SWF Unable to watch DoctorWho using the BBC's iPlayer. <http://www.bbc.co.uk/doctorwho/s4/episodes/?episode=S4_01&action=iplayer&pid=b009w049&title=Partners%20In%20Crime&summary=Donna%20is%20determined%20to%20find%20the%20Doctor%20again%20-%20even%20if%20it%20means%20braving%20the%20villainous%20Miss%20Foster%20and%20her%20hordes%20of%20sinister%20Adipose> The above URL contains the following Javascript fragment: <script type="text/javascript"> var so = new SWFObject("http://www.bbc.co.uk/iplayer/emp/flash/iplayer-external.swf", "bbc_emp_embed", "512", "323", "8", "#000000"); so.addParam("allowFullScreen", "true"); so.addParam("wmode", "opaque"); so.addVariable("config", "http://www.bbc.co.uk/iplayer/emp/xml/config.xml"); so.addVariable("metafile", "http://www.bbc.co.uk/iplayer/metafiles/episode/b009w049.xml"); so.useExpressInstall('http://www.bbc.co.uk/iplayer/emp/flash/expressinstall.swf'); var div = document.getElementById("bbc_emp"); if (so.installedVer.major == 0) { div.innerHTML = '<p style="padding:40px 60px 0;font-size:1.2em;font-weight:bold">You need to install Flash to play this programme</p><p style="padding:40px 60px 0"><a style="color:#ED007F" href="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash">Download the Flash player now</a></p><p style="padding:40px 60px 0">(This link will take you to a site outside bbc.co.uk. The BBC is not responsible for the content of software downloaded from external sites)</p>'; } else if (so.installedVer.major < 7) { div.innerHTML = '<p style="padding:40px 60px 0;font-size:1.2em;font-weight:bold">A newer version of Flash is needed to play this programme</p><p style="padding:40px 60px 0"><a style="color:#ED007F" href="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash">Download the Flash player now</a></p><p style="padding:40px 60px 0">(This link will take you to a site outside bbc.co.uk. The BBC is not responsible for the content of software downloaded from external sites)</p>'; } else so.write("bbc_emp"); </script> I have the iPlayer SWF file to this bug report and will include the other referenced files shortly. Thanks, Anand
Created attachment 15720 [details] iPlayer configuration
Created attachment 15721 [details] crossdomain file
Created attachment 15722 [details] iPlayer episode configuration
Created attachment 15723 [details] Episode cover image
Actually it isn't just DoctorWho that is affected. We are unable to watch wacky Germans too! <http://news.bbc.co.uk/1/hi/world/europe/7335351.stm>
So after investigating this more it turns out that the unicode consortium and Flash have a different idea of what unicode is. Or to be more techy: There is a set of unicode "code points" (read: values) that are considered invalid and must not appear in any string of text. Every other library we use (read: Pango or glib) will reject these values. Some might even crash. Flash will not, it seems to treat these as valid. This seems to need a somewhat larger refactoring + code audit so that we can allow all these "invalid" strings. I'm not yet sure how to best do that though. I'll however try a quick fix to work around the problem. I'll let you know about it when I've done it.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.