Cannot move seek-bar on HTML5 Youtube player

RESOLVED FIXED

Status

()

--
major
RESOLVED FIXED
5 years ago
4 years ago

People

(Reporter: alice0775, Unassigned)

Tracking

(Depends on: 1 bug)

34 Branch
x86_64
Windows 7
Points:
---

Firefox Tracking Flags

(firefox33 unaffected, firefox34 affected, firefox35 affected, firefox36 affected)

Details

(URL)

(Reporter)

Description

5 years ago
[Tracking Requested - why for this release]: Regression since Aurora34.0a2

The problem does not happen on Firefox33 and Chrome37.

Steps To Reproduce:
1. open https://www.youtube.com/watch?v=vQyYElELX3w
2. Wait spinning throbber (Skip ad if any)
3. Attempt to seek (regardless of range of buffering)

Actual Results:
Cannot move seek-bar

Expected Results:
You can move seek-bar
(Reporter)

Comment 1

5 years ago
Following UA spoofing helps.

Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0
(Reporter)

Comment 2

5 years ago
Ah, the UA spoofing makes youtube use Flash Player.

So, this problem is HTML5 youtube player on Firefox :(
Summary: Cannot move seek-bar Youtube → Cannot move seek-bar on HTML5 Youtube player
(Reporter)

Comment 3

5 years ago
Youtube is a major site. So, I change importance as "major".
Severity: normal → major
(Reporter)

Comment 4

5 years ago
Set media.fragmented-mp4.enabled = false helps.
Triggered by Bug 886196 - Support fragmented MP4 segments.
Blocks: 886196
Ouch. I can reproduce this as well. We're going to want to fix this. 

ni Hallvord for diagnosis as to the cause of this breakage.
tracking-firefox34: ? → +
tracking-firefox35: ? → +
Flags: needinfo?(hsteen)
(In reply to Alice0775 White from comment #0)
> [Tracking Requested - why for this release]: Regression since Aurora34.0a2
> 
> The problem does not happen on Firefox33 and Chrome37.
> 
> Steps To Reproduce:
> 1. open https://www.youtube.com/watch?v=vQyYElELX3w

This video is not available in my locale, or if I VPN into the MV office.

> 2. Wait spinning throbber (Skip ad if any)
> 3. Attempt to seek (regardless of range of buffering)

I can seek in other YouTube videos on Win8.1 and Win7 in today's Nightly.
Me too..

* Can't see the original video
* Can seek on most other videos I happened to test, even in last Nightly 35.0a1

I found one - "Science Live: Collosal Squid" at https://www.youtube.com/watch?v=8Yz_57uadUQ where I could not search, but on this one I'm not allowed to fast forward in Chrome either. Something to do about it being "Live"?
Flags: needinfo?(hsteen)
(Reporter)

Comment 8

5 years ago
Firefox: cannot move seek-bar. Chrome: can move seek-bar.
http://www.youtube.com/watch?v=VK2CE_K-CEU
http://www.youtube.com/watch?v=84AiE46erkk
Thanks, I can reproduce on this video!
I have the same problem in Firefox 32 if I make sure YT is using the HTML5 player.

All the JS mechanics that have to do with seeking seem OK. For example, somewhere in html5player.js:

a.yb = '1' != c.hlsdvr || Ah || xh && 5 > et ? !1 : !0

a.bb = '1' == c.live_playback;

Elsewhere in html5player.js:

c = !a.bb || a.yb

return {
allowSeeking: c

ends up with a true (as it should do). There's something more fundamental going on - possibly something about mouse events on <video> given that hovering the progress bar should pop up a small preview graphic, but doesn't in those broken builds.. TBC
There's an error thrown 

"TypeError: this.A is undefined"

this.A needs to not be undefined here:

return new os(a, b, c, this.A, this.A.isLive);

A bit further up, this.A is set to the second argument to a function:

    function ps(a, b) {
        this.A = b;

That argument comes from but it's supposed to be an instance of the function currently named Jr() and a few frames up it's referenced as a.k. This is where it gets interesting:

(a.bb || a.Sl) && '1' == a.o.as3fb || !eu() || a.Es || (a.adaptiveFormats ? a.k = Mr(vu(a, a.adaptiveFormats), a.Fs)  : a.P && (a.Of = !0, a.fa = !0))

So, essentially the engine will only get to the statement setting a.k if none of the preceding parts will evaluate to "true". See that !eu() statement? This is the eu function:

function eu() {
        return zs("android") && zs("chrome") && !Gc(29) ? !1 : !!(window.MediaSource || window.WebKitMediaSource || window.HTMLMediaElement && HTMLMediaElement.prototype.webkitSourceAddId)
    }

!eu() is true in Gecko and we don't reach the a.k = Mr(..), which cause this.A being undefined later on, and the exception means required event listeners for seeking by hovering and clicking the progress bar are not added.
I'm not sure if YT intends this exception to stop the event listeners from being added - however, it's not simply browser sniffing, and turning on media.mediasource.enabled in about:config fixes the problem.
(In reply to Hallvord R. M. Steen from comment #11)
> I'm not sure if YT intends this exception to stop the event listeners from
> being added - however, it's not simply browser sniffing, and turning on
> media.mediasource.enabled in about:config fixes the problem.

cpearce - Does ^ give you any hints as to how to fix this?
Flags: needinfo?(cpearce)
I can seek in http://www.youtube.com/watch?v=w_QAoDvlFCk in Nightly builds. Can someone re-test this bug? It may have been fixed by something else...

I cannot seek in http://www.youtube.com/watch?v=84AiE46erkk even in Release Firefox, so this video may be only seekable with MSE enabled... It is seekable in Chrome.
Flags: needinfo?(lmandel)
Flags: needinfo?(hsteen)
Flags: needinfo?(cpearce)
Flags: needinfo?(alice0775)
(In reply to Chris Pearce (:cpearce) from comment #13)
> I can seek in http://www.youtube.com/watch?v=w_QAoDvlFCk in Nightly builds.
> Can someone re-test this bug? It may have been fixed by something else...
> 
> I cannot seek in http://www.youtube.com/watch?v=84AiE46erkk even in Release
> Firefox, so this video may be only seekable with MSE enabled... It is
> seekable in Chrome.

I can reproduce the behaviour that you see with both videos on Nightly. The issue is that both Chrome and Safari can successfully seek in both videos. Why in the second case are we hitting the issue that Hallvord identifies and what can we do to fix this case?
Flags: needinfo?(lmandel)
Based on comment 10, that page only seeks if Media Source Extensions are enabled.
No longer blocks: 886196
Depends on: 778617
(Reporter)

Comment 16

4 years ago
(In reply to Chris Pearce (:cpearce) from comment #13)
> I can seek in http://www.youtube.com/watch?v=w_QAoDvlFCk in Nightly builds.
> Can someone re-test this bug? It may have been fixed by something else...
> 

I can seek in Nightly35.0a1 and Firefox32.

> I cannot seek in http://www.youtube.com/watch?v=84AiE46erkk even in Release
> Firefox, so this video may be only seekable with MSE enabled... It is
> seekable in Chrome.

I cannot seek in Nightly35.0a1.
I can seek in Firefox32.
Flags: needinfo?(alice0775)
(In reply to Alice0775 White from comment #16)
> (In reply to Chris Pearce (:cpearce) from comment #13)

> > I cannot seek in http://www.youtube.com/watch?v=84AiE46erkk even in Release
> > Firefox, so this video may be only seekable with MSE enabled... It is
> > seekable in Chrome.
> 
> I cannot seek in Nightly35.0a1.

In Nightly 35 I cannot seek. But setting the pref media.fragmented-mp4.enabled=false I still cannot seek the video. So I don't think this is a regression from MP4Reader.


> I can seek in Firefox32.

I can only seek in Firefox32 if I have Flash enabled. If I use the YouTube HTML5 player on the page in Firefox 32, I cannot seek. Are you sure you aren't using the Flash player?

This doesn't seem to be a regression to me.
(Reporter)

Comment 18

4 years ago
(In reply to Chris Pearce (:cpearce) from comment #17)
> (In reply to Alice0775 White from comment #16)
> > (In reply to Chris Pearce (:cpearce) from comment #13)
> 
> > > I cannot seek in http://www.youtube.com/watch?v=84AiE46erkk even in Release
> > > Firefox, so this video may be only seekable with MSE enabled... It is
> > > seekable in Chrome.
> > 
> > I cannot seek in Nightly35.0a1.
> 
> In Nightly 35 I cannot seek. But setting the pref
> media.fragmented-mp4.enabled=false I still cannot seek the video. So I don't
> think this is a regression from MP4Reader.
> 
> 
> > I can seek in Firefox32.
> 
> I can only seek in Firefox32 if I have Flash enabled. If I use the YouTube
> HTML5 player on the page in Firefox 32, I cannot seek. Are you sure you
> aren't using the Flash player?
> 
> This doesn't seem to be a regression to me.

The original video in comment#0 is not seekable even if setting media.fragmented-mp4.enabled=false in Nightly35.0a1(09-23). Maybe, the video or youtube mething changed.
So, Now, I cannot say this is regression.
Keywords: regression
Flags: needinfo?(hsteen)
Given that this isn't a regression but instead is just work that needs to be done for Media Source Extensions, I'm dropping tracking.
status-firefox36: --- → affected
tracking-firefox34: + → ---
tracking-firefox35: + → ---
This should be working now in firefox 36+.
Status: NEW → RESOLVED
Last Resolved: 4 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.