Skip to content

Webkit_pip polyfill breaks standard feature detection of PiP on iOS #2199

@OrenMe

Description

@OrenMe

Have you read the FAQ and checked for duplicate open issues?
Yes

What version of Shaka Player are you using?
2.5.5

Can you reproduce the issue with our latest release version?
Yes

Can you reproduce the issue with the latest code from master?
Yes

Are you using the demo app or your own custom app?
Own

If custom app, can you reproduce the issue using our demo app?
No, you need to have playsinline and you need to preform the standard check for is pictureInPicture as it is defined in various official guides like this:
if ('pictureInPictureEnabled' in document) {
For example in google chrome official docs https://developers.google.com/web/updates/2018/10/watch-video-using-picture-in-picture
And the code will return invalid result on iOS.
And the code that does it is in your polyfill for WebKit PiP here https://github.com/google/shaka-player/blob/7afac89bc2c53c6372e2fe30e4d2cba32fdb8e99/lib/polyfill/pip_webkit.js#L55 which shouldn’t get registered on iOS which doesn’t support PiP at all.
What happens is that our app has a button for PiP and it uses the standard feature detection and since we upgraded to 2.5.5(from a very old version) the button started showing in iOS due to the polyfill.

What browser and OS are you using?
iPhone safari ios13

For embedded devices (smart TVs, etc.), what model and firmware version are you using?

What are the manifest and license server URIs?

Any manifest will do

What did you do?

Try to check if shaka is supported or not on iOS

What did you expect to happen?
Shaka tells if it supported using its api but no other side effects

What actually happened?

The standard way to check if PiP is supported is broken due to side effects caused by the WebKit PiP polyfill

Metadata

Metadata

Assignees

Labels

status: archivedArchived and locked; will not be updatedtype: bugSomething isn't working correctly

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions