Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 18a0a5b45375c7795a80ee132c23f04d2c49ba74
      
https://github.com/WebKit/WebKit/commit/18a0a5b45375c7795a80ee132c23f04d2c49ba74
  Author: Tim Horton <timothy_hor...@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


_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to