Title: [231649] trunk/Source/WebKit
Revision
231649
Author
[email protected]
Date
2018-05-10 11:36:57 -0700 (Thu, 10 May 2018)

Log Message

[MediaStream, iOS] Don't check authorizationStatusForMediaType when using mock capture devices
https://bugs.webkit.org/show_bug.cgi?id=185516
<rdar://problem/36328191>

Reviewed by Youenn Fablet.

* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::UIClient::decidePolicyForUserMediaPermissionRequest): Don't check
+[AVCaptureDevice authorizationStatusForMediaType:] when using mock capture devices.

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (231648 => 231649)


--- trunk/Source/WebKit/ChangeLog	2018-05-10 18:31:59 UTC (rev 231648)
+++ trunk/Source/WebKit/ChangeLog	2018-05-10 18:36:57 UTC (rev 231649)
@@ -1,3 +1,15 @@
+2018-05-10  Eric Carlson  <[email protected]>
+
+        [MediaStream, iOS] Don't check authorizationStatusForMediaType when using mock capture devices
+        https://bugs.webkit.org/show_bug.cgi?id=185516
+        <rdar://problem/36328191>
+
+        Reviewed by Youenn Fablet.
+
+        * UIProcess/Cocoa/UIDelegate.mm:
+        (WebKit::UIDelegate::UIClient::decidePolicyForUserMediaPermissionRequest): Don't check
+        +[AVCaptureDevice authorizationStatusForMediaType:] when using mock capture devices.
+
 2018-05-10  Brent Fulgham  <[email protected]>
 
         REGRESSION(r230323): UIProcess needs to notify WebContent process of Accessibility setting changes

Modified: trunk/Source/WebKit/UIProcess/Cocoa/UIDelegate.mm (231648 => 231649)


--- trunk/Source/WebKit/UIProcess/Cocoa/UIDelegate.mm	2018-05-10 18:31:59 UTC (rev 231648)
+++ trunk/Source/WebKit/UIProcess/Cocoa/UIDelegate.mm	2018-05-10 18:36:57 UTC (rev 231649)
@@ -886,13 +886,14 @@
     }
 
 #if PLATFORM(IOS)
-    auto requestCameraAuthorization = BlockPtr<void()>::fromCallable([this, &frame, protectedRequest = makeRef(request), webView = RetainPtr<WKWebView>(m_uiDelegate.m_webView)]() {
+    bool usingMockCaptureDevices = page.preferences().mockCaptureDevicesEnabled();
+    auto requestCameraAuthorization = BlockPtr<void()>::fromCallable([this, &frame, protectedRequest = makeRef(request), webView = RetainPtr<WKWebView>(m_uiDelegate.m_webView), usingMockCaptureDevices]() {
 
         if (!protectedRequest->requiresVideoCapture()) {
             requestUserMediaAuthorizationForDevices(frame, protectedRequest, (id <WKUIDelegatePrivate>)m_uiDelegate.m_delegate.get(), *webView.get());
             return;
         }
-        AVAuthorizationStatus cameraAuthorizationStatus = [getAVCaptureDeviceClass() authorizationStatusForMediaType:getAVMediaTypeVideo()];
+        AVAuthorizationStatus cameraAuthorizationStatus = usingMockCaptureDevices ? AVAuthorizationStatusAuthorized : [getAVCaptureDeviceClass() authorizationStatusForMediaType:getAVMediaTypeVideo()];
         switch (cameraAuthorizationStatus) {
         case AVAuthorizationStatusAuthorized:
             requestUserMediaAuthorizationForDevices(frame, protectedRequest, (id <WKUIDelegatePrivate>)m_uiDelegate.m_delegate.get(), *webView.get());
@@ -916,7 +917,7 @@
     });
 
     if (requiresAudioCapture) {
-        AVAuthorizationStatus microphoneAuthorizationStatus = [getAVCaptureDeviceClass() authorizationStatusForMediaType:getAVMediaTypeAudio()];
+        AVAuthorizationStatus microphoneAuthorizationStatus = usingMockCaptureDevices ? AVAuthorizationStatusAuthorized : [getAVCaptureDeviceClass() authorizationStatusForMediaType:getAVMediaTypeAudio()];
         switch (microphoneAuthorizationStatus) {
         case AVAuthorizationStatusAuthorized:
             requestCameraAuthorization();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to