can't play a game on ok.ru (fails to play an audio file)

NEW
Unassigned

Status

defect
Last month
4 days ago

People

(Reporter: ksenia, Unassigned)

Tracking

(Regression, {regression})

unspecified

Firefox Tracking Flags

(Webcompat Priority:?, firefox-esr60 unaffected, firefox-esr68 unaffected, firefox68 unaffected, firefox69+ affected, firefox70+ affected)

Details

()

As reported here:
https://github.com/webcompat/web-bugs/issues/35395

Steps to reproduce:
Create an account on ok.ru and try playing this game https://ok.ru/game/elka2019game in Firefox Nightly

Expected behavior:
Game starts

Actual behavior:
Game won't start

Looks like the root cause of the issue is that Firefox is unable to play this file:
https://static.ereality.org/elka2019/resources/24/sounds/click.mp3?1b02c0072dd2feed5c24e9a74c9edc22

The game works in Firefox release. The difference between release and Nightly is that unhandledrejection event is fired in Nightly, preventing the game from starting:
onWindowPromiseRejectionEvent: The given encoding is not supported.

(when I turn off dom.promise_rejection_events.enabled the game starts)

from mozregression:
53:26.82 INFO: Last good revision: 37918f3c49dfa66c3fb8c5a12ee3e11a9e35d088
53:26.82 INFO: First bad revision: d629658891aedfc56827a10e077f8b06349bc2b7
53:26.82 INFO: Pushlog:
https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=37918f3c49dfa66c3fb8c5a12ee3e11a9e35d088&tochange=d629658891aedfc56827a10e077f8b06349bc2b7

[Tracking Requested - why for this release]: New regression on a top site (at least, a game there).

Note: the audio is busted in release, but the game loads because the promise rejection error doesn't happen in release.

Hsin-Yi, is there someone who can take a look? Edgar is on leave, it seems. Thanks! Unsure if this is really a DOM thing, a media playback thing, or if we need to do outreach here...

Flags: needinfo?(htsai)

This looks more like a media thing. Chrome can play media file.
I don't know what could be done on DOM side other than disabling the PromiseRejectionEvent

Do we have some testing profiles for that website? The registration seem to want a phone number, and I'd prefer not give mine..
... nevermind, I had some dummy Facebook account I could use for login.

If dom.promise_rejection_events.enabled is disabled, the game does start but there are plenty of audio related error messages in the console.

https://searchfox.org/mozilla-central/rev/da855d65d1fbdd714190cab2c46130f7422f3699/dom/media/webaudio/MediaBufferDecoder.cpp#548 is the promise rejection causing the issue. If that code is commented out, the game starts.
There will be then still some other unhandledrejections coming from audio part, and that makes the game to error again.

Executing
var e = new PromiseRejectionEvent("unhandledrejection", { promise: Promise.reject("foo"), reason: "foo"}); window.dispatchEvent(e);
in the iframe which is running the game is enough stop the game.

This sounds mostly like an issue with the web site, since even if we fix the audio handling, any web API change in the future causing rejections will break the page.

But why can't we play that audio which Chrome can?

Flags: needinfo?(padenot)
Flags: needinfo?(miket)

I can't find a Firefox version that can play this file, and VLC can't either. ffprobe finds an OK duration, but ffplay can't play it back. Only Chrome succeeds it seems. If/when we switch to ffmpeg to decode mp3, this will be fixed. Otherwise, since we don't control our mp3 decoder, we can't do much.

Flags: needinfo?(padenot)

Thanks everyone. Reaching out to our contacts at ok.ru.

Thanks for reaching out Adam. If we need further testing, :ksenia has an account.

Flags: needinfo?(miket)
Flags: needinfo?(htsai)

Tracking this for 69 since it's going to appear as a new bug to users updating from 68.

Component: Audio/Video: Playback → Desktop
Product: Core → Web Compatibility
Version: 68 Branch → unspecified

Ksenia found the CEO of this game company on LinkedIn, he's responded and passed this bug along to the appropriate team.

Hello Adam - have we hard back from anyone at the company yet? Thanks.

Flags: needinfo?(astevenson)

Not yet, just sent a follow up message to our contact.

Flags: needinfo?(astevenson)

The game loads for me now, though it is silent in Nightly. Clicking on sound controls (music/sounds) does nothing. Was able to turn on background music (not sounds) only by restarting the game. So perhaps some changes were made, but there is still a problem with sound.

You need to log in before you can comment on or make changes to this bug.