Support Picture-in-Picture on Chrome OS
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.