[webkit-changes] [WebKit/WebKit] 18a0a5: WebRTC: Camera input is rotated by 90 degrees
Tim Horton
noreply at github.com
Wed Mar 22 10:36:21 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 18a0a5b45375c7795a80ee132c23f04d2c49ba74
https://github.com/WebKit/WebKit/commit/18a0a5b45375c7795a80ee132c23f04d2c49ba74
Author: Tim Horton <timothy_horton at apple.com>
Date: 2023-03-22 (Wed, 22 Mar 2023)
Changed paths:
M Source/WebKit/UIProcess/API/Cocoa/WKWebViewInternal.h
M Source/WebKit/UIProcess/API/ios/WKWebViewIOS.h
M Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm
M Source/WebKit/UIProcess/WebPageProxy.cpp
M Source/WebKit/UIProcess/WebPageProxy.h
M Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm
M Tools/TestWebKitAPI/Tests/WebKit/GetUserMedia.mm
M Tools/TestWebKitAPI/Tests/WebKit/getUserMedia.html
Log Message:
-----------
WebRTC: Camera input is rotated by 90 degrees
https://bugs.webkit.org/show_bug.cgi?id=254185
rdar://106396515
Reviewed by Youenn Fablet.
If a client overrides the device orientation (as exposed to CSS), it currently
also overrides the capture orientation, resulting in sideways video.
* Source/WebKit/UIProcess/API/Cocoa/WKWebViewInternal.h:
* Source/WebKit/UIProcess/API/ios/WKWebViewIOS.h:
* Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView _setupScrollAndContentViews]):
(-[WKWebView _deviceOrientationIgnoringOverrides]):
(-[WKWebView didMoveToWindow]):
(-[WKWebView _dispatchSetOrientationForMediaCapture:]):
(-[WKWebView _windowDidRotate:]):
(-[WKWebView _deviceOrientation]): Deleted.
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::willStartCapture):
(WebKit::WebPageProxy::setOrientationForMediaCapture):
(WebKit::WebPageProxy::gpuProcessExited):
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::setDeviceOrientation):
Separate the device orientation from the capture orientation, and make the
overrides not apply to capture orientation (which already has e.g.
WKPageSetMockCameraOrientation to override it).
The new bit is not transmitted in the DynamicViewportSizeUpdate because it
can't be changed synchronously, so there is no value to moving it there.
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setOrientationForMediaCapture):
* Tools/TestWebKitAPI/Tests/WebKit/GetUserMedia.mm:
* Tools/TestWebKitAPI/Tests/WebKit/getUserMedia.html:
Add a test ensuring that the override doesn't affect capture orientation.
Canonical link: https://commits.webkit.org/261972@main
More information about the webkit-changes
mailing list