WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED DUPLICATE of
bug 269846
271127
REGRESSION (iOS 17.4): History.pushState breaks camera connection from MediaDevices.getUserMedia
https://bugs.webkit.org/show_bug.cgi?id=271127
Summary
REGRESSION (iOS 17.4): History.pushState breaks camera connection from MediaD...
Adam
Reported
2024-03-17 06:55:29 PDT
Created
attachment 470403
[details]
Simple reproduction screen recording I contribute to a website that establishes a webcam stream via `Media.getUserMedia` and "client side navigation" via `History.pushState`. During navigation, the same stream is displayed intentionally throughout navigation within a `video` element as the `srcObject` attribute. Since the 17.4 release of Safari on 3/5/2024 we've been receiving reports of the webcam stream stopping and showing an all black background (Safari for iOS). This issue breaks an important flow of our website that provides critical functionality to the business. I did a significant amount of debugging and pinpointed the issue source that can be easily reproduced. I created a minimal reproduction with code on GitHub and deployed to Vercel. See below for details. Reproduction environment: Safari iOS 17.4 Description: When utilizing `MediaDevices.getUserMedia()` to display a webcam stream and `History.pushState()` for navigation, the connection to the webcam appears to be lost upon call to `history.pushState()`. When the stream is displayed as a video element via `srcObject`, at the point of `pushState()` call, video displays a black background only. Also noteworthy is that the browser indicator of the webcam connection changes despite `stream.active` remaining true and all other properties of `MediaStream` instance remaining unchanged. Noteworthy points: - The issue is not reproducible in Safari 17.4 on desktop (macOS). - It's not clear what specific change could potentially cause this issue. - It's not clear (to me) if this issue is specific to Safari or Webkit. Reproduction code:
https://github.com/adamhenson/get-user-media
Reproduction demo:
https://get-user-media-sage.vercel.app/
Reproduction demo steps and expectations: This demo will open a webcam stream upon clicking the "getUserMedia()" button. Clicking the "pushState()" button will push to browser history the path "/foo". - Expected: the webpage will remain unchanged as nothing is listening to browser history. - Actual: the webcam stream stops and instead display black.
Attachments
Simple reproduction screen recording
(29.64 MB, video/mp4)
2024-03-17 06:55 PDT
,
Adam
no flags
Details
View All
Add attachment
proposed patch, testcase, etc.
Radar WebKit Bug Importer
Comment 1
2024-03-18 16:48:57 PDT
<
rdar://problem/124976190
>
youenn fablet
Comment 2
2024-03-19 03:28:21 PDT
*** This bug has been marked as a duplicate of
bug 269846
***
Adam
Comment 3
2024-05-21 14:49:31 PDT
I just wanted to confirm that I tested using my reproduction from this ticket and it is indeed fixed in 17.5.0 (tested in 17.5.1)
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