Closed Bug 922055 Opened 11 years ago Closed 11 years ago

http://m.cnnmexico.com/videos can’t play a video

Categories

(Web Compatibility :: Site Reports, defect)

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED DUPLICATE of bug 938772

People

(Reporter: efrat, Unassigned)

References

()

Details

(Whiteboard: [lib-ooyalaplayer][h264] [country-mx] [js] [notcontactready])

Attachments

(2 files)

User Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.76 Safari/537.36

Steps to reproduce:

rowsed to "http://m.cnnmexico.com/videos" from Gaia browser

Tested on: 
User Agent String: Mozilla/5.0 (Mobile; rv:27.0) Gecko/27.0 Firefox/27.0

Model: nice
Software: Boot2Gecko 1.3.0.0-prerelease
Platform Version: 27.0a1
Build identifier: 20130928030636
Update channel: default


Actual results:

The site loads but browser is stuck and cannot play video, followed by the message: "This video isn't encoded for your device"


Expected results:

The video should have been displayed correctly for mobile 
Displays correctly on Firefox for Android and Chrome for Android
Assignee: nobody → hsteen
CNN Mexico uses the OOYala player here. It's expected to work..

In Fiddler, I see that the browser requests the video - but (surprisingly) it sends a partial request using Range: header. An error event also seems to fire on the VIDEO element, which is why OOYala player hides it and shows the "video isn't encoded" message. It's hidden by setting style.left to a negative value - if I undo that and call .play() the video will appear and start playing.

Trying to figure out why that error event fires..
Status: UNCONFIRMED → NEW
Ever confirmed: true
Whiteboard: [lib-ooyalaplayer][h264]
To be exact, here's the error handler:

_videoError:function(t,n){this.mb.publish(e.EVENTS.STREAM_PLAY_FAILED,n)}

Commenting out the body of that function makes the problem go away.
Assignee: hsteen → nobody
(In reply to Hallvord R. M. Steen from comment #1)
> In Fiddler, I see that the browser requests the video - but (surprisingly)
> it sends a partial request using Range: header.

All our media HTTP requests use a Range header. It's a more reliable way to detect Range support than checking for Accept-Ranges. No idea where the error event comes from, off the top of my head.
OS: All → Gonk (Firefox OS)
Hardware: All → ARM
Whiteboard: [lib-ooyalaplayer][h264] → [lib-ooyalaplayer][h264] [country-mx] [js] [contactready]
Karl: I don't understand why an error event fires for a video that we're in fact able to play - I would like some more analysis here before we contact them (or not) to really understand if it's a core bug.
Whiteboard: [lib-ooyalaplayer][h264] [country-mx] [js] [contactready] → [lib-ooyalaplayer][h264] [country-mx] [js] [notcontactready]
I got the same result on Windows. I enabled logging, and I cannot see an "error" being fired at the media element. I see from the log that there is a JS error happening:

JavaScript error: http://m.cnnmexico.com/videos/2013/10/24/el-codigo-de-prisiones-de-mexico-sera-reformado, line 22: unterminated string literal

Perhaps the player is catching an "error" event that's being dispatched due to the above error, and it's interpreting that as a video error. Based on the log the video is loading and playing fine.
Log on Windows with following log modules enabled:

NSPR_LOG_MODULES=MediaDecoder:5,nsMediaElement:5,nsMediaElementEvents:5 MOZ_QUIET=1
The first inline script in the head,

_gaq1.push(['_setCustomVar',
           2,                   // Slot 2
           'Videos_Mobile',     // indicamos que aqui se concentran la estadisticas de videos
           'Videos_Mundo,  // Canal de video
           3                    // nivel pagina
       ]);

Note how 'Videos_Mundo, //Canal de video is never terminated.
Error happens in Fennec too, but not Chrome on Windows 8. The <video> element appears to have (0,0) dimensions in IE10 on Windows 8.
That syntax error potentially breaks some Google Analytics tracking. If it fires any window.onerror handler, it happens way before the video tries to play (before the video element is even in the DOM) so there should be no way that error confuses the video player. To be sure, I fixed the quoting error from a Fiddler breakpoint, the video was still broken.
Attached file 922055b.htm - demo
This error is - bizarrely - caused by the BASE href tag. Try the demo (warning: relies on external JS and video tracks) - as-is, it doesn't work but just remove 

<base href="http://m.cnnmexico.com/"/>

and it will play fine without firing that error event. Wot??
Chris, can you see any reason for this behaviour?
Flags: needinfo?(cpearce)
Smells like bug 938772. I'd guess something in our load algorithm implementation is broken.
Depends on: 938772
Flags: needinfo?(cpearce)
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → DUPLICATE
Product: Tech Evangelism → Web Compatibility
Component: Mobile → Site Reports
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: