Skip to content

Support Picture-in-Picture on Chrome OS

Kazuki Takise requested to merge takise/vlc-android:takise-chromeos-pip into master

This patch fixes various bugs to support Picture-in-Picture on Chrome OS

enterPictureInPictureMode() must be called in onUserLeaveHint() to support Picture-in-Picture in a multi-window environment such as Chrome OS.

The current implemententation (calling the API in onPause()) causes the following issues on Chrome OS:

  • VLC enters PiP without being occluded, but just with another window activated. In a multi-window environment, we can't assume onPause() means the window gets hidden. As only one window can be resumed at the same time, it's possible that a window is fully visible, but paused.
  • When some ChromeOS-specific system UI gets shown (e.g. Alt-Tab window cycler, Overview Mode), VLC enters PiP unexpectedly.

This patch moves switchToPopup() from onPause() to onUserLeaveHint() to prevent those issues.

Tested on a Pixel 2 and some chromebooks and confirmed Picture-in-Picture works well and nothing is broken on all of those devices.

Merge request reports