Open Bug 1890774 Opened 5 months ago Updated 3 days ago

PiP/Miniplayer button is missing from the media player on spotify.com

Categories

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

Firefox 126
Desktop
Windows 10

Tracking

(firefox124 affected, firefox126 affected)

Tracking Status
firefox124 --- affected
firefox126 --- affected

People

(Reporter: ctanase, Unassigned)

References

(Depends on 1 open bug, )

Details

(Keywords: webcompat:have-login, webcompat:platform-bug, webcompat:site-report)

User Story

platform:windows,mac,linux
impact:feature-broken
affects:all
configuration:general
branch:release

Attachments

(1 file)

Attached image FF vs Chrome.png

Environment:
Operating system: Windows 10
Firefox version: Nightly 126.0a1 (2024-04-09)

Preconditions:
• must be logged in

Steps to reproduce:

  1. Go to https://open.spotify.com
  2. Go to any song.
  3. Observe the media player.

Expected Behaviour:
The PiP/Miniplayer button is displayed on the media player.

Actual Behaviour:
The PiP/Miniplayer button is missing from the media player.

Notes:

  1. Screenshot attached
  2. Reproducible regardless of the ETP status
  3. Reproducible on Firefox Release as well
  4. Not reproducible on Chrome
  5. Issue found during WebCompat team [Top100] websites testing

Probably bug 1882314, but let's confirm.

Severity: -- → S3
User Story: (updated)
Priority: -- → P2
Depends on: pip-api
Depends on: 1895949
No longer depends on: 1895949

This is indeed because of the picture-in-picture API:

          async open(e) {
            const t = this.getOrCreateGraphics();
            await this.updateGraphicsFromPlayerState(t, e);
            const n = this.getPictureInPictureElement();
            return n === t.video ||
            (
              await this.requestPictureInPicture(t, (() => {
                this.close()
              })),
              this._events.emitSync('visibility_change', !0)
            ),
            n ?? null
          }

          async requestPictureInPicture(e, t) {
            let {
              video: n
            }
            = e;
            try {
              await n.requestPictureInPicture(),
              n.addEventListener('leavepictureinpicture', t, {
                once: !0
              })
            } catch (zO) {
              (0, _s.vV) (zO)
            }
          }
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: