Title: [256377] trunk
Revision
256377
Author
you...@apple.com
Date
2020-02-11 14:53:08 -0800 (Tue, 11 Feb 2020)

Log Message

Regression: RTCRtpSender.getCapabilities("video") returns null on iOS 13.4 (17E5223h)
https://bugs.webkit.org/show_bug.cgi?id=207325
<rdar://problem/59224810>

Reviewed by Eric Carlson.

Source/WebCore:

Manually tested and covered by API test.

* platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp:
(WebCore::LibWebRTCProvider::webRTCAvailable):
Return true unconditionally on iOS since libwebrtc.dylib is always available.

Tools:

* TestWebKitAPI/Tests/WebKit/GetUserMedia.mm:
(TestWebKitAPI::TEST):
Add a test validating that RTCRtpSender.getCapabilities does not return null.
* TestWebKitAPI/Tests/WebKit/getUserMedia.html:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (256376 => 256377)


--- trunk/Source/WebCore/ChangeLog	2020-02-11 22:50:47 UTC (rev 256376)
+++ trunk/Source/WebCore/ChangeLog	2020-02-11 22:53:08 UTC (rev 256377)
@@ -1,3 +1,17 @@
+2020-02-11  Youenn Fablet  <you...@apple.com>
+
+        Regression: RTCRtpSender.getCapabilities("video") returns null on iOS 13.4 (17E5223h)
+        https://bugs.webkit.org/show_bug.cgi?id=207325
+        <rdar://problem/59224810>
+
+        Reviewed by Eric Carlson.
+
+        Manually tested and covered by API test.
+
+        * platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp:
+        (WebCore::LibWebRTCProvider::webRTCAvailable):
+        Return true unconditionally on iOS since libwebrtc.dylib is always available.
+
 2020-02-11  Peng Liu  <peng.l...@apple.com>
 
         Cleanup WebCore.xcodeproj/project.pbxproj

Modified: trunk/Source/WebCore/platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp (256376 => 256377)


--- trunk/Source/WebCore/platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp	2020-02-11 22:50:47 UTC (rev 256376)
+++ trunk/Source/WebCore/platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp	2020-02-11 22:53:08 UTC (rev 256377)
@@ -73,7 +73,11 @@
 
 bool LibWebRTCProvider::webRTCAvailable()
 {
+#if PLATFORM(IOS)
+    return true;
+#else
     return !isNullFunctionPointer(rtc::LogMessage::LogToDebug);
+#endif
 }
 
 } // namespace WebCore

Modified: trunk/Tools/ChangeLog (256376 => 256377)


--- trunk/Tools/ChangeLog	2020-02-11 22:50:47 UTC (rev 256376)
+++ trunk/Tools/ChangeLog	2020-02-11 22:53:08 UTC (rev 256377)
@@ -1,3 +1,16 @@
+2020-02-11  Youenn Fablet  <you...@apple.com>
+
+        Regression: RTCRtpSender.getCapabilities("video") returns null on iOS 13.4 (17E5223h)
+        https://bugs.webkit.org/show_bug.cgi?id=207325
+        <rdar://problem/59224810>
+
+        Reviewed by Eric Carlson.
+
+        * TestWebKitAPI/Tests/WebKit/GetUserMedia.mm:
+        (TestWebKitAPI::TEST):
+        Add a test validating that RTCRtpSender.getCapabilities does not return null.
+        * TestWebKitAPI/Tests/WebKit/getUserMedia.html:
+
 2020-02-11  Wenson Hsieh  <wenson_hs...@apple.com>
 
         KeyboardInputTests.SupportsImagePaste fails on recent versions of UIKit

Modified: trunk/Tools/TestWebKitAPI/Tests/WebKit/GetUserMedia.mm (256376 => 256377)


--- trunk/Tools/TestWebKitAPI/Tests/WebKit/GetUserMedia.mm	2020-02-11 22:50:47 UTC (rev 256376)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKit/GetUserMedia.mm	2020-02-11 22:53:08 UTC (rev 256377)
@@ -201,6 +201,35 @@
     wasPrompted = false;
 }
 
+TEST(WebKit2, GetCapabilities)
+{
+    auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]);
+    auto processPoolConfig = adoptNS([[_WKProcessPoolConfiguration alloc] init]);
+    auto preferences = [configuration preferences];
+    preferences._mediaCaptureRequiresSecureConnection = NO;
+    preferences._mediaDevicesEnabled = YES;
+    preferences._mockCaptureDevicesEnabled = YES;
+
+    auto messageHandler = adoptNS([[GUMMessageHandler alloc] init]);
+    [[configuration.get() userContentController] addScriptMessageHandler:messageHandler.get() name:@"gum"];
+
+    auto webView = [[TestWKWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 500) configuration:configuration.get() processPoolConfiguration:processPoolConfig.get()];
+    auto delegate = adoptNS([[GetUserMediaCaptureUIDelegate alloc] init]);
+    webView.UIDelegate = delegate.get();
+
+    wasPrompted = false;
+
+    [webView loadTestPageNamed:@"getUserMedia"];
+    EXPECT_TRUE(waitUntilCaptureState(webView, _WKMediaCaptureStateActiveCamera));
+
+    TestWebKitAPI::Util::run(&wasPrompted);
+
+    done = false;
+    [webView stringByEvaluatingJavaScript:@"checkGetCapabilities()"];
+
+    TestWebKitAPI::Util::run(&done);
+}
+
 #if WK_HAVE_C_SPI
 TEST(WebKit, WebAudioAndGetUserMedia)
 {

Modified: trunk/Tools/TestWebKitAPI/Tests/WebKit/getUserMedia.html (256376 => 256377)


--- trunk/Tools/TestWebKitAPI/Tests/WebKit/getUserMedia.html	2020-02-11 22:50:47 UTC (rev 256376)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKit/getUserMedia.html	2020-02-11 22:53:08 UTC (rev 256377)
@@ -87,6 +87,11 @@
                     window.webkit.messageHandlers.gum.postMessage("Did not receive an ended event after 5 seconds");
                 }, 5000);
             }
+
+            function checkGetCapabilities() {
+                window.webkit.messageHandlers.gum.postMessage(RTCRtpSender.getCapabilities('video') != null ? "PASS" : "FAIL");
+            }
+
         </script>
     <head>
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to