WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
NEW
321330
[iOS] Pinching native video controls requests fullscreen repeatedly
https://bugs.webkit.org/show_bug.cgi?id=321330
Summary
[iOS] Pinching native video controls requests fullscreen repeatedly
ingram.kalina
Reported
2026-08-07 14:43:43 PDT
Steps to reproduce: 1. On iPhone, load a page containing an inline <video controls playsinline controlslist="nofullscreen"> element. 2. Place two fingers over the native controls and pinch outward past the threshold that enters fullscreen. Observed behavior: The native media controls request fullscreen repeatedly while the same pinch continues. The first request starts the fullscreen transition, while subsequent requests reach HTMLVideoElement.webkitEnterFullscreen() during the transition and raise InvalidStateError: The object is in an invalid state. Expected behavior: The native media controls should request fullscreen once per pinch gesture. The issue is in IOSInlineMediaControls._pinchGestureRecognizerStateDidChange(). Once recognizer.scale exceeds MinimumScaleToEnterFullscreen, the method invokes iOSInlineMediaControlsRecognizedPinchInGesture() for every Changed state and again for the terminal Recognized/Ended state. MediaController then calls webkitEnterFullscreen() for each invocation. Reproduced with a real two-finger gesture in the iOS 26.5 simulator. The same repeated requests occur when controlslist="nofullscreen" is removed, so controlslist is part of the original reproduction but is not the cause. The behavior is also independent of playback state and playsinline.
Attachments
testcase
(255 bytes, text/html)
2026-10-15 02:28 PDT
,
Frédéric Wang Nélar
no flags
Details
View All
Add attachment
proposed patch, testcase, etc.
ingram.kalina
Comment 1
2026-08-07 14:55:59 PDT
Pull request:
https://github.com/WebKit/WebKit/pull/71185
Radar WebKit Bug Importer
Comment 2
2026-08-14 14:44:11 PDT
<
rdar://problem/184952141
>
Frédéric Wang Nélar
Comment 3
2026-10-15 02:28:05 PDT
Created
attachment 481836
[details]
testcase
Frédéric Wang Nélar
Comment 4
2026-10-15 02:37:57 PDT
I uploaded a tentative testcase, but I'm not sure how to emulate the pinch in Device Hub without a trackpad.
ingram.kalina
Comment 5
2026-10-15 03:28:28 PDT
The layout test in PR 71185 lets you check the repeated fullscreen-request callback without emulating a pinch in Device Hub. The test is: LayoutTests/media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-pinch-enters-fullscreen-once.html With the test and its expected-results file from the PR in your checkout, run from the repository root: Tools/Scripts/run-webkit-tests --ios-simulator media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-pinch-enters-fullscreen-once.html It drives the recognizer through Began, Changed, Changed, Ended, then starts a second gesture. The cumulative delegate-call counts are: Unpatched Patched First Changed 1 1 Second Changed 2 1 Ended 3 1 Changed in a new gesture 4 2 This isolates the duplicate-request behavior; it doesn't exercise the actual fullscreen transition. My end-to-end reproduction used XCUITest on the iOS 26.5 simulator. A window error listener displayed repeated “InvalidStateError: The object is in an invalid state.” messages on the diagnostic page. I haven't run your attachment yet. Entering fullscreen itself is expected—the bug is the repeated requests within one gesture.
ingram.kalina
Comment 6
2026-10-15 03:31:11 PDT
For clarity, the counts above are unpatched → patched: - First Changed: 1 → 1 - Second Changed: 2 → 1 - Ended: 3 → 1 - Changed in a new gesture: 4 → 2
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug