New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 743315 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner:
Closed: Jul 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocked on:
issue 611981



Sign in to add a comment

Full screen mode does not work on Android

Project Member Reported by mdw@chromium.org, Jul 15 2017

Issue description

Chrome Version: (copy from chrome://version): 61.0.3142.0
OS: Android

What steps will reproduce the problem?
(1) Visit http://www.mdw.la/infinitube/testfs/index.html
(2) Tap on the blue box to go full screen

What is the expected result?

The page should go full screen. This works on desktop.

What happens instead?

Nothing happens.

On the JS console, I see:

"Failed to execute 'requestFullscreen' on 'Element': API can only be initiated by a user gesture."

This page is a very basic "game" made with Phaser.io, a popular HTML5 gaming framework. Apparently, full screen mode broke in M56, according to several posts:

http://www.html5gamedevs.com/topic/29072-fullscreen-is-not-working-in-chrome-v56-android/
http://www.html5gamedevs.com/topic/28619-fullscreen-not-working-on-chrome-mobile-v56/
https://github.com/photonstorm/phaser-ce/issues/27

So, this appears to be a fairly recent regression.

Note that I also happen to see this behavior when running on desktop with devtools on and device emulation enabled.

Of course, this could be a case of phaser.io using the fullscreen API incorrectly, however, it's a developer-impacting regression and would be good to clarify what should be happening here.

No idea who to assign this to -- sorry for the random set of people on this!


 
Cc: aelias@chromium.org
In the short term, this is something the framework should be able to fix.  Fullscreen works on mobile, so it isn't broken wholesale:
https://davidwalsh.name/demo/fullscreen.php

You can also repro the above error by emulating a mobile device through chrome dev tools on the desktop, so it looks like they are handling their logic differently based on touch vs click (or potentially based on user agent).

There could be an issue in blink where the gesture is not being passed along, but to me, it looks like something that the framework should look into first.

+aelias@ to route further down the blink start if needed.

Comment 2 by e...@chromium.org, Jul 17 2017

Owner: foolip@chromium.org
Status: Assigned (was: Untriaged)

Comment 3 by aelias@chromium.org, Jul 17 2017

Cc: rbyers@chromium.org
Status: WontFix (was: Assigned)
This sounds like https://docs.google.com/document/d/1oF1T3O7_E4t1PYHV6gyCwHxOi3ystm0eSL5xZu7nvOg/edit#heading=h.qq59ev3u8fba, an intentional security tightening that shipped in M56.  For any intervention, some developer pain is expected in order to force them to move to best practices, and since this has been in stable for 3 releases already, it seems this pain is tolerable and most developers have already adapted.  So I'll tentatively close as working as intended.

Comment 4 by klo...@chromium.org, Jul 17 2017

I thought the change in M56 is to not mark it as user gesture for scrolling. If user did tap, shouldn't this work?

Comment 5 by aelias@chromium.org, Jul 17 2017

It depends on the exact event they're triggering on.  It looks like this JS is going fullscreen on "pointerdown".  According to Rick's doc, that no longer works as of M56 -- I believe it should work if it changes to "pointerup" instead.

Comment 6 by klo...@chromium.org, Jul 17 2017

Making sense. Thanks.

Comment 7 by rbyers@chromium.org, Jul 18 2017

Blockedon: 611981
Right, we don't want it to be possible for, (for example) an ad to take the page fullscreen when the user scrolls.  Moving the handler from pointerdown to pointerup will fix the problem.  The change is tracked in  issue 611981  and approved in https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/TO_x7FRkdmw.

Sign in to add a comment