Title: [267563] trunk
Revision
267563
Author
[email protected]
Date
2020-09-25 04:48:58 -0700 (Fri, 25 Sep 2020)

Log Message

Introduce WKWebViewConfiguration mediaCaptureEnabled
https://bugs.webkit.org/show_bug.cgi?id=216872

Reviewed by Alex Christensen.

Source/WebKit:

Add a new boolean configuration to enable/disable mediaDevices exposure.
Value is off by default.
A future patch will remove the mediaDevices WebPreferences based API, given there is no need
to enable/disable mediaDevices during the lifetime of a page.

Covered by existing tests.

* UIProcess/API/APIPageConfiguration.cpp:
(API::PageConfiguration::copy const):
* UIProcess/API/APIPageConfiguration.h:
(API::PageConfiguration::setMediaDevicesEnabled):
(API::PageConfiguration::mediaDevicesEnabled const):
* UIProcess/API/Cocoa/WKPreferencesPrivate.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _setupPageConfiguration:]):
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration _mediaDevicesEnabled]):
(-[WKWebViewConfiguration _setMediaDevicesEnabled:]):
* UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:

Tools:

Make use of new configuration boolean instead of mediaDevicesEnabled WebPreferences API.

* MiniBrowser/mac/AppDelegate.m:
(-[BrowserAppDelegate defaultConfiguration]):
* TestWebKitAPI/Tests/WebKit/GetUserMedia.mm:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WebKit/GetUserMediaNavigation.mm:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WebKit/GetUserMediaReprompt.mm:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WebKit/MediaStreamTrackDetached.mm:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WebKitCocoa/GetDisplayMedia.mm:
(TestWebKitAPI::GetDisplayMediaTest::SetUp):
* TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
* TestWebKitAPI/Tests/WebKitCocoa/UserMediaDisabled.mm:
(MediaCaptureDisabledTest::SetUp):
* TestWebKitAPI/Tests/WebKitCocoa/UserMediaSimulateFailedSandbox.mm:
(MediaCaptureSimulateFailedSandbox::SetUp):

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (267562 => 267563)


--- trunk/Source/WebKit/ChangeLog	2020-09-25 11:24:26 UTC (rev 267562)
+++ trunk/Source/WebKit/ChangeLog	2020-09-25 11:48:58 UTC (rev 267563)
@@ -1,3 +1,30 @@
+2020-09-25  Youenn Fablet  <[email protected]>
+
+        Introduce WKWebViewConfiguration mediaCaptureEnabled
+        https://bugs.webkit.org/show_bug.cgi?id=216872
+
+        Reviewed by Alex Christensen.
+
+        Add a new boolean configuration to enable/disable mediaDevices exposure.
+        Value is off by default.
+        A future patch will remove the mediaDevices WebPreferences based API, given there is no need
+        to enable/disable mediaDevices during the lifetime of a page.
+
+        Covered by existing tests.
+
+        * UIProcess/API/APIPageConfiguration.cpp:
+        (API::PageConfiguration::copy const):
+        * UIProcess/API/APIPageConfiguration.h:
+        (API::PageConfiguration::setMediaDevicesEnabled):
+        (API::PageConfiguration::mediaDevicesEnabled const):
+        * UIProcess/API/Cocoa/WKPreferencesPrivate.h:
+        * UIProcess/API/Cocoa/WKWebView.mm:
+        (-[WKWebView _setupPageConfiguration:]):
+        * UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
+        (-[WKWebViewConfiguration _mediaDevicesEnabled]):
+        (-[WKWebViewConfiguration _setMediaDevicesEnabled:]):
+        * UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
+
 2020-09-25  Adrian Perez de Castro  <[email protected]>
 
         Non-unified build fixes, late September 2020 edition

Modified: trunk/Source/WebKit/UIProcess/API/APIPageConfiguration.cpp (267562 => 267563)


--- trunk/Source/WebKit/UIProcess/API/APIPageConfiguration.cpp	2020-09-25 11:24:26 UTC (rev 267562)
+++ trunk/Source/WebKit/UIProcess/API/APIPageConfiguration.cpp	2020-09-25 11:48:58 UTC (rev 267563)
@@ -94,6 +94,8 @@
     copy->m_limitsNavigationsToAppBoundDomains = this->m_limitsNavigationsToAppBoundDomains;
 #endif
 
+    copy->m_mediaCaptureEnabled = this->m_mediaCaptureEnabled;
+
     return copy;
 }
 

Modified: trunk/Source/WebKit/UIProcess/API/APIPageConfiguration.h (267562 => 267563)


--- trunk/Source/WebKit/UIProcess/API/APIPageConfiguration.h	2020-09-25 11:24:26 UTC (rev 267562)
+++ trunk/Source/WebKit/UIProcess/API/APIPageConfiguration.h	2020-09-25 11:48:58 UTC (rev 267563)
@@ -162,6 +162,9 @@
     void setLimitsNavigationsToAppBoundDomains(bool limits) { m_limitsNavigationsToAppBoundDomains = limits; }
 #endif
 
+    void setMediaCaptureEnabled(bool value) { m_mediaCaptureEnabled = value; }
+    bool mediaCaptureEnabled() const { return m_mediaCaptureEnabled; }
+
     void setShouldRelaxThirdPartyCookieBlocking(WebCore::ShouldRelaxThirdPartyCookieBlocking value) { m_shouldRelaxThirdPartyCookieBlocking = value; }
     WebCore::ShouldRelaxThirdPartyCookieBlocking shouldRelaxThirdPartyCookieBlocking() const { return m_shouldRelaxThirdPartyCookieBlocking; }
     
@@ -212,6 +215,8 @@
     bool m_limitsNavigationsToAppBoundDomains { false };
 #endif
 
+    bool m_mediaCaptureEnabled { false };
+
     WebCore::ShouldRelaxThirdPartyCookieBlocking m_shouldRelaxThirdPartyCookieBlocking { WebCore::ShouldRelaxThirdPartyCookieBlocking::No };
 };
 

Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm (267562 => 267563)


--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm	2020-09-25 11:24:26 UTC (rev 267562)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm	2020-09-25 11:48:58 UTC (rev 267563)
@@ -508,6 +508,8 @@
     pageConfiguration->preferences()->setNeedsStorageAccessFromFileURLsQuirk(!![_configuration _needsStorageAccessFromFileURLsQuirk]);
     pageConfiguration->preferences()->setMediaContentTypesRequiringHardwareSupport(String([_configuration _mediaContentTypesRequiringHardwareSupport]));
     pageConfiguration->preferences()->setAllowMediaContentTypesRequiringHardwareSupportAsFallback(!![_configuration _allowMediaContentTypesRequiringHardwareSupportAsFallback]);
+    if (!pageConfiguration->preferences()->mediaDevicesEnabled())
+        pageConfiguration->preferences()->setMediaDevicesEnabled(!![_configuration _mediaCaptureEnabled]);
 
     pageConfiguration->preferences()->setColorFilterEnabled(!![_configuration _colorFilterEnabled]);
 

Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfiguration.mm (267562 => 267563)


--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfiguration.mm	2020-09-25 11:24:26 UTC (rev 267562)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfiguration.mm	2020-09-25 11:48:58 UTC (rev 267563)
@@ -1196,6 +1196,16 @@
     return _allowMediaContentTypesRequiringHardwareSupportAsFallback;
 }
 
+- (BOOL)_mediaCaptureEnabled
+{
+    return _pageConfiguration->mediaCaptureEnabled();
+}
+
+- (void)_setMediaCaptureEnabled:(BOOL)enabled
+{
+    _pageConfiguration->setMediaCaptureEnabled(enabled);
+}
+
 - (void)_setUndoManagerAPIEnabled:(BOOL)enabled
 {
     _undoManagerAPIEnabled = enabled;

Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h (267562 => 267563)


--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h	2020-09-25 11:24:26 UTC (rev 267562)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h	2020-09-25 11:48:58 UTC (rev 267563)
@@ -120,6 +120,8 @@
 @property (nonatomic, setter=_setLegacyEncryptedMediaAPIEnabled:) BOOL _legacyEncryptedMediaAPIEnabled WK_API_AVAILABLE(macos(10.13), ios(11.0));
 @property (nonatomic, setter=_setAllowMediaContentTypesRequiringHardwareSupportAsFallback:) BOOL _allowMediaContentTypesRequiringHardwareSupportAsFallback WK_API_AVAILABLE(macos(10.13), ios(11.0));
 
+@property (nonatomic, setter=_setMediaCaptureEnabled:) BOOL _mediaCaptureEnabled WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));
+
 // The input of this SPI is an array of image UTI (Uniform Type Identifier).
 @property (nonatomic, copy, setter=_setAdditionalSupportedImageTypes:) NSArray<NSString *> *_additionalSupportedImageTypes WK_API_AVAILABLE(macos(10.14.4), ios(12.2));
 

Modified: trunk/Tools/ChangeLog (267562 => 267563)


--- trunk/Tools/ChangeLog	2020-09-25 11:24:26 UTC (rev 267562)
+++ trunk/Tools/ChangeLog	2020-09-25 11:48:58 UTC (rev 267563)
@@ -1,3 +1,30 @@
+2020-09-25  Youenn Fablet  <[email protected]>
+
+        Introduce WKWebViewConfiguration mediaCaptureEnabled
+        https://bugs.webkit.org/show_bug.cgi?id=216872
+
+        Reviewed by Alex Christensen.
+
+        Make use of new configuration boolean instead of mediaDevicesEnabled WebPreferences API.
+
+        * MiniBrowser/mac/AppDelegate.m:
+        (-[BrowserAppDelegate defaultConfiguration]):
+        * TestWebKitAPI/Tests/WebKit/GetUserMedia.mm:
+        (TestWebKitAPI::TEST):
+        * TestWebKitAPI/Tests/WebKit/GetUserMediaNavigation.mm:
+        (TestWebKitAPI::TEST):
+        * TestWebKitAPI/Tests/WebKit/GetUserMediaReprompt.mm:
+        (TestWebKitAPI::TEST):
+        * TestWebKitAPI/Tests/WebKit/MediaStreamTrackDetached.mm:
+        (TestWebKitAPI::TEST):
+        * TestWebKitAPI/Tests/WebKitCocoa/GetDisplayMedia.mm:
+        (TestWebKitAPI::GetDisplayMediaTest::SetUp):
+        * TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
+        * TestWebKitAPI/Tests/WebKitCocoa/UserMediaDisabled.mm:
+        (MediaCaptureDisabledTest::SetUp):
+        * TestWebKitAPI/Tests/WebKitCocoa/UserMediaSimulateFailedSandbox.mm:
+        (MediaCaptureSimulateFailedSandbox::SetUp):
+
 2020-09-24  Kate Cheney  <[email protected]>
 
         InAppBrowserPrivacy HTTPCookie tests incorrectly use the IsInAppBrowserPrivacyEnabled NSUserDefaults value

Modified: trunk/Tools/MiniBrowser/mac/AppDelegate.m (267562 => 267563)


--- trunk/Tools/MiniBrowser/mac/AppDelegate.m	2020-09-25 11:24:26 UTC (rev 267562)
+++ trunk/Tools/MiniBrowser/mac/AppDelegate.m	2020-09-25 11:48:58 UTC (rev 267563)
@@ -139,10 +139,10 @@
             [configuration.preferences _setEnabled:enabled forInternalDebugFeature:feature];
         }
 
+        configuration._mediaCaptureEnabled = YES;
         configuration.preferences._fullScreenEnabled = YES;
         configuration.preferences._allowsPictureInPictureMediaPlayback = YES;
         configuration.preferences._developerExtrasEnabled = YES;
-        configuration.preferences._mediaDevicesEnabled = YES;
         configuration.preferences._mockCaptureDevicesEnabled = YES;
         configuration.preferences._accessibilityIsolatedTreeEnabled = YES;
     }

Modified: trunk/Tools/TestWebKitAPI/Tests/WebKit/GetUserMedia.mm (267562 => 267563)


--- trunk/Tools/TestWebKitAPI/Tests/WebKit/GetUserMedia.mm	2020-09-25 11:24:26 UTC (rev 267562)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKit/GetUserMedia.mm	2020-09-25 11:48:58 UTC (rev 267563)
@@ -36,6 +36,7 @@
 #import <WebKit/WKUIDelegatePrivate.h>
 #import <WebKit/WKWebView.h>
 #import <WebKit/WKWebViewConfiguration.h>
+#import <WebKit/WKWebViewConfigurationPrivate.h>
 #import <WebKit/WKWebViewPrivateForTesting.h>
 #import <WebKit/_WKProcessPoolConfiguration.h>
 #import <wtf/text/StringBuilder.h>
@@ -119,7 +120,7 @@
     auto processPoolConfig = adoptNS([[_WKProcessPoolConfiguration alloc] init]);
     auto preferences = [configuration preferences];
     preferences._mediaCaptureRequiresSecureConnection = NO;
-    preferences._mediaDevicesEnabled = YES;
+    configuration.get()._mediaCaptureEnabled = YES;
     preferences._mockCaptureDevicesEnabled = YES;
     auto webView = [[TestWKWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 500) configuration:configuration.get() processPoolConfiguration:processPoolConfig.get()];
     auto delegate = adoptNS([[GetUserMediaCaptureUIDelegate alloc] init]);
@@ -168,7 +169,7 @@
     auto processPoolConfig = adoptNS([[_WKProcessPoolConfiguration alloc] init]);
     auto preferences = [configuration preferences];
     preferences._mediaCaptureRequiresSecureConnection = NO;
-    preferences._mediaDevicesEnabled = YES;
+    configuration.get()._mediaCaptureEnabled = YES;
     preferences._mockCaptureDevicesEnabled = YES;
 
     auto messageHandler = adoptNS([[GUMMessageHandler alloc] init]);
@@ -210,7 +211,7 @@
     auto processPoolConfig = adoptNS([[_WKProcessPoolConfiguration alloc] init]);
     auto preferences = [configuration preferences];
     preferences._mediaCaptureRequiresSecureConnection = NO;
-    preferences._mediaDevicesEnabled = YES;
+    configuration.get()._mediaCaptureEnabled = YES;
     preferences._mockCaptureDevicesEnabled = YES;
 
     auto messageHandler = adoptNS([[GUMMessageHandler alloc] init]);
@@ -247,7 +248,7 @@
     auto processPoolConfig = adoptNS([[_WKProcessPoolConfiguration alloc] init]);
     auto preferences = [configuration preferences];
     preferences._mediaCaptureRequiresSecureConnection = NO;
-    preferences._mediaDevicesEnabled = YES;
+    configuration.get()._mediaCaptureEnabled = YES;
     preferences._mockCaptureDevicesEnabled = YES;
 
     auto messageHandler = adoptNS([[GUMMessageHandler alloc] init]);
@@ -282,7 +283,7 @@
 
     auto preferences = [configuration preferences];
     preferences._mediaCaptureRequiresSecureConnection = NO;
-    preferences._mediaDevicesEnabled = YES;
+    configuration.get()._mediaCaptureEnabled = YES;
     preferences._mockCaptureDevicesEnabled = YES;
 
     auto messageHandler = adoptNS([[GUMMessageHandler alloc] init]);

Modified: trunk/Tools/TestWebKitAPI/Tests/WebKit/GetUserMediaNavigation.mm (267562 => 267563)


--- trunk/Tools/TestWebKitAPI/Tests/WebKit/GetUserMediaNavigation.mm	2020-09-25 11:24:26 UTC (rev 267562)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKit/GetUserMediaNavigation.mm	2020-09-25 11:48:58 UTC (rev 267563)
@@ -73,7 +73,7 @@
     auto processPoolConfig = adoptNS([[_WKProcessPoolConfiguration alloc] init]);
     auto preferences = [configuration preferences];
     preferences._mediaCaptureRequiresSecureConnection = NO;
-    preferences._mediaDevicesEnabled = YES;
+    configuration.get()._mediaCaptureEnabled = YES;
     preferences._mockCaptureDevicesEnabled = YES;
     auto webView = [[TestWKWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 500) configuration:configuration.get() processPoolConfiguration:processPoolConfig.get()];
     auto delegate = adoptNS([[NavigationWhileGetUserMediaPromptDisplayedUIDelegate alloc] init]);
@@ -90,7 +90,7 @@
     auto processPoolConfig = adoptNS([[_WKProcessPoolConfiguration alloc] init]);
     auto preferences = [configuration preferences];
     preferences._mediaCaptureRequiresSecureConnection = NO;
-    preferences._mediaDevicesEnabled = YES;
+    configuration.get()._mediaCaptureEnabled = YES;
     preferences._mockCaptureDevicesEnabled = YES;
     auto webView = [[TestWKWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 500) configuration:configuration.get() processPoolConfiguration:processPoolConfig.get()];
     auto delegate = adoptNS([[NavigationWhileGetUserMediaPromptDisplayedUIDelegate alloc] init]);
@@ -116,7 +116,7 @@
     auto processPoolConfig = adoptNS([[_WKProcessPoolConfiguration alloc] init]);
     auto preferences = [configuration preferences];
     preferences._mediaCaptureRequiresSecureConnection = NO;
-    preferences._mediaDevicesEnabled = YES;
+    configuration.get()._mediaCaptureEnabled = YES;
     preferences._mockCaptureDevicesEnabled = YES;
     auto webView = [[TestWKWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 500) configuration:configuration.get() processPoolConfiguration:processPoolConfig.get()];
     auto delegate = adoptNS([[NavigationWhileGetUserMediaPromptDisplayedUIDelegate alloc] init]);

Modified: trunk/Tools/TestWebKitAPI/Tests/WebKit/GetUserMediaReprompt.mm (267562 => 267563)


--- trunk/Tools/TestWebKitAPI/Tests/WebKit/GetUserMediaReprompt.mm	2020-09-25 11:24:26 UTC (rev 267562)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKit/GetUserMediaReprompt.mm	2020-09-25 11:48:58 UTC (rev 267563)
@@ -34,6 +34,7 @@
 #import <WebKit/WKUIDelegatePrivate.h>
 #import <WebKit/WKWebView.h>
 #import <WebKit/WKWebViewConfiguration.h>
+#import <WebKit/WKWebViewConfigurationPrivate.h>
 #import <WebKit/_WKProcessPoolConfiguration.h>
 
 static bool wasPrompted = false;
@@ -105,7 +106,7 @@
     auto processPoolConfig = adoptNS([[_WKProcessPoolConfiguration alloc] init]);
     auto preferences = [configuration preferences];
     preferences._mediaCaptureRequiresSecureConnection = NO;
-    preferences._mediaDevicesEnabled = YES;
+    configuration.get()._mediaCaptureEnabled = YES;
     preferences._mockCaptureDevicesEnabled = YES;
     auto webView = [[GetUserMediaRepromptTestView alloc] initWithFrame:CGRectMake(0, 0, 320, 500) configuration:configuration.get() processPoolConfiguration:processPoolConfig.get()];
     auto delegate = adoptNS([[GetUserMediaRepromptUIDelegate alloc] init]);
@@ -144,7 +145,7 @@
     auto processPoolConfig = adoptNS([[_WKProcessPoolConfiguration alloc] init]);
     auto preferences = [configuration preferences];
     preferences._mediaCaptureRequiresSecureConnection = NO;
-    preferences._mediaDevicesEnabled = YES;
+    configuration.get()._mediaCaptureEnabled = YES;
     preferences._mockCaptureDevicesEnabled = YES;
     auto webView = [[GetUserMediaRepromptTestView alloc] initWithFrame:CGRectMake(0, 0, 320, 500) configuration:configuration.get() processPoolConfiguration:processPoolConfig.get()];
     auto delegate = adoptNS([[GetUserMediaOnlyAudioUIDelegate alloc] init]);
@@ -167,7 +168,7 @@
     auto processPoolConfig = adoptNS([[_WKProcessPoolConfiguration alloc] init]);
     auto preferences = [configuration preferences];
     preferences._mediaCaptureRequiresSecureConnection = NO;
-    preferences._mediaDevicesEnabled = YES;
+    configuration.get()._mediaCaptureEnabled = YES;
     preferences._mockCaptureDevicesEnabled = YES;
     auto webView = [[GetUserMediaRepromptTestView alloc] initWithFrame:CGRectMake(0, 0, 320, 500) configuration:configuration.get() processPoolConfiguration:processPoolConfig.get()];
     auto delegate = adoptNS([[GetUserMediaRepromptUIDelegate alloc] init]);

Modified: trunk/Tools/TestWebKitAPI/Tests/WebKit/MediaStreamTrackDetached.mm (267562 => 267563)


--- trunk/Tools/TestWebKitAPI/Tests/WebKit/MediaStreamTrackDetached.mm	2020-09-25 11:24:26 UTC (rev 267562)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKit/MediaStreamTrackDetached.mm	2020-09-25 11:48:58 UTC (rev 267563)
@@ -33,6 +33,7 @@
 #import <WebKit/WKPreferencesPrivate.h>
 #import <WebKit/WKUIDelegatePrivate.h>
 #import <WebKit/WKWebViewConfiguration.h>
+#import <WebKit/WKWebViewConfigurationPrivate.h>
 #import <WebKit/_WKProcessPoolConfiguration.h>
 
 static bool hasRecievedCorrectCaptureState = false;
@@ -68,7 +69,7 @@
     auto processPoolConfig = adoptNS([[_WKProcessPoolConfiguration alloc] init]);
     auto preferences = [configuration preferences];
     preferences._mediaCaptureRequiresSecureConnection = NO;
-    preferences._mediaDevicesEnabled = YES;
+    configuration.get()._mediaCaptureEnabled = YES;
     preferences._mockCaptureDevicesEnabled = YES;
     auto webView = adoptNS([[TestWKWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 500) configuration:configuration.get() processPoolConfiguration:processPoolConfig.get()]);
     auto delegate = adoptNS([[MediaStreamTrackDetachedUIDelegate alloc] init]);

Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/GetDisplayMedia.mm (267562 => 267563)


--- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/GetDisplayMedia.mm	2020-09-25 11:24:26 UTC (rev 267562)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/GetDisplayMedia.mm	2020-09-25 11:48:58 UTC (rev 267563)
@@ -34,6 +34,7 @@
 #import <WebKit/WKUIDelegatePrivate.h>
 #import <WebKit/WKWebView.h>
 #import <WebKit/WKWebViewConfiguration.h>
+#import <WebKit/WKWebViewConfigurationPrivate.h>
 
 static bool wasPrompted = false;
 static bool shouldDeny = false;
@@ -101,7 +102,7 @@
 
         auto preferences = [m_configuration preferences];
         preferences._mediaCaptureRequiresSecureConnection = NO;
-        preferences._mediaDevicesEnabled = YES;
+        m_configuration.get()._mediaCaptureEnabled = YES;
         preferences._mockCaptureDevicesEnabled = YES;
         preferences._screenCaptureEnabled = YES;
 

Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm (267562 => 267563)


--- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm	2020-09-25 11:24:26 UTC (rev 267562)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm	2020-09-25 11:48:58 UTC (rev 267563)
@@ -6440,7 +6440,7 @@
     auto webViewConfiguration = adoptNS([[WKWebViewConfiguration alloc] init]);
     auto preferences = [webViewConfiguration.get() preferences];
     preferences._mediaCaptureRequiresSecureConnection = NO;
-    preferences._mediaDevicesEnabled = YES;
+    webViewConfiguration.get()._mediaCaptureEnabled = YES;
     preferences._mockCaptureDevicesEnabled = YES;
 
     [webViewConfiguration setProcessPool:processPool.get()];

Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/UserMediaDisabled.mm (267562 => 267563)


--- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/UserMediaDisabled.mm	2020-09-25 11:24:26 UTC (rev 267562)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/UserMediaDisabled.mm	2020-09-25 11:48:58 UTC (rev 267563)
@@ -84,6 +84,7 @@
     virtual void SetUp()
     {
         m_configuration = adoptNS([[WKWebViewConfiguration alloc] init]);
+        m_configuration.get()._mediaCaptureEnabled = YES;
 
         RetainPtr<UserMediaMessageHandler> handler = adoptNS([[UserMediaMessageHandler alloc] init]);
         [[m_configuration userContentController] addScriptMessageHandler:handler.get() name:@"testHandler"];
@@ -91,7 +92,6 @@
         m_webView = adoptNS([[TestWKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) configuration:m_configuration.get()]);
 
         auto preferences = [m_webView configuration].preferences;
-        preferences._mediaDevicesEnabled = YES;
         preferences._mockCaptureDevicesEnabled = YES;
         preferences._mediaCaptureRequiresSecureConnection = NO;
 

Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/UserMediaSimulateFailedSandbox.mm (267562 => 267563)


--- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/UserMediaSimulateFailedSandbox.mm	2020-09-25 11:24:26 UTC (rev 267562)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/UserMediaSimulateFailedSandbox.mm	2020-09-25 11:48:58 UTC (rev 267563)
@@ -84,6 +84,7 @@
     virtual void SetUp()
     {
         m_configuration = adoptNS([[WKWebViewConfiguration alloc] init]);
+        m_configuration.get()._mediaCaptureEnabled = YES;
 
         RetainPtr<SimulateFailedSandboxMessageHandler> handler = adoptNS([[SimulateFailedSandboxMessageHandler alloc] init]);
         [[m_configuration userContentController] addScriptMessageHandler:handler.get() name:@"testHandler"];
@@ -91,7 +92,6 @@
         m_webView = adoptNS([[TestWKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) configuration:m_configuration.get()]);
 
         auto preferences = [m_webView configuration].preferences;
-        preferences._mediaDevicesEnabled = YES;
         preferences._mockCaptureDevicesEnabled = YES;
         preferences._mediaCaptureRequiresSecureConnection = NO;
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to