Title: [267516] trunk/Source
Revision
267516
Author
[email protected]
Date
2020-09-23 20:36:48 -0700 (Wed, 23 Sep 2020)

Log Message

Add feature flags for GPU Process features
https://bugs.webkit.org/show_bug.cgi?id=216901

Reviewed by Tim Horton.

Source/WebCore:

Rename useGPUProcessForMedia to useGPUProcessForMediaEnabled.

No new tests since no functional changes.

* page/Settings.yaml:

Source/WebKit:

Add feature flags for the following GPU Process features:
- 2D canvas in GPU process
- WebGL in GPU process
- DOM rendering in GPU Process

Also, clean up some related feature/function names.

* FeatureFlags/WebKit.plist:
Add keys for the GPU process features and sort all keys.

* Shared/WebPreferencesDefaultValues.cpp:
(WebKit::defaultUseGPUProcessForCanvasRenderingEnabled):
(WebKit::defaultUseGPUProcessForDOMRenderingEnabled):
(WebKit::defaultUseGPUProcessForMediaEnabled):
(WebKit::defaultUseGPUProcessForWebGLEnabled):
(WebKit::defaultCaptureAudioInGPUProcessEnabled):
(WebKit::defaultCaptureVideoInGPUProcessEnabled):
(WebKit::defaultWebRTCCodecsInGPUProcess):
(WebKit::defaultUseGPUProcessForMedia): Deleted.
(WebKit::defaultRenderCanvasInGPUProcessEnabled): Deleted.
* Shared/WebPreferencesDefaultValues.h:
* Shared/WebPreferencesInternal.yaml:
Add preferences and corresponding default values.

* Shared/WebProcessCreationParameters.h:
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
Rename useGPUProcessForMedia to useGPUProcessForMediaEnabled.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::creationParameters):
Use useGPUProcessForCanvasRenderingEnabled instead of renderCanvasInGPUProcessEnabled.

* WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:
(WebKit::RemoteMediaPlayerManager::updatePreferences):
Use useGPUProcessForMediaEnabled instead of useGPUProcessForMedia.

* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): Ditto.

* WebProcess/WebPage/WebPage.cpp:
(WebKit::m_limitsNavigationsToAppBoundDomains): Ditto.
(WebKit::WebPage::updatePreferences): Ditto.

Source/WebKitLegacy/mac:

Minor cleanups.

* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences useGPUProcessForMediaEnabled]):
(-[WebPreferences setUseGPUProcessForMediaEnabled:]):
(-[WebPreferences useGPUProcessForMedia]): Deleted.
(-[WebPreferences setUseGPUProcessForMedia:]): Deleted.
* WebView/WebPreferencesPrivate.h:
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (267515 => 267516)


--- trunk/Source/WebCore/ChangeLog	2020-09-24 03:15:01 UTC (rev 267515)
+++ trunk/Source/WebCore/ChangeLog	2020-09-24 03:36:48 UTC (rev 267516)
@@ -1,3 +1,16 @@
+2020-09-23  Peng Liu  <[email protected]>
+
+        Add feature flags for GPU Process features
+        https://bugs.webkit.org/show_bug.cgi?id=216901
+
+        Reviewed by Tim Horton.
+
+        Rename useGPUProcessForMedia to useGPUProcessForMediaEnabled.
+
+        No new tests since no functional changes.
+
+        * page/Settings.yaml:
+
 2020-09-23  Zalan Bujtas  <[email protected]>
 
         [LFC][Integration] Line layout logic should consult LayoutState whether remove trailing letter spacing.

Modified: trunk/Source/WebCore/page/Settings.yaml (267515 => 267516)


--- trunk/Source/WebCore/page/Settings.yaml	2020-09-24 03:15:01 UTC (rev 267515)
+++ trunk/Source/WebCore/page/Settings.yaml	2020-09-24 03:36:48 UTC (rev 267516)
@@ -332,7 +332,7 @@
 genericCueAPIEnabled:
   initial: false
   conditional: ENABLE(VIDEO)
-useGPUProcessForMedia:
+useGPUProcessForMediaEnabled:
   initial: false
   conditional: ENABLE(GPU_PROCESS)
 scrollingCoordinatorEnabled:

Modified: trunk/Source/WebKit/ChangeLog (267515 => 267516)


--- trunk/Source/WebKit/ChangeLog	2020-09-24 03:15:01 UTC (rev 267515)
+++ trunk/Source/WebKit/ChangeLog	2020-09-24 03:36:48 UTC (rev 267516)
@@ -1,3 +1,54 @@
+2020-09-23  Peng Liu  <[email protected]>
+
+        Add feature flags for GPU Process features
+        https://bugs.webkit.org/show_bug.cgi?id=216901
+
+        Reviewed by Tim Horton.
+
+        Add feature flags for the following GPU Process features:
+        - 2D canvas in GPU process
+        - WebGL in GPU process
+        - DOM rendering in GPU Process
+
+        Also, clean up some related feature/function names.
+
+        * FeatureFlags/WebKit.plist:
+        Add keys for the GPU process features and sort all keys.
+
+        * Shared/WebPreferencesDefaultValues.cpp:
+        (WebKit::defaultUseGPUProcessForCanvasRenderingEnabled):
+        (WebKit::defaultUseGPUProcessForDOMRenderingEnabled):
+        (WebKit::defaultUseGPUProcessForMediaEnabled):
+        (WebKit::defaultUseGPUProcessForWebGLEnabled):
+        (WebKit::defaultCaptureAudioInGPUProcessEnabled):
+        (WebKit::defaultCaptureVideoInGPUProcessEnabled):
+        (WebKit::defaultWebRTCCodecsInGPUProcess):
+        (WebKit::defaultUseGPUProcessForMedia): Deleted.
+        (WebKit::defaultRenderCanvasInGPUProcessEnabled): Deleted.
+        * Shared/WebPreferencesDefaultValues.h:
+        * Shared/WebPreferencesInternal.yaml:
+        Add preferences and corresponding default values.
+
+        * Shared/WebProcessCreationParameters.h:
+        * UIProcess/Cocoa/WebProcessPoolCocoa.mm:
+        (WebKit::WebProcessPool::platformInitializeWebProcess):
+        Rename useGPUProcessForMedia to useGPUProcessForMediaEnabled.
+
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::creationParameters):
+        Use useGPUProcessForCanvasRenderingEnabled instead of renderCanvasInGPUProcessEnabled.
+
+        * WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:
+        (WebKit::RemoteMediaPlayerManager::updatePreferences):
+        Use useGPUProcessForMediaEnabled instead of useGPUProcessForMedia.
+
+        * WebProcess/InjectedBundle/InjectedBundle.cpp:
+        (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): Ditto.
+
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::m_limitsNavigationsToAppBoundDomains): Ditto.
+        (WebKit::WebPage::updatePreferences): Ditto.
+
 2020-09-23  Chris Dumez  <[email protected]>
 
         Turn off the legacy prefixed WebAudio API

Modified: trunk/Source/WebKit/FeatureFlags/WebKit.plist (267515 => 267516)


--- trunk/Source/WebKit/FeatureFlags/WebKit.plist	2020-09-24 03:15:01 UTC (rev 267515)
+++ trunk/Source/WebKit/FeatureFlags/WebKit.plist	2020-09-24 03:36:48 UTC (rev 267516)
@@ -7,56 +7,71 @@
         <key>Enabled</key>
         <true/>
     </dict>
-    <key>canvas_and_media_in_gpu_process</key>
+    <key>gpu_process_canvas_rendering</key>
     <dict>
         <key>Enabled</key>
         <false/>
     </dict>
-    <key>InAppBrowserPrivacy</key>
+    <key>gpu_process_dom_rendering</key>
     <dict>
         <key>Enabled</key>
         <false/>
     </dict>
-    <key>incremental_pdf</key>
+    <key>gpu_process_media</key>
     <dict>
         <key>Enabled</key>
-        <true/>
+        <false/>
     </dict>
-    <key>ScriptOptimizations</key>
+    <key>gpu_process_webgl</key>
     <dict>
         <key>Enabled</key>
         <false/>
     </dict>
-    <key>WebGL2</key>
+    <key>gpu_process_webrtc</key>
     <dict>
         <key>Enabled</key>
         <false/>
     </dict>
-    <key>WebGPU</key>
+    <key>InAppBrowserPrivacy</key>
     <dict>
         <key>Enabled</key>
         <false/>
     </dict>
-    <key>WebXR</key>
+    <key>incremental_pdf</key>
     <dict>
         <key>Enabled</key>
+        <true/>
+    </dict>
+    <key>ScriptOptimizations</key>
+    <dict>
+        <key>Enabled</key>
         <false/>
     </dict>
-    <key>webrtc_in_gpu_process</key>
+	<key>sw_vp9_decoder_on_battery</key>
     <dict>
         <key>Enabled</key>
         <false/>
     </dict>
-    <key>vp9_decoder</key>
+	<key>vp9_decoder</key>
     <dict>
         <key>Enabled</key>
         <true/>
     </dict>
-    <key>sw_vp9_decoder_on_battery</key>
+    <key>WebGL2</key>
     <dict>
         <key>Enabled</key>
         <false/>
     </dict>
+    <key>WebGPU</key>
+    <dict>
+        <key>Enabled</key>
+        <false/>
+    </dict>
+    <key>WebXR</key>
+    <dict>
+        <key>Enabled</key>
+        <false/>
+    </dict>
     <key>webm_parser</key>
     <dict>
         <key>Enabled</key>

Modified: trunk/Source/WebKit/Shared/WebPreferencesDefaultValues.cpp (267515 => 267516)


--- trunk/Source/WebKit/Shared/WebPreferencesDefaultValues.cpp	2020-09-24 03:15:01 UTC (rev 267515)
+++ trunk/Source/WebKit/Shared/WebPreferencesDefaultValues.cpp	2020-09-24 03:36:48 UTC (rev 267516)
@@ -112,32 +112,50 @@
 
 #if ENABLE(GPU_PROCESS)
 
-bool defaultUseGPUProcessForMedia()
+bool defaultUseGPUProcessForCanvasRenderingEnabled()
 {
 #if HAVE(SYSTEM_FEATURE_FLAGS)
-    return isFeatureFlagEnabled("canvas_and_media_in_gpu_process");
+    return isFeatureFlagEnabled("gpu_process_canvas_rendering");
 #endif
 
     return false;
 }
 
-#endif // ENABLE(GPU_PROCESS)
+bool defaultUseGPUProcessForDOMRenderingEnabled()
+{
+#if HAVE(SYSTEM_FEATURE_FLAGS)
+    return isFeatureFlagEnabled("gpu_process_dom_rendering");
+#endif
 
-bool defaultRenderCanvasInGPUProcessEnabled()
+    return false;
+}
+
+bool defaultUseGPUProcessForMediaEnabled()
 {
 #if HAVE(SYSTEM_FEATURE_FLAGS)
-    return isFeatureFlagEnabled("canvas_and_media_in_gpu_process");
+    return isFeatureFlagEnabled("gpu_process_media");
 #endif
 
     return false;
 }
 
+bool defaultUseGPUProcessForWebGLEnabled()
+{
+#if HAVE(SYSTEM_FEATURE_FLAGS)
+    return isFeatureFlagEnabled("gpu_process_webgl");
+#endif
+
+    return false;
+}
+
+#endif // ENABLE(GPU_PROCESS)
+
 #if ENABLE(MEDIA_STREAM)
 
 bool defaultCaptureAudioInGPUProcessEnabled()
 {
 #if PLATFORM(MAC) && HAVE(SYSTEM_FEATURE_FLAGS)
-    return isFeatureFlagEnabled("webrtc_in_gpu_process");
+    return isFeatureFlagEnabled("gpu_process_webrtc");
 #endif
 
 #if PLATFORM(IOS_FAMILY) && HAVE(SYSTEM_FEATURE_FLAGS)
@@ -163,7 +181,7 @@
 bool defaultCaptureVideoInGPUProcessEnabled()
 {
 #if HAVE(SYSTEM_FEATURE_FLAGS)
-    return isFeatureFlagEnabled("webrtc_in_gpu_process");
+    return isFeatureFlagEnabled("gpu_process_webrtc");
 #endif
 
     return false;
@@ -185,7 +203,7 @@
 bool defaultWebRTCCodecsInGPUProcess()
 {
 #if HAVE(SYSTEM_FEATURE_FLAGS)
-    return isFeatureFlagEnabled("webrtc_in_gpu_process");
+    return isFeatureFlagEnabled("gpu_process_webrtc");
 #endif
 
     return false;

Modified: trunk/Source/WebKit/Shared/WebPreferencesDefaultValues.h (267515 => 267516)


--- trunk/Source/WebKit/Shared/WebPreferencesDefaultValues.h	2020-09-24 03:15:01 UTC (rev 267515)
+++ trunk/Source/WebKit/Shared/WebPreferencesDefaultValues.h	2020-09-24 03:36:48 UTC (rev 267516)
@@ -335,11 +335,12 @@
 bool defaultAsyncOverflowScrollingEnabled();
 
 #if ENABLE(GPU_PROCESS)
-bool defaultUseGPUProcessForMedia();
+bool defaultUseGPUProcessForCanvasRenderingEnabled();
+bool defaultUseGPUProcessForDOMRenderingEnabled();
+bool defaultUseGPUProcessForMediaEnabled();
+bool defaultUseGPUProcessForWebGLEnabled();
 #endif
 
-bool defaultRenderCanvasInGPUProcessEnabled();
-
 #if ENABLE(MEDIA_STREAM)
 bool defaultCaptureAudioInGPUProcessEnabled();
 bool defaultCaptureAudioInUIProcessEnabled();

Modified: trunk/Source/WebKit/Shared/WebPreferencesInternal.yaml (267515 => 267516)


--- trunk/Source/WebKit/Shared/WebPreferencesInternal.yaml	2020-09-24 03:15:01 UTC (rev 267515)
+++ trunk/Source/WebKit/Shared/WebPreferencesInternal.yaml	2020-09-24 03:36:48 UTC (rev 267516)
@@ -330,13 +330,6 @@
   webcoreBinding: RuntimeEnabledFeatures
   condition: ENABLE(LAYOUT_FORMATTING_CONTEXT)
 
-RenderCanvasInGPUProcessEnabled:
-  type: bool
-  defaultValue: defaultRenderCanvasInGPUProcessEnabled()
-  humanReadableName: "Use GPU Process to render canvas"
-  humanReadableDescription: "Enable canvas rendering in GPU Process"
-  webcoreBinding: none
-
 RestrictedHTTPResponseAccess:
   type: bool
   defaultValue: true
@@ -417,14 +410,38 @@
   humanReadableName: "[ITP Repro] 30 Second Timeout For Non-Cookie Data Removal"
   humanReadableDescription: "Remove all non-cookie website data after just 30 seconds of no user interaction when Intelligent Tracking Prevention is enabled"
 
-UseGPUProcessForMedia:
+UseGPUProcessForCanvasRenderingEnabled:
   type: bool
-  defaultValue: defaultUseGPUProcessForMedia()
+  defaultValue: defaultUseGPUProcessForCanvasRenderingEnabled()
   condition: ENABLE(GPU_PROCESS)
-  humanReadableName: "Use GPU Process for media"
+  humanReadableName: "GPU Process: Canvas Rendering"
+  humanReadableDescription: "Enable canvas rendering in GPU Process"
+  webcoreBinding: none
+
+UseGPUProcessForDOMRenderingEnabled:
+  type: bool
+  defaultValue: defaultUseGPUProcessForDOMRenderingEnabled()
+  condition: ENABLE(GPU_PROCESS)
+  humanReadableName: "GPU Process: DOM Rendering"
+  humanReadableDescription: "Enable DOM rendering in GPU Process"
+  webcoreBinding: none
+
+UseGPUProcessForMediaEnabled:
+  type: bool
+  defaultValue: defaultUseGPUProcessForMediaEnabled()
+  condition: ENABLE(GPU_PROCESS)
+  humanReadableName: "GPU Process: Media"
   humanReadableDescription: "Do all media loading and playback in the GPU Process"
-  webcoreName: useGPUProcessForMedia
+  webcoreName: useGPUProcessForMediaEnabled
 
+UseGPUProcessForWebGLEnabled:
+  type: bool
+  defaultValue: defaultUseGPUProcessForWebGLEnabled()
+  condition: ENABLE(GPU_PROCESS)
+  humanReadableName: "GPU Process: WebGL"
+  humanReadableDescription: "Enable WebGL in GPU Process"
+  webcoreBinding: none
+
 LiveRangeSelectionEnabled:
   type: bool
   defaultValue: false

Modified: trunk/Source/WebKit/Shared/WebProcessCreationParameters.h (267515 => 267516)


--- trunk/Source/WebKit/Shared/WebProcessCreationParameters.h	2020-09-24 03:15:01 UTC (rev 267515)
+++ trunk/Source/WebKit/Shared/WebProcessCreationParameters.h	2020-09-24 03:36:48 UTC (rev 267516)
@@ -124,7 +124,7 @@
     bool fullKeyboardAccessEnabled { false };
     bool memoryCacheDisabled { false };
     bool attrStyleEnabled { false };
-    bool useGPUProcessForMedia { false };
+    bool useGPUProcessForMediaEnabled { false };
 
 #if ENABLE(SERVICE_CONTROLS)
     bool hasImageServices { false };

Modified: trunk/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm (267515 => 267516)


--- trunk/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm	2020-09-24 03:15:01 UTC (rev 267515)
+++ trunk/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm	2020-09-24 03:36:48 UTC (rev 267516)
@@ -451,9 +451,9 @@
 #endif
     parameters.localizedDeviceModel = localizedDeviceModel();
 #endif
-    
+
     // Allow microphone access if either preference is set because WebRTC requires microphone access.
-    bool needWebProcessExtensions = !m_defaultPageGroup->preferences().useGPUProcessForMedia()
+    bool needWebProcessExtensions = !m_defaultPageGroup->preferences().useGPUProcessForMediaEnabled()
         || !m_defaultPageGroup->preferences().captureAudioInGPUProcessEnabled()
         || !m_defaultPageGroup->preferences().captureVideoInGPUProcessEnabled();
 

Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.cpp (267515 => 267516)


--- trunk/Source/WebKit/UIProcess/WebPageProxy.cpp	2020-09-24 03:15:01 UTC (rev 267515)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.cpp	2020-09-24 03:36:48 UTC (rev 267516)
@@ -7928,7 +7928,7 @@
     parameters.shouldCaptureAudioInGPUProcess = preferences().captureAudioInGPUProcessEnabled();
     parameters.shouldCaptureVideoInUIProcess = preferences().captureVideoInUIProcessEnabled();
     parameters.shouldCaptureVideoInGPUProcess = preferences().captureVideoInGPUProcessEnabled();
-    parameters.shouldRenderCanvasInGPUProcess = preferences().renderCanvasInGPUProcessEnabled();
+    parameters.shouldRenderCanvasInGPUProcess = preferences().useGPUProcessForCanvasRenderingEnabled();
     parameters.shouldEnableVP9Decoder = preferences().vp9DecoderEnabled();
 #if ENABLE(VP9) && PLATFORM(COCOA)
     parameters.shouldEnableVP9SWDecoder = preferences().vp9DecoderEnabled() && (!WebCore::systemHasBattery() || preferences().vp9SWDecoderEnabledOnBattery());

Modified: trunk/Source/WebKit/WebProcess/GPU/media/RemoteMediaPlayerManager.cpp (267515 => 267516)


--- trunk/Source/WebKit/WebProcess/GPU/media/RemoteMediaPlayerManager.cpp	2020-09-24 03:15:01 UTC (rev 267515)
+++ trunk/Source/WebKit/WebProcess/GPU/media/RemoteMediaPlayerManager.cpp	2020-09-24 03:36:48 UTC (rev 267516)
@@ -265,10 +265,10 @@
         registrar(makeUnique<MediaPlayerRemoteFactory>(remoteEngineIdentifier, *this));
     };
 
-    RemoteMediaPlayerSupport::setRegisterRemotePlayerCallback(settings.useGPUProcessForMedia() ? WTFMove(registerEngine) : RemoteMediaPlayerSupport::RegisterRemotePlayerCallback());
+    RemoteMediaPlayerSupport::setRegisterRemotePlayerCallback(settings.useGPUProcessForMediaEnabled() ? WTFMove(registerEngine) : RemoteMediaPlayerSupport::RegisterRemotePlayerCallback());
 
 #if PLATFORM(COCOA) && ENABLE(MEDIA_STREAM)
-    if (settings.useGPUProcessForMedia()) {
+    if (settings.useGPUProcessForMediaEnabled()) {
         WebCore::SampleBufferDisplayLayer::setCreator([](auto& client) {
             return WebProcess::singleton().ensureGPUProcessConnection().sampleBufferDisplayLayerManager().createLayer(client);
         });

Modified: trunk/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp (267515 => 267516)


--- trunk/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp	2020-09-24 03:15:01 UTC (rev 267515)
+++ trunk/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp	2020-09-24 03:36:48 UTC (rev 267516)
@@ -223,10 +223,10 @@
     }
 
 #if ENABLE(GPU_PROCESS)
-    if (preference == "WebKitUseGPUProcessForMedia" || preference == "WebKitCaptureAudioInGPUProcessEnabledKey") {
-        WebPreferencesStore::overrideBoolValueForKey(WebPreferencesKey::useGPUProcessForMediaKey(), enabled);
+    if (preference == "WebKitUseGPUProcessForMediaEnabled" || preference == "WebKitCaptureAudioInGPUProcessEnabledKey") {
+        WebPreferencesStore::overrideBoolValueForKey(WebPreferencesKey::useGPUProcessForMediaEnabledKey(), enabled);
         for (auto* page : pages)
-            page->settings().setUseGPUProcessForMedia(enabled);
+            page->settings().setUseGPUProcessForMediaEnabled(enabled);
         return;
     }
 #endif

Modified: trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp (267515 => 267516)


--- trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp	2020-09-24 03:15:01 UTC (rev 267515)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp	2020-09-24 03:36:48 UTC (rev 267516)
@@ -579,7 +579,7 @@
     updatePreferences(parameters.store);
 
 #if PLATFORM(IOS_FAMILY) || ENABLE(ROUTING_ARBITRATION)
-    if (!m_page->settings().useGPUProcessForMedia())
+    if (!m_page->settings().useGPUProcessForMediaEnabled())
         DeprecatedGlobalSettings::setShouldManageAudioSessionCategory(true);
 #endif
 
@@ -783,7 +783,7 @@
 #endif
 
 #if ENABLE(GPU_PROCESS)
-    if (m_page->settings().useGPUProcessForMedia())
+    if (m_page->settings().useGPUProcessForMediaEnabled())
         WebProcess::singleton().ensureGPUProcessConnection().updateParameters(parameters);
 #endif
 
@@ -3784,10 +3784,10 @@
 #endif
 
 #if ENABLE(GPU_PROCESS)
-    // FIXME: useGPUProcessForMedia should be a RuntimeEnabledFeature since it's global.
-    static_cast<WebMediaStrategy&>(platformStrategies()->mediaStrategy()).setUseGPUProcess(settings.useGPUProcessForMedia());
+    // FIXME: useGPUProcessForMediaEnabled should be a RuntimeEnabledFeature since it's global.
+    static_cast<WebMediaStrategy&>(platformStrategies()->mediaStrategy()).setUseGPUProcess(settings.useGPUProcessForMediaEnabled());
     WebProcess::singleton().supplement<RemoteMediaPlayerManager>()->updatePreferences(settings);
-    WebProcess::singleton().setUseGPUProcessForMedia(settings.useGPUProcessForMedia());
+    WebProcess::singleton().setUseGPUProcessForMedia(settings.useGPUProcessForMediaEnabled());
 #endif
 }
 

Modified: trunk/Source/WebKitLegacy/mac/ChangeLog (267515 => 267516)


--- trunk/Source/WebKitLegacy/mac/ChangeLog	2020-09-24 03:15:01 UTC (rev 267515)
+++ trunk/Source/WebKitLegacy/mac/ChangeLog	2020-09-24 03:36:48 UTC (rev 267516)
@@ -1,3 +1,23 @@
+2020-09-23  Peng Liu  <[email protected]>
+
+        Add feature flags for GPU Process features
+        https://bugs.webkit.org/show_bug.cgi?id=216901
+
+        Reviewed by Tim Horton.
+
+        Minor cleanups.
+
+        * WebView/WebPreferenceKeysPrivate.h:
+        * WebView/WebPreferences.mm:
+        (+[WebPreferences initialize]):
+        (-[WebPreferences useGPUProcessForMediaEnabled]):
+        (-[WebPreferences setUseGPUProcessForMediaEnabled:]):
+        (-[WebPreferences useGPUProcessForMedia]): Deleted.
+        (-[WebPreferences setUseGPUProcessForMedia:]): Deleted.
+        * WebView/WebPreferencesPrivate.h:
+        * WebView/WebView.mm:
+        (-[WebView _preferencesChanged:]):
+
 2020-09-23  Chris Dumez  <[email protected]>
 
         Turn off the legacy prefixed WebAudio API

Modified: trunk/Source/WebKitLegacy/mac/WebView/WebPreferenceKeysPrivate.h (267515 => 267516)


--- trunk/Source/WebKitLegacy/mac/WebView/WebPreferenceKeysPrivate.h	2020-09-24 03:15:01 UTC (rev 267515)
+++ trunk/Source/WebKitLegacy/mac/WebView/WebPreferenceKeysPrivate.h	2020-09-24 03:36:48 UTC (rev 267516)
@@ -263,7 +263,7 @@
 #define WebKitEncryptedMediaAPIEnabledKey @"WebKitEncryptedMediaAPIEnabled"
 #define WebKitPictureInPictureAPIEnabledKey @"WebKitPictureInPictureAPIEnabled"
 #define WebKitGenericCueAPIEnabledKey @"WebKitGenericCueAPIEnabled"
-#define WebKitUseGPUProcessForMediaKey @"WebKitUseGPUProcessForMedia"
+#define WebKitUseGPUProcessForMediaEnabledKey @"WebKitUseGPUProcessForMediaEnabled"
 #define WebKitAllowMediaContentTypesRequiringHardwareSupportAsFallbackKey @"WebKitAllowMediaContentTypesRequiringHardwareSupportAsFallback"
 #define WebKitInspectorAdditionsEnabledPreferenceKey @"WebKitInspectorAdditionsEnabled"
 #define WebKitAccessibilityObjectModelEnabledPreferenceKey @"WebKitAccessibilityObjectModelEnabled"

Modified: trunk/Source/WebKitLegacy/mac/WebView/WebPreferences.mm (267515 => 267516)


--- trunk/Source/WebKitLegacy/mac/WebView/WebPreferences.mm	2020-09-24 03:15:01 UTC (rev 267515)
+++ trunk/Source/WebKitLegacy/mac/WebView/WebPreferences.mm	2020-09-24 03:36:48 UTC (rev 267516)
@@ -624,7 +624,7 @@
 #endif
 
 #if ENABLE(GPU_PROCESS)
-        @NO, WebKitUseGPUProcessForMediaKey,
+        @NO, WebKitUseGPUProcessForMediaEnabledKey,
 #endif
 
 #if ENABLE(MEDIA_STREAM)
@@ -3323,14 +3323,14 @@
     [self _setBoolValue:flag forKey:WebKitGenericCueAPIEnabledKey];
 }
 
-- (BOOL)useGPUProcessForMedia
+- (BOOL)useGPUProcessForMediaEnabled
 {
-    return [self _boolValueForKey:WebKitUseGPUProcessForMediaKey];
+    return [self _boolValueForKey:WebKitUseGPUProcessForMediaEnabledKey];
 }
 
-- (void)setUseGPUProcessForMedia:(BOOL)flag
+- (void)setUseGPUProcessForMediaEnabled:(BOOL)flag
 {
-    [self _setBoolValue:flag forKey:WebKitUseGPUProcessForMediaKey];
+    [self _setBoolValue:flag forKey:WebKitUseGPUProcessForMediaEnabledKey];
 }
 
 - (BOOL)viewportFitEnabled

Modified: trunk/Source/WebKitLegacy/mac/WebView/WebPreferencesPrivate.h (267515 => 267516)


--- trunk/Source/WebKitLegacy/mac/WebView/WebPreferencesPrivate.h	2020-09-24 03:15:01 UTC (rev 267515)
+++ trunk/Source/WebKitLegacy/mac/WebView/WebPreferencesPrivate.h	2020-09-24 03:36:48 UTC (rev 267516)
@@ -647,7 +647,7 @@
 @property (nonatomic) BOOL encryptedMediaAPIEnabled;
 @property (nonatomic) BOOL pictureInPictureAPIEnabled;
 @property (nonatomic) BOOL genericCueAPIEnabled;
-@property (nonatomic) BOOL useGPUProcessForMedia;
+@property (nonatomic) BOOL useGPUProcessForMediaEnabled;
 @property (nonatomic) BOOL viewportFitEnabled;
 @property (nonatomic) BOOL constantPropertiesEnabled;
 @property (nonatomic) BOOL colorFilterEnabled;

Modified: trunk/Source/WebKitLegacy/mac/WebView/WebView.mm (267515 => 267516)


--- trunk/Source/WebKitLegacy/mac/WebView/WebView.mm	2020-09-24 03:15:01 UTC (rev 267515)
+++ trunk/Source/WebKitLegacy/mac/WebView/WebView.mm	2020-09-24 03:36:48 UTC (rev 267516)
@@ -3399,7 +3399,7 @@
 #endif
 
 #if ENABLE(GPU_PROCESS)
-    settings.setUseGPUProcessForMedia(preferences.useGPUProcessForMedia);
+    settings.setUseGPUProcessForMediaEnabled(preferences.useGPUProcessForMediaEnabled);
 #endif
 
     RuntimeEnabledFeatures::sharedFeatures().setInspectorAdditionsEnabled(preferences.inspectorAdditionsEnabled);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to