Open Bug 1609017 Opened 5 years ago Updated 2 years ago

Picture-in-Picture doesn't open in a floating window on Linux / bspwm

Categories

(Core :: Widget: Gtk, defect, P3)

74 Branch
Desktop
Linux
defect

Tracking

()

Tracking Status
firefox-esr68 --- unaffected
firefox72 --- unaffected
firefox73 --- wontfix
firefox74 --- fix-optional

People

(Reporter: sdk, Assigned: stransky)

References

(Blocks 1 open bug)

Details

(Keywords: nightly-community, regression)

User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:72.0) Gecko/20100101 Firefox/72.0

Steps to reproduce:

  1. Play a video (Youtube, Prime, etc)
  2. Toggle PiP on (button or shortcut)

Actual results:

PiP doesn't as a floating window with bspwm as a window manager

Expected results:

PiP should open in a floating window like it does on FF 72 (current release version)

OS: Unspecified → Linux
Hardware: Unspecified → Desktop
Component: Video/Audio Controls → Widget: Gtk
Product: Toolkit → Core

Why is this marked as regression? Is there any working version?
Thanks.

Flags: needinfo?(contact)
Priority: -- → P3

(In reply to Martin Stránský [:stransky] from comment #1)

Why is this marked as regression? Is there any working version?
Thanks.

Because it works on 72 (Release) but doesn't on 74 (Nightly).

Flags: needinfo?(contact)

So, I finally had the time and bandwidth to do a mozregression. Here's the link to the commit that introduced this bug:
https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=d83d88a474ce1fd7a64c7351a0cf881740cd4347&tochange=374df506a9d412a961df2f3a90e67413434a73f8

Flags: needinfo?(stransky)

That's very interesting, Thanks. Looks like a bug in bspwm window manager. Can you please report it at bspwm project?
Also can you please attach output of 'env | grep XDG' command? We may introduce a workaround for it until it's fixed.
Thanks.

Flags: needinfo?(stransky) → needinfo?(contact)
Assignee: nobody → stransky

(In reply to Martin Stránský [:stransky] from comment #4)

That's very interesting, Thanks. Looks like a bug in bspwm window manager. Can you please report it at bspwm project?

Sure I can. Could you give me a bit more detail on why you think it's a bspwm bug so I could include it in my report?

Also can you please attach output of 'env | grep XDG' command? We may introduce a workaround for it until it's fixed.

Here's the output:

XDG_SEAT=seat0
XDG_SESSION_TYPE=tty
XDG_SESSION_CLASS=user
XDG_VTNR=1
XDG_SESSION_ID=1
XDG_RUNTIME_DIR=/run/user/1000
XDG_DATA_DIRS=/home/sdk/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share

Thanks!

Flags: needinfo?(contact)

(In reply to Danny Colin [:sdk] from comment #5)

(In reply to Martin Stránský [:stransky] from comment #4)

That's very interesting, Thanks. Looks like a bug in bspwm window manager. Can you please report it at bspwm project?

Sure I can. Could you give me a bit more detail on why you think it's a bspwm bug so I could include it in my report?

The aspect ratio should to affects window type itself (floating/toplevel/popup whatever).

Also can you please attach output of 'env | grep XDG' command? We may introduce a workaround for it until it's fixed.

Here's the output:

XDG_SEAT=seat0
XDG_SESSION_TYPE=tty
XDG_SESSION_CLASS=user
XDG_VTNR=1
XDG_SESSION_ID=1
XDG_RUNTIME_DIR=/run/user/1000
XDG_DATA_DIRS=/home/sdk/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share

Uff, that's bad. There's no desktop manager/session type ID. bspwm should definitely provide that so we can detect it and disable the aspect ratio geometry hints. For instance gnome sets (on Wayland):

XDG_SESSION_DESKTOP=gnome
XDG_SESSION_TYPE=wayland
XDG_CURRENT_DESKTOP=GNOME

see https://www.freedesktop.org/software/systemd/man/pam_systemd.html for details.

Please use 'widget.use-aspect-ratio' at about:config to disable aspect ratio lock for your WM.

I use bspwm and have been wondering about this also.

Setting widget.use-aspect-ratio to false doesn't make the Picture-in-picture window be the type that is floating by default

I think the bspwm ethos is that the user can "provide" is by setting .profile or whatever to modify the environment; can I ask exactly what environment variables I should be setting to get the Pip window to float automatically? or is it related to the dialog/modal hint for the window?

Looks like FF has changed slightly; via #bspwm, a rule that works, to automatically float PiP windows;

bspc rule -a firefox:Toolkit sticky=on state=floating

Some apps though can make their pop-up windows floating by default (under bspwm), so I was guessing this might be an issue resolved at maybe the NetWM level or something like that?

The aspect ratio of the window is right after PiP/floating it doesn't lock either, even with bspc config honor_size_hints true. I'm, again, kinda somewhat sure that sure some windows do at least have their aspect locked, but I can't remember one right just now.

I'm, again, kinda somewhat sure that sure some windows do at least have their aspect locked, but I can't remember one right just now.

I know that _NET_WM_WINDOW_TYPE_DIALOG (ex. System Print Dialog in FF) opens as a floating window in bspwm. And yes, bspwm doesn't seem to care about the aspect ratio lock for normal windows. Like Martin suggested, this is something that should be reported upstream but I wouldn't hold my breath to see a fix anytime soon since the bspwm maintainer isn't working actively on bspwm these days.

@sdk; thanks for that assist in #bspwm

"I know that _NET_WM_WINDOW_TYPE_DIALOG (ex. System Print Dialog in FF) opens as a floating window in bspwm"

Would implementing that for FF PiP windows not go towards resolving the 'open as a floating window' issue?

"bspwm doesn't seem to care about the aspect ratio lock for normal windows."

I remember now that videos in mpv under bspwm have their aspect ratio kept whilst resizing, so could Firefox not do the same unnormal thing for PiP windows?

I'm not sure of the specifics, but from xprop, a video in mpv;

WM_NORMAL_HINTS(WM_SIZE_HINTS):
program specified size: 1152 by 648
program specified minimum size: 4 by 4
program specified minimum aspect ratio: 1152/648
program specified maximum aspect ratio: 1152/648
window gravity: Center

From xprop on FF PiP (for this);

WM_NORMAL_HINTS(WM_SIZE_HINTS):
program specified minimum size: 120 by 173
program specified maximum size: 8192 by 8192
program specified minimum aspect ratio: 45329/65536
program specified maximum aspect ratio: 45329/65536
program specified base size: 120 by 173
window gravity: NorthWest

From above; "There's no desktop manager/session type ID. bspwm should definitely provide that so we can detect it and disable the aspect ratio geometry hints."

I've tried setting bspwm specific variations of those XDG evars in .profile and restarting, but a) why would FF wish to disable the aspect ratio hints; because bspwm is expected not to handle that behaviour (though it does with mpv)?

"the bspwm maintainer isn't working actively on bspwm these days"

The last release was two months ago and the last commit was 6 days ago, so maybe it could be said they are at least working on it for theirself, I've not checked the recently active or closed issues though, and while I think it would be at least worth touching base there if required, it would have to be a convincing issue/request :)

Huh, PiP aspect is actually working, I had set widget.use-aspect-ratio on but I guess I needed to restart Firefox for it to take effect.

Having the exact same issue on Firefox 82.

I'm using swaywm, so this doesn't seem to be bspwm-specific nor X11-specific.

The bug has a release status flag that shows some version of Firefox is affected, thus it will be considered confirmed.

Status: UNCONFIRMED → NEW
Ever confirmed: true
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.