Title: [257472] trunk
Revision
257472
Author
[email protected]
Date
2020-02-26 07:57:19 -0800 (Wed, 26 Feb 2020)

Log Message

Use WebPageProxy preferences for capture instead of WebProcessPool configuration parameters
https://bugs.webkit.org/show_bug.cgi?id=208238

Reviewed by Eric Carlson.

Source/WebKit:

We can use page preferences instead of pool preferences for audio/video capture.
This allows removing code and is more up to date.
Manually tested.

* UIProcess/API/APIProcessPoolConfiguration.cpp:
(API::ProcessPoolConfiguration::copy):
* UIProcess/API/APIProcessPoolConfiguration.h:
* UIProcess/API/C/WKContextConfigurationRef.cpp:
* UIProcess/API/C/WKContextConfigurationRef.h:
* UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
* UIProcess/WebPageProxy.cpp:
* UIProcess/WebPreferences.cpp:
(WebKit::WebPreferences::updateBoolValueForInternalDebugFeatureKey):
(WebKit::WebPreferences::updateBoolValueForExperimentalFeatureKey):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::createWebPage):

Tools:

* TestWebKitAPI/Tests/WebKitCocoa/WKProcessPoolConfiguration.mm:
(TEST):
Remove use of deleted parameter.

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (257471 => 257472)


--- trunk/Source/WebKit/ChangeLog	2020-02-26 15:56:14 UTC (rev 257471)
+++ trunk/Source/WebKit/ChangeLog	2020-02-26 15:57:19 UTC (rev 257472)
@@ -1,3 +1,29 @@
+2020-02-26  Youenn Fablet  <[email protected]>
+
+        Use WebPageProxy preferences for capture instead of WebProcessPool configuration parameters
+        https://bugs.webkit.org/show_bug.cgi?id=208238
+
+        Reviewed by Eric Carlson.
+
+        We can use page preferences instead of pool preferences for audio/video capture.
+        This allows removing code and is more up to date.
+        Manually tested.
+
+        * UIProcess/API/APIProcessPoolConfiguration.cpp:
+        (API::ProcessPoolConfiguration::copy):
+        * UIProcess/API/APIProcessPoolConfiguration.h:
+        * UIProcess/API/C/WKContextConfigurationRef.cpp:
+        * UIProcess/API/C/WKContextConfigurationRef.h:
+        * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
+        * UIProcess/Cocoa/WebProcessPoolCocoa.mm:
+        (WebKit::WebProcessPool::platformInitializeWebProcess):
+        * UIProcess/WebPageProxy.cpp:
+        * UIProcess/WebPreferences.cpp:
+        (WebKit::WebPreferences::updateBoolValueForInternalDebugFeatureKey):
+        (WebKit::WebPreferences::updateBoolValueForExperimentalFeatureKey):
+        * UIProcess/WebProcessPool.cpp:
+        (WebKit::WebProcessPool::createWebPage):
+
 2020-02-26  Chris Dumez  <[email protected]>
 
         Unreviewed, fix debug asserts on the bots after r257389.

Modified: trunk/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.cpp (257471 => 257472)


--- trunk/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.cpp	2020-02-26 15:56:14 UTC (rev 257471)
+++ trunk/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.cpp	2020-02-26 15:57:19 UTC (rev 257472)
@@ -55,7 +55,6 @@
     copy->m_overrideLanguages = this->m_overrideLanguages;
     copy->m_alwaysRunsAtBackgroundPriority = this->m_alwaysRunsAtBackgroundPriority;
     copy->m_shouldTakeUIBackgroundAssertion = this->m_shouldTakeUIBackgroundAssertion;
-    copy->m_shouldCaptureAudioInUIProcess = this->m_shouldCaptureAudioInUIProcess;
     copy->m_shouldCaptureDisplayInUIProcess = this->m_shouldCaptureDisplayInUIProcess;
     copy->m_shouldConfigureJSCForTesting = this->m_shouldConfigureJSCForTesting;
     copy->m_isJITEnabled = this->m_isJITEnabled;

Modified: trunk/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.h (257471 => 257472)


--- trunk/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.h	2020-02-26 15:56:14 UTC (rev 257471)
+++ trunk/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.h	2020-02-26 15:57:19 UTC (rev 257472)
@@ -104,18 +104,6 @@
     bool shouldTakeUIBackgroundAssertion() const { return m_shouldTakeUIBackgroundAssertion; }
     void setShouldTakeUIBackgroundAssertion(bool shouldTakeUIBackgroundAssertion) { m_shouldTakeUIBackgroundAssertion = shouldTakeUIBackgroundAssertion; }
 
-    bool shouldCaptureAudioInUIProcess() const { return m_shouldCaptureAudioInUIProcess; }
-    void setShouldCaptureAudioInUIProcess(bool shouldCaptureAudioInUIProcess) { m_shouldCaptureAudioInUIProcess = shouldCaptureAudioInUIProcess; }
-
-    bool shouldCaptureAudioInGPUProcess() const { return m_shouldCaptureAudioInGPUProcess; }
-    void setShouldCaptureAudioInGPUProcess(bool shouldCaptureAudioInGPUProcess) { m_shouldCaptureAudioInGPUProcess = shouldCaptureAudioInGPUProcess; }
-
-    bool shouldCaptureVideoInUIProcess() const { return m_shouldCaptureVideoInUIProcess; }
-    void setShouldCaptureVideoInUIProcess(bool shouldCaptureVideoInUIProcess) { m_shouldCaptureVideoInUIProcess = shouldCaptureVideoInUIProcess; }
-
-    bool shouldCaptureVideoInGPUProcess() const { return m_shouldCaptureVideoInGPUProcess; }
-    void setShouldCaptureVideoInGPUProcess(bool shouldCaptureVideoInGPUProcess) { m_shouldCaptureVideoInGPUProcess = shouldCaptureVideoInGPUProcess; }
-
     bool shouldCaptureDisplayInUIProcess() const { return m_shouldCaptureDisplayInUIProcess; }
     void setShouldCaptureDisplayInUIProcess(bool shouldCaptureDisplayInUIProcess) { m_shouldCaptureDisplayInUIProcess = shouldCaptureDisplayInUIProcess; }
 
@@ -155,10 +143,6 @@
     Vector<WTF::String> m_overrideLanguages;
     bool m_alwaysRunsAtBackgroundPriority { false };
     bool m_shouldTakeUIBackgroundAssertion { true };
-    bool m_shouldCaptureAudioInUIProcess { false };
-    bool m_shouldCaptureAudioInGPUProcess { false };
-    bool m_shouldCaptureVideoInUIProcess { false };
-    bool m_shouldCaptureVideoInGPUProcess { false };
     bool m_shouldCaptureDisplayInUIProcess { DEFAULT_CAPTURE_DISPLAY_IN_UI_PROCESS };
     ProcessID m_presentingApplicationPID { getCurrentProcessID() };
     Optional<bool> m_processSwapsOnNavigationFromClient;

Modified: trunk/Source/WebKit/UIProcess/API/C/WKContextConfigurationRef.cpp (257471 => 257472)


--- trunk/Source/WebKit/UIProcess/API/C/WKContextConfigurationRef.cpp	2020-02-26 15:56:14 UTC (rev 257471)
+++ trunk/Source/WebKit/UIProcess/API/C/WKContextConfigurationRef.cpp	2020-02-26 15:57:19 UTC (rev 257472)
@@ -155,16 +155,6 @@
     toImpl(configuration)->setOverrideLanguages(toImpl(overrideLanguages)->toStringVector());
 }
 
-bool WKContextConfigurationShouldCaptureAudioInUIProcess(WKContextConfigurationRef configuration)
-{
-    return toImpl(configuration)->shouldCaptureAudioInUIProcess();
-}
-
-void WKContextConfigurationSetShouldCaptureAudioInUIProcess(WKContextConfigurationRef configuration, bool should)
-{
-    toImpl(configuration)->setShouldCaptureAudioInUIProcess(should);
-}
-
 bool WKContextConfigurationProcessSwapsOnNavigation(WKContextConfigurationRef configuration)
 {
     return toImpl(configuration)->processSwapsOnNavigation();

Modified: trunk/Source/WebKit/UIProcess/API/C/WKContextConfigurationRef.h (257471 => 257472)


--- trunk/Source/WebKit/UIProcess/API/C/WKContextConfigurationRef.h	2020-02-26 15:56:14 UTC (rev 257471)
+++ trunk/Source/WebKit/UIProcess/API/C/WKContextConfigurationRef.h	2020-02-26 15:57:19 UTC (rev 257472)
@@ -72,9 +72,6 @@
 WK_EXPORT WKArrayRef WKContextConfigurationCopyOverrideLanguages(WKContextConfigurationRef configuration);
 WK_EXPORT void WKContextConfigurationSetOverrideLanguages(WKContextConfigurationRef configuration, WKArrayRef overrideLanguages);
 
-WK_EXPORT bool WKContextConfigurationShouldCaptureAudioInUIProcess(WKContextConfigurationRef configuration);
-WK_EXPORT void WKContextConfigurationSetShouldCaptureAudioInUIProcess(WKContextConfigurationRef configuration, bool allowed);
-
 WK_EXPORT bool WKContextConfigurationProcessSwapsOnNavigation(WKContextConfigurationRef configuration);
 WK_EXPORT void WKContextConfigurationSetProcessSwapsOnNavigation(WKContextConfigurationRef configuration, bool swaps);
 

Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm (257471 => 257472)


--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm	2020-02-26 15:56:14 UTC (rev 257471)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm	2020-02-26 15:57:19 UTC (rev 257472)
@@ -241,16 +241,6 @@
 {
 }
 
-- (BOOL)shouldCaptureAudioInUIProcess
-{
-    return _processPoolConfiguration->shouldCaptureAudioInUIProcess();
-}
-
-- (void)setShouldCaptureAudioInUIProcess:(BOOL)shouldCaptureAudioInUIProcess
-{
-    _processPoolConfiguration->setShouldCaptureAudioInUIProcess(shouldCaptureAudioInUIProcess);
-}
-
 - (void)setPresentingApplicationPID:(pid_t)presentingApplicationPID
 {
     _processPoolConfiguration->setPresentingApplicationPID(presentingApplicationPID);

Modified: trunk/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm (257471 => 257472)


--- trunk/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm	2020-02-26 15:56:14 UTC (rev 257471)
+++ trunk/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm	2020-02-26 15:57:19 UTC (rev 257472)
@@ -346,7 +346,7 @@
 #endif
 
     // FIXME: Remove this and related parameter when <rdar://problem/29448368> is fixed.
-    if (isSafari && !m_configuration->shouldCaptureAudioInUIProcess() && !m_configuration->shouldCaptureAudioInGPUProcess() && mediaDevicesEnabled)
+    if (isSafari && mediaDevicesEnabled && !m_defaultPageGroup->preferences().captureAudioInUIProcessEnabled() && !m_defaultPageGroup->preferences().captureAudioInGPUProcessEnabled())
         SandboxExtension::createHandleForGenericExtension("com.apple.webkit.microphone", parameters.audioCaptureExtensionHandle);
 #endif
 

Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.cpp (257471 => 257472)


--- trunk/Source/WebKit/UIProcess/WebPageProxy.cpp	2020-02-26 15:56:14 UTC (rev 257471)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.cpp	2020-02-26 15:57:19 UTC (rev 257472)
@@ -7729,10 +7729,10 @@
 
     process.addWebUserContentControllerProxy(m_userContentController, parameters);
 
-    parameters.shouldCaptureAudioInUIProcess = m_process->processPool().configuration().shouldCaptureAudioInUIProcess();
-    parameters.shouldCaptureAudioInGPUProcess = m_process->processPool().configuration().shouldCaptureAudioInGPUProcess();
-    parameters.shouldCaptureVideoInUIProcess = m_process->processPool().configuration().shouldCaptureVideoInUIProcess();
-    parameters.shouldCaptureVideoInGPUProcess = m_process->processPool().configuration().shouldCaptureVideoInGPUProcess();
+    parameters.shouldCaptureAudioInUIProcess = preferences().captureAudioInUIProcessEnabled();
+    parameters.shouldCaptureAudioInGPUProcess = preferences().captureAudioInGPUProcessEnabled();
+    parameters.shouldCaptureVideoInUIProcess = preferences().captureVideoInUIProcessEnabled();
+    parameters.shouldCaptureVideoInGPUProcess = preferences().captureVideoInGPUProcessEnabled();
     parameters.shouldCaptureDisplayInUIProcess = m_process->processPool().configuration().shouldCaptureDisplayInUIProcess();
 
 #if PLATFORM(GTK)

Modified: trunk/Source/WebKit/UIProcess/WebPreferences.cpp (257471 => 257472)


--- trunk/Source/WebKit/UIProcess/WebPreferences.cpp	2020-02-26 15:56:14 UTC (rev 257471)
+++ trunk/Source/WebKit/UIProcess/WebPreferences.cpp	2020-02-26 15:57:19 UTC (rev 257472)
@@ -122,36 +122,11 @@
 
         return;
     }
-    if (key == WebPreferencesKey::captureAudioInUIProcessEnabledKey()) {
-        for (auto* processPool : WebProcessPool::allProcessPools())
-            processPool->configuration().setShouldCaptureAudioInUIProcess(value);
-
-        return;
-    }
-    if (key == WebPreferencesKey::captureAudioInGPUProcessEnabledKey()) {
-        for (auto* processPool : WebProcessPool::allProcessPools())
-            processPool->configuration().setShouldCaptureAudioInGPUProcess(value);
-
-        return;
-    }
-    if (key == WebPreferencesKey::captureVideoInGPUProcessEnabledKey()) {
-        for (auto* processPool : WebProcessPool::allProcessPools())
-            processPool->configuration().setShouldCaptureVideoInGPUProcess(value);
-
-        return;
-    }
-
     update(); // FIXME: Only send over the changed key and value.
 }
 
 void WebPreferences::updateBoolValueForExperimentalFeatureKey(const String& key, bool value)
 {
-    if (key == WebPreferencesKey::captureVideoInUIProcessEnabledKey()) {
-        for (auto* processPool : WebProcessPool::allProcessPools())
-            processPool->configuration().setShouldCaptureVideoInUIProcess(value);
-
-        return;
-    }
     update(); // FIXME: Only send over the changed key and value.
 }
 

Modified: trunk/Source/WebKit/UIProcess/WebProcessPool.cpp (257471 => 257472)


--- trunk/Source/WebKit/UIProcess/WebProcessPool.cpp	2020-02-26 15:56:14 UTC (rev 257471)
+++ trunk/Source/WebKit/UIProcess/WebProcessPool.cpp	2020-02-26 15:57:19 UTC (rev 257472)
@@ -1275,10 +1275,6 @@
     if (wasProcessSwappingOnNavigationEnabled != m_configuration->processSwapsOnNavigation())
         m_webProcessCache->updateCapacity(*this);
 
-    m_configuration->setShouldCaptureAudioInUIProcess(page->preferences().captureAudioInUIProcessEnabled());
-    m_configuration->setShouldCaptureAudioInGPUProcess(page->preferences().captureAudioInGPUProcessEnabled());
-    m_configuration->setShouldCaptureVideoInUIProcess(page->preferences().captureVideoInUIProcessEnabled());
-
     return page;
 }
 

Modified: trunk/Tools/ChangeLog (257471 => 257472)


--- trunk/Tools/ChangeLog	2020-02-26 15:56:14 UTC (rev 257471)
+++ trunk/Tools/ChangeLog	2020-02-26 15:57:19 UTC (rev 257472)
@@ -1,3 +1,14 @@
+2020-02-26  Youenn Fablet  <[email protected]>
+
+        Use WebPageProxy preferences for capture instead of WebProcessPool configuration parameters
+        https://bugs.webkit.org/show_bug.cgi?id=208238
+
+        Reviewed by Eric Carlson.
+
+        * TestWebKitAPI/Tests/WebKitCocoa/WKProcessPoolConfiguration.mm:
+        (TEST):
+        Remove use of deleted parameter.
+
 2020-02-25  Devin Rousso  <[email protected]>
 
         Web Inspector: safari app extension isolated worlds and injected files use the extension's identifier instead of its name

Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKProcessPoolConfiguration.mm (257471 => 257472)


--- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKProcessPoolConfiguration.mm	2020-02-26 15:56:14 UTC (rev 257471)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKProcessPoolConfiguration.mm	2020-02-26 15:57:19 UTC (rev 257472)
@@ -50,7 +50,6 @@
     [configuration setDiskCacheSizeOverride:42000];
     [configuration setCachePartitionedURLSchemes:@[ @"ssh", @"vnc" ]];
     [configuration setAlwaysRevalidatedURLSchemes:@[ @"afp", @"smb" ]];
-    [configuration setShouldCaptureAudioInUIProcess:YES];
 #if PLATFORM(IOS_FAMILY)
     [configuration setAlwaysRunsAtBackgroundPriority:YES];
     [configuration setShouldTakeUIBackgroundAssertion:YES];
@@ -73,7 +72,6 @@
     EXPECT_EQ([configuration diskCacheSizeOverride], [copy diskCacheSizeOverride]);
     EXPECT_TRUE([[configuration cachePartitionedURLSchemes] isEqual:[copy cachePartitionedURLSchemes]]);
     EXPECT_TRUE([[configuration alwaysRevalidatedURLSchemes] isEqual:[copy alwaysRevalidatedURLSchemes]]);
-    EXPECT_EQ([configuration shouldCaptureAudioInUIProcess], [copy shouldCaptureAudioInUIProcess]);
 #if PLATFORM(IOS_FAMILY)
     EXPECT_EQ([configuration alwaysRunsAtBackgroundPriority], [copy alwaysRunsAtBackgroundPriority]);
     EXPECT_EQ([configuration shouldTakeUIBackgroundAssertion], [copy shouldTakeUIBackgroundAssertion]);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to