Open Bug 1902507 Opened 1 year ago Updated 5 months ago

riverside.fm - The site recommends only Chrome

Categories

(Web Compatibility :: Site Reports, defect, P2)

Tracking

(Webcompat Priority:P2, Webcompat Score:6)

Webcompat Priority P2
Webcompat Score 6

People

(Reporter: ksenia, Unassigned)

References

(Depends on 3 open bugs, )

Details

(Keywords: webcompat:needs-contact, webcompat:site-report, Whiteboard: [webcompat-source:web-bugs])

User Story

platform:windows,mac,linux
impact:blocked
configuration:general
affects:all
branch:release
diagnosis-team:video-conferencing

Environment:
Operating system: Mac OS X 10.15.7
Originally reported Firefox version: Firefox 111
Last reproduced with the following UA: Mozilla/5.0 (Macintosh; Intel Mac OS X 13.4; rv:126.0) Gecko/20100101 Firefox/126.0
Platforms reproduced on: mac

Additional notes:
Unsupported based on article

Steps to reproduce:
In the frequently asked questions on the Riverside website, it states that the site only works in Chrome and Edge, and using a iPhone or Android app on mobile. https://riverside.fm/faq

I asked some of the Firefox developers and they pointed me to the following issue, which is the likely reason it does not work in Firefox. https://bugzilla.mozilla.org/show_bug.cgi?id=1572644#c42

This has landed in Firefox Nightly, and should be in the release channel by Firefox 115. I do not know the status of this concerning Safari on desktop, and mobile devices.

Actual Behavior:
Browser unsupported

Created from https://github.com/webcompat/web-bugs/issues/121044

I was just told this isn't fixed and Riverside is still Chrome/Edge-only.

Using Chrome Mask will allow logging in and getting as far as the "test your camera / microphone" screen (at least for the "record a podcast" workflow). But it's not seeing my devices even after granting permissions.

Severity: S4 → S2
User Story: (updated)
Priority: P3 → P2
User Story: (updated)
No longer depends on: firefox-not-supported-warning

Might be worth trying with media.devices.enumerate.legacy.enabled set to true.

I was able to get it to see my camera/microphone.

I get the following when trying to record:

Uncaught (in promise) ReferenceError: MediaStreamTrackProcessor is not defined
    get shouldUseStreamTrackProcessor https://app.riverside.fm/6.49.1/static/js/444.c579a4cf.chunk.js:1
    start https://app.riverside.fm/6.49.1/static/js/444.c579a4cf.chunk.js:1
    start https://app.riverside.fm/6.49.1/static/js/444.c579a4cf.chunk.js:1
    runExclusive https://app.riverside.fm/6.49.1/static/js/main.594293c4.js:2
    runExclusive https://app.riverside.fm/6.49.1/static/js/main.594293c4.js:2
    a https://app.riverside.fm/6.49.1/static/js/main.594293c4.js:2
    promise callback*l https://app.riverside.fm/6.49.1/static/js/main.594293c4.js:2
    r https://app.riverside.fm/6.49.1/static/js/main.594293c4.js:2
    r https://app.riverside.fm/6.49.1/static/js/main.594293c4.js:2
    runExclusive https://app.riverside.fm/6.49.1/static/js/main.594293c4.js:2
    runExclusive https://app.riverside.fm/6.49.1/static/js/main.594293c4.js:2
    start https://app.riverside.fm/6.49.1/static/js/444.c579a4cf.chunk.js:1
    effect https://app.riverside.fm/6.49.1/static/js/444.c579a4cf.chunk.js:1
    s https://app.riverside.fm/6.49.1/static/js/main.594293c4.js:2
    middleware https://app.riverside.fm/6.49.1/static/js/main.594293c4.js:2
    dispatch https://app.riverside.fm/6.49.1/static/js/main.594293c4.js:2
    effect https://app.riverside.fm/6.49.1/static/js/444.c579a4cf.chunk.js:1
    setTimeout handler*effect https://app.riverside.fm/6.49.1/static/js/444.c579a4cf.chunk.js:1
    s https://app.riverside.fm/6.49.1/static/js/main.594293c4.js:2
    middleware https://app.riverside.fm/6.49.1/static/js/main.594293c4.js:2
    A https://app.riverside.fm/6.49.1/static/js/main.594293c4.js:2
    VA https://app.riverside.fm/6.49.1/static/js/444.c579a4cf.chunk.js:1
    effect https://app.riverside.fm/6.49.1/static/js/444.c579a4cf.chunk.js:1
    s https://app.riverside.fm/6.49.1/static/js/main.594293c4.js:2
    middleware https://app.riverside.fm/6.49.1/static/js/main.594293c4.js:2
    dispatch https://app.riverside.fm/6.49.1/static/js/main.594293c4.js:2
    T https://app.riverside.fm/6.49.1/static/js/main.594293c4.js:2
    m https://app.riverside.fm/6.49.1/static/js/main.594293c4.js:2
    H https://app.riverside.fm/6.49.1/static/js/main.594293c4.js:2
    s https://app.riverside.fm/6.49.1/static/js/main.594293c4.js:2
    middleware https://app.riverside.fm/6.49.1/static/js/main.594293c4.js:2
    He https://app.riverside.fm/6.49.1/static/js/main.594293c4.js:2
    bt https://app.riverside.fm/6.49.1/static/js/main.594293c4.js:2
    middleware https://app.riverside.fm/6.49.1/static/js/main.594293c4.js:2
    middleware https://app.riverside.fm/6.49.1/static/js/main.594293c4.js:2
    ADA https://app.riverside.fm/6.49.1/static/js/444.c579a4cf.chunk.js:1
    current https://app.riverside.fm/6.49.1/static/js/main.594293c4.js:2
    o https://app.riverside.fm/6.49.1/static/js/444.c579a4cf.chunk.js:1
    emit https://app.riverside.fm/6.49.1/static/js/main.594293c4.js:2
    _handlePublication https://app.riverside.fm/6.49.1/static/js/385.45a11f71.chunk.js:2
    _handlePublication https://app.riverside.fm/6.49.1/static/js/385.45a11f71.chunk.js:2
    _handlePush https://app.riverside.fm/6.49.1/static/js/385.45a11f71.chunk.js:2
    _dispatchReply https://app.riverside.fm/6.49.1/static/js/385.45a11f71.chunk.js:2
    n https://app.riverside.fm/6.49.1/static/js/385.45a11f71.chunk.js:2
    promise callback*_dispatchSynchronized https://app.riverside.fm/6.49.1/static/js/385.45a11f71.chunk.js:2
    _dispatchPromise https://app.riverside.fm/6.49.1/static/js/385.45a11f71.chunk.js:2
    promise callback*_dataReceived https://app.riverside.fm/6.49.1/static/js/385.45a11f71.chunk.js:2
    onMessage https://app.riverside.fm/6.49.1/static/js/385.45a11f71.chunk.js:2

Since riverside is a podcasting site, implementing MediaStreamTrackProcessor as it stands today may not be sufficient. There are ongoing discussions at the standard level about support for audio in this interface. Google meanwhile went ahead and shipped audio ahead of spec development, which might explain why this site only works in Chromium.

Flags: needinfo?(jib)

Right, if they're relying on MSTP for audio then us implementing the spec might not suffice.

Standard ways to process audio already exist (AudioWorklet) that don't rely on this new API. See this blog for working polyfills.

This might be a candidate for outreach or possibly a web-compat intervention (possibly using said polyfills).

Flags: needinfo?(jib)

It also looks like they have a least some code using MediaStreamTrackProcessor on the main thread:

                            e.logger.info("AvMediaTransformer is setting up a video track.");
                            let i = new MediaStreamTrackProcessor({
                                track: e.inputVideoOrNull,
                                maxBufferSize: 100
                            })
                              , r = new MediaStreamTrackGenerator({
                                kind: "video"
                            });

So bug 1749532 alone won't be sufficient to get that running in Firefox

Dan, can you take a closer look at what the site is all doing when you get a chance?

Flags: needinfo?(dbaker)
Depends on: 1913599
Flags: needinfo?(dbaker)

Jeff and Jib met with the engineers who work on this. They will try to use some polyfills we suggested. Longer term they plan to add Safari support next, which should get things working in Firefox as well.

Webcompat Priority: --- → P2
Webcompat Score: --- → 7
Webcompat Score: 7 → 6
You need to log in before you can comment on or make changes to this bug.