Closed Bug 1262149 Opened 4 years ago Closed 4 years ago

The 'To view this video please use the latest version of Safari' message is displayed when trying to play a video with quicktime player on Mac OS X 10.11

Categories

(Web Compatibility :: Desktop, defect)

defect
Not set

Tracking

(firefox45 wontfix, firefox46+ wontfix, firefox47+ verified, firefox48+ verified, firefox49 verified, firefox50 verified)

VERIFIED FIXED
Tracking Status
firefox45 --- wontfix
firefox46 + wontfix
firefox47 + verified
firefox48 + verified
firefox49 --- verified
firefox50 --- verified

People

(Reporter: mboldan, Assigned: karlcow)

References

()

Details

[Affected versions]:
- Firefox 44 RC, Firefox 45 RC, Firefox 46.0b8, Firefox 47.0a2 (2016-04-05) and Firefox 48.0a1 (2016-04-05)

[Affected platforms]:
- Mac OS X 10.11.1 and Mac OS X 10.11.4

[Steps to reproduce]: 
1. Launch Firefox.
2. Go to http://trailers.apple.com/ and play a video.

[Expected result]:
- The video is played with quicktime player.

[Actual result]:
- The 'To view this video please use the latest version of Safari' pop up is displayed and the video is not played.

[Regression range]:
- Since this issue is reproducible only with QuickTime plug-in 7.7.3 and just on one OS X, I was not able to determine if this is a regression or not.

[Additional notes]:
- This issue is reproducible only on Mac OS X 10.11. and with QuickTime 7.7.3.
- On other OS's the videos are played correctly.
[Tracking Requested - why for this release]:
Firefox users with OS X 10.11 and QuickTime 7.7.3 cannot playback video content requiring this video player and are prompted to use Safari instead.
Chris can you take a look? Do we allow only particular version of QuickTime?
Flags: needinfo?(cpearce)
Probably not a regression but tracking since we would like users to be able to play video.
This has nothing to do with Firefox, this is apple denying playback for any Firefox version greater than 10.

See: http://trailers.apple.com/trailers/global/v4/scripts/app/app.js

I think this code ( on line 108 ) is the culprit:

        app.isFirefox = ua.match('Firefox');
	if (app.isFirefox && ua.match(/Mac OS X 10[_\.](\d+)/i)){
		var fireVer = parseInt(ua.match(/Mac OS X 10[_\.](\d+)/i)[1]);
		if (fireVer > 10) {
			app.videoError = 'ref-firefox-version-error';
			// jqBody.prepend('<div class="page-warning" data-lang="ref-firefox-version-error"></div>');
		}
	}

What I think this is, is they're assuming that Firefox running on something greater than OS X 10.10 won't work, because Quicktime?

needinfo'ing Mike.
Flags: needinfo?(miket)
Yeah, that's strange. `fireVer` is actually checking what dot release of OSX the user is on -- it has nothing to do with the Firefox version.

This bit of code is interesting as well:

//check for video errors
if (app.videoError && app.isFirefox) {
					
  alert(app.langBank[app.videoError]);
}

It seems like they're trying to work around *some* video playback issues. It would be nice to know what those are (and if it still persists).

I wonder if this was related to Bug 1187103 (which appears to be fixed) and https://github.com/webcompat/web-bugs/issues/1470.

Karl, do we have any good contacts at Apple to ask about this?
Flags: needinfo?(miket) → needinfo?(kdubost)
From our QuickTime support page [1]:

Important: the QuickTime browser plugin is unavailable by default on Mac OS X 10.11 (El Capitan). Please see this support article for Apple's explanation and steps to make the plugin available to Firefox: If your web browser says that it's missing the QuickTime plug-in.

I guess this is why they're checking for OSX > 10.11.

If I spoof my UA to be Safari, the site tries to load those videos in a <video> tag, and playback fails. My guess is that's because the videos are QuickTime videos instead of actual MP4s. I note that Chrome gets served and plays those trailers fine.

jya: Can you spoof your UserAgent to Safari and figure out why we can't play trailers at http://trailers.apple.com/ please? We may need to add QuickTime playback support. :(

[1] https://support.mozilla.org/en-US/kb/quicktime-plugin-play-audio-and-video
Flags: needinfo?(cpearce) → needinfo?(jyavenard)
Last I tried, spoofing the user agent to Safari or Chrome got us served HTML5 videos, and playback worked.

will check again
This seems to be a duplicate of https://webcompat.com/issues/1470

My multiple attempt at contacting Apple failed so far. We had a brief good contacts with two persons, but it disappeared. My last try was with hober F2F. And he said he would filed a bug.
Flags: needinfo?(kdubost)
The issue isn't in Firefox per say, I'm certain we can play their quicktime video just fine.
There are several issues at hand:

1- If you present a Firefox user agent, it wants the quicktime plugin
2- The mp4 they now serve some weird mp4 that contains the URL on itself.

Example, try to play:
http://movietrailers.apple.com/movies/disney/thebfg/thebfg-tlr1b_480p.mov

you get a 134 bytes object that is made of:
[moov] size=8+126
  [rmra] size=8+118

the "rmra" containing another URL:
http://movietrailers.apple.com/movies/disney/thebfg/thebfg-tlr1b_h480p.mov

And this video plays just fine.

According to apple's QuickTime format documentation:
https://developer.apple.com/library/mac/documentation/QuickTime/QTFF/QTFFChap2/qtff2.html
"It is also possible to create a reference movie, a movie that refers to other movies; in this case the movie atom may contain only a reference movie atom ('rmra'). For details, see “Reference Movies”. Ultimately, the chain must end in either a standard movie atom, such as the one in Figure 2-1, or a compressed movie atom, which can be uncompressed to obtain the same structure.
"

This is certainly very new... They never use to serve that type of mp4, instead we got the normal .mov directly.

Chris, did you ever contact Apple about removing this limitation of them requiring quicktime plugin with firefox?

What's next, we implement support for the rmra atom and suddenly they start providing a "compressed movie atom" (which I have no idea what that is)
Flags: needinfo?(jyavenard) → needinfo?(cpeterson)
If you set the user agent to be chrome, then you get serve a proper mov file which plays fine.

So the issue is to be taken with Apple.
Replying for Chris
Look at the comments on https://webcompat.com/issues/1470

So if anyone is contacting Apple again about it, please 
1. say it here and https://webcompat.com/issues/1470
2. Mention:  Radar 22234592: trailers.apple.com serving QuickTime movies to Firefox
Flags: needinfo?(cpeterson)
I contacted an additional person at Apple that I trust a lot. Let's see.
Removing regression keyword because this is not a regression.

This problem also affects Firefox on Windows, but instead of showing the "To view this video please use the latest version of Safari." alert like OS X, the site replaces the video area with a child frame containing the trailers.apple.com home page.
OS: Mac OS X → All
My contact said he found the right person. They will come back to me later.
Probably relevant here too

Implement support for MP4 reference movies 
https://bugs.chromium.org/p/chromium/issues/detail?id=25431
Chris, is this still happening?  Did we hear anything from apple?
Flags: needinfo?(kdubost)
Flags: needinfo?(cpeterson)
Still happening for me on 46 beta 10 so presumably still true across the board. 
Do we have anything we can do here? If not, I will mark this wontfix for 46 so that I don't have to pay attention to it before we release.
I can reproduce something similar on Windows. In Firefox, it tries to load a quicktime movie and fails and actually ends up loading the apple trailers homepage in an <object> tag. It's a terrible experience.

If I user agent switcher to spoof the Chrome UA, then it uses <video> and works just fine.

Mihai, could you use user agent switcher to spoof a Chrome UA for mac: for example "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.1 Safari/537.36" and see if that fixes it?

If so, I think we should consider deploying a UA spoof specifically for apple trailers.
Flags: needinfo?(cpeterson) → needinfo?(mihai.boldan)
Liz see my comment in https://bugzilla.mozilla.org/show_bug.cgi?id=1262149#c14
Flags: needinfo?(kdubost) → needinfo?(lhenry)
The trailers play correctly for me in Firefox on OS X when I spoof Chrome's UA.
Andy, do you know whether we can, using either the addon SDK or WebExtensions, spoof the UA for particular sites?
Flags: needinfo?(mihai.boldan)
Flags: needinfo?(lhenry)
Flags: needinfo?(amckay)
(In reply to Benjamin Smedberg  [:bsmedberg] from comment #18)

> Mihai, could you use user agent switcher to spoof a Chrome UA for mac: for
> example "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36
> (KHTML, like Gecko) Chrome/41.0.2227.1 Safari/537.36" and see if that fixes
> it?
> 
> If so, I think we should consider deploying a UA spoof specifically for
> apple trailers.

I managed to test this issue on Firefox 48.0a1 (2016-04-15) and on Mac OS X 10.11.1 after I changed the user agent to "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.1 Safari/537.36", and the videos are played correctly.
Note that the issue is still reproducible on the Latest Nightly with the default user agent. 
Can I provide you any other information about this issue?
Flags: needinfo?(benjamin)
No.
Flags: needinfo?(benjamin)
(In reply to Benjamin Smedberg  [:bsmedberg] from comment #21)
> Andy, do you know whether we can, using either the addon SDK or
> WebExtensions, spoof the UA for particular sites?

My team is planning on prototyping something like Opera's "browser.js": <http://www.opera.com/docs/browserjs/> as a system add-on (or similar), for this use-case and others. 

(But, realistically it's a Q3 thing given that we haven't yet hired the person who will likely be building and maintaining it).
(In reply to Benjamin Smedberg  [:bsmedberg] from comment #21)
> Andy, do you know whether we can, using either the addon SDK or
> WebExtensions, spoof the UA for particular sites?

On a per site basis, I don't believe there is.
Flags: needinfo?(amckay)
Jeff, my recommendation at this point is that you either reach out to Apple or just WONTFIX this bug, but I think you're the person to make a decision.
Flags: needinfo?(jgriffiths)
Karl has already reached out to Apple, and they're aware. See Comment #14.
(In reply to Benjamin Smedberg  [:bsmedberg] from comment #21)
> Andy, do you know whether we can, using either the addon SDK or
> WebExtensions, spoof the UA for particular sites?

In 44 we had implemented a hack to fake our UA to YouTube related sites, pretending to be version 43. We can reuse the same code to do that again..
My bad it was 43 faking to be 42 in bug 1233970. 
It's not just the version we can fake, the entire UA. I believe we only need the word Chrome in it , would be fairly simple.
(In reply to Benjamin Smedberg  [:bsmedberg] from comment #26)
> Jeff, my recommendation at this point is that you either reach out to Apple
> or just WONTFIX this bug, but I think you're the person to make a decision.

No I'm not, I just reported the bug. IMO this is solidly webcompat.
Flags: needinfo?(jgriffiths)
Assignee: nobody → kdubost
Status: NEW → ASSIGNED
Component: Plug-ins → Desktop
Product: Core → Tech Evangelism
I did not think that hack worked out well in 44. Didn't it break other sites? Then we had to do a dot release. 

Karl if you did this would you be able to limit the effect to just one site?
Flags: needinfo?(kdubost)
(In reply to Liz Henry (:lizzard) (needinfo? me) from comment #31)
> I did not think that hack worked out well in 44. Didn't it break other
> sites? Then we had to do a dot release. 
> 
> Karl if you did this would you be able to limit the effect to just one site?

According to YouTube it broke some of their sites, but without affecting users. They never described what the issue actually was.

And the problem was because youtube has lots of different domains and they do a lot of cross talking between the,. For the apple trailers site, it's much simpler, it's all movietrailers.apple.com
It's possible to target only one domain name for UA override (at least on Firefox Android), but as I said, we are in the process of contacting them. 

And if we do UA override, then it needs a bit more testing because it means we might break other things. Like receiving a CSS, JS or HTML markup dedicated to chrome, uncontrolled nuclear chain reaction. ^_^

Basically how much stuff will we break in changing the UA is the interesting question before doing UA override. ^_^
Flags: needinfo?(kdubost)
Plus the issue for User Agent override in this case, is not really for movietrailers.apple.com which is indeed used to deliver the video file, but on the full site

The user agent sniffing is happening on 
http://trailers.apple.com/trailers/global/v4/scripts/app/app.js
(In reply to Karl Dubost :karlcow from comment #33)

> And if we do UA override, then it needs a bit more testing because it means
> we might break other things. Like receiving a CSS, JS or HTML markup
> dedicated to chrome, uncontrolled nuclear chain reaction. ^_^

Are you suggesting that different browsers could receive different CSS and that it wouldn't be universal????
shock horror :D
This is still the case with OS X 10.11.4 in all Firefox versions. 
So we need to decide whether to spoof the UA (only for that particular OS if possible). I still don't love the idea. Do we have some idea of user impact? We know it's a popular site.
We could also test this just for one version of Firefox, (ie 49 which is currently nightly) and see if we break anything.
@ Jeff, whether we override the UA for some site is a product decision. Who can own that decision?

We've tried to report problems with the trailer site to Apple for years (at least 2014 [1]) without any progress or even an acknowledgement. At this point, I think our only options are:

1. Spoof a different UA for the trailer site.
2. Do nothing and accept that users will see the "To view this video please use the latest version of Safari" message.

Unlike the YouTube UA override in FF 43, I think overriding the UA just for Apple's trailer site has a pretty low regression risk. And even if the site broke, would the user experience be any worse than "To view this video please use the latest version of Safari"?


[1] https://webcompat.com/issues/427
Flags: needinfo?(jgriffiths)
I'd like to spoof the UA for this site using our webcompat system add-on.

See https://groups.google.com/forum/#!topic/mozilla.compatibility/cr-cKxr-FjY.
btw. in my tests faking the UA to be Firefox Windows or Firefox MacOSX but with a different OSX version number, I got very strange results. See
https://webcompat.com/issues/1470#issuecomment-217062800

Basically I got as a background an embed of the home page. It looks like an unclosed tags being messed up. 

The UA override with Chrome UA worked like a charm for the video, but I didn't test for the rest of the site, so that would need careful tests before if we were going that road.
The page being embedded inside itself happens because some video URLs for some UA strings do a HTTP redirect back to the home page - and Firefox ends up showing the home page instead of the video (inside an OBJECT element I think)..
(In reply to Chris Peterson [:cpeterson] from comment #39)
> @ Jeff, whether we override the UA for some site is a product decision. Who
> can own that decision?

I think I should because I was here first. In the short term other issues like this should go to pdol or javaun I think.

> We've tried to report problems with the trailer site to Apple for years (at
> least 2014 [1]) without any progress or even an acknowledgement. At this
> point, I think our only options are:
> 
> 1. Spoof a different UA for the trailer site.
> 2. Do nothing and accept that users will see the "To view this video please
> use the latest version of Safari" message.
> 
> Unlike the YouTube UA override in FF 43, I think overriding the UA just for
> Apple's trailer site has a pretty low regression risk. And even if the site
> broke, would the user experience be any worse than "To view this video
> please use the latest version of Safari"?
> 
> 
> [1] https://webcompat.com/issues/427

I think I agree that spoofing UA just for the trailer site is the right approach, given your comments here.

(In reply to Mike Taylor [:miketaylr] from comment #40)
> I'd like to spoof the UA for this site using our webcompat system add-on.
> 
> See
> https://groups.google.com/forum/#!topic/mozilla.compatibility/cr-cKxr-FjY.

Oh cool! That's an excellent use of system add-ons :)
Flags: needinfo?(jgriffiths)
(In reply to Benjamin Smedberg  [:bsmedberg] from comment #21)
> Andy, do you know whether we can, using either the addon SDK or
> WebExtensions, spoof the UA for particular sites?

Sorry, I'm totally too late on this now and contradicting what I said earlier. Spoofing the user agent for some sites is really easy as a webextension. In fact we even have a sample of this:

https://github.com/mdn/webextensions-examples/tree/master/user-agent-rewriter

Hey, at least this information is here, should you need to do this again.
Hi Karl, based on Andy's comments, is this something we should consider fixing now by spoofing the UA using webextensions? Too late for Fx47 but maybe a possibility for Fx48.
Flags: needinfo?(kdubost)
Yes, we plan on doing this with our webcompat go faster add-on.
Flags: needinfo?(kdubost)
This seems to be fixed now. I reached out to one of my university friends who now works at Apple, and he was able to file a bug in their internal bug tracker. That may have done it. :)
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
That's fantastic, thanks Chris (and Apple)!
The issue is no longer reproducible on Firefox 47.0, Firefox 48.0b1, Firefox 49.0a2 (2016-06-13), Firefox 50.0a1 (2016-06-12).
The tests were performed on Mac OS X 10.11.1 and with QuickTime plug-in 7.7.3.
I am marking this issue Verified Fixed.
You don't want to test with the QuickTime plugin installed. As if present that's what will be used instead of html5
The issue was verified with the same STR from comm 0 and using the same environment.
Also, the QuickTime is installed by default on Mac OS X and can't be uninstalled. "'QuickTime Player' can't be modified or deleted because it's required by OS X." pop-up is displayed when trying to delete it.
Product: Tech Evangelism → Web Compatibility
You need to log in before you can comment on or make changes to this bug.