Title: [253063] trunk/Source
Revision
253063
Author
eric.carl...@apple.com
Date
2019-12-03 14:56:46 -0800 (Tue, 03 Dec 2019)

Log Message

Add a runtime setting for media in the GPU process
https://bugs.webkit.org/show_bug.cgi?id=204801
<rdar://problem/57596199>

Reviewed by Jer Noble.

Source/WebCore:

* page/Settings.yaml:

Source/WebKit:

* Shared/WebPreferences.yaml:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):

Source/WebKitLegacy/mac:

* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences outOfProcessMediaEnabled]):
(-[WebPreferences setOutOfProcessMediaEnabled:]):
* WebView/WebPreferencesPrivate.h:
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (253062 => 253063)


--- trunk/Source/WebCore/ChangeLog	2019-12-03 22:35:42 UTC (rev 253062)
+++ trunk/Source/WebCore/ChangeLog	2019-12-03 22:56:46 UTC (rev 253063)
@@ -1,3 +1,13 @@
+2019-12-03  Eric Carlson  <eric.carl...@apple.com>
+
+        Add a runtime setting for media in the GPU process
+        https://bugs.webkit.org/show_bug.cgi?id=204801
+        <rdar://problem/57596199>
+
+        Reviewed by Jer Noble.
+
+        * page/Settings.yaml:
+
 2019-12-03  Jer Noble  <jer.no...@apple.com>
 
         Experimental support for HDR media query

Modified: trunk/Source/WebCore/page/Settings.yaml (253062 => 253063)


--- trunk/Source/WebCore/page/Settings.yaml	2019-12-03 22:35:42 UTC (rev 253062)
+++ trunk/Source/WebCore/page/Settings.yaml	2019-12-03 22:56:46 UTC (rev 253063)
@@ -320,6 +320,9 @@
 genericCueAPIEnabled:
     initial: false
     conditional: VIDEO_TRACK
+outOfProcessMediaEnabled:
+    initial: false
+    conditional: VIDEO
 scrollingCoordinatorEnabled:
   initial: false
 scrollingTreeIncludesFrames:

Modified: trunk/Source/WebKit/ChangeLog (253062 => 253063)


--- trunk/Source/WebKit/ChangeLog	2019-12-03 22:35:42 UTC (rev 253062)
+++ trunk/Source/WebKit/ChangeLog	2019-12-03 22:56:46 UTC (rev 253063)
@@ -1,3 +1,15 @@
+2019-12-03  Eric Carlson  <eric.carl...@apple.com>
+
+        Add a runtime setting for media in the GPU process
+        https://bugs.webkit.org/show_bug.cgi?id=204801
+        <rdar://problem/57596199>
+
+        Reviewed by Jer Noble.
+
+        * Shared/WebPreferences.yaml:
+        * WebProcess/InjectedBundle/InjectedBundle.cpp:
+        (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
+
 2019-12-03  Per Arne Vollan  <pvol...@apple.com>
 
         Unreviewed assertion fix for older macOS versions after r253011.

Modified: trunk/Source/WebKit/Shared/WebPreferences.yaml (253062 => 253063)


--- trunk/Source/WebKit/Shared/WebPreferences.yaml	2019-12-03 22:35:42 UTC (rev 253062)
+++ trunk/Source/WebKit/Shared/WebPreferences.yaml	2019-12-03 22:56:46 UTC (rev 253063)
@@ -1837,6 +1837,15 @@
   humanReadableName: "Remote Playback API"
   humanReadableDescription: "Enable Remote Playback API"
 
+OutOfProcessMediaEnabled:
+    type: bool
+    defaultValue: false
+    condition: ENABLE(VIDEO)
+    humanReadableName: "Media in GPU process"
+    humanReadableDescription: "Do all media loading and playback in the GPU process"
+    category: experimental
+    webcoreName: outOfProcessMediaEnabled
+
 # Deprecated
 
 ICECandidateFilteringEnabled:

Modified: trunk/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp (253062 => 253063)


--- trunk/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp	2019-12-03 22:35:42 UTC (rev 253062)
+++ trunk/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp	2019-12-03 22:56:46 UTC (rev 253063)
@@ -247,6 +247,15 @@
     }
 #endif
 
+#if ENABLE(VIDEO)
+    if (preference == "WebKitOutOfProcessMediaEnabled") {
+        WebPreferencesStore::overrideBoolValueForKey(WebPreferencesKey::imageControlsEnabledKey(), enabled);
+        for (auto* page : pages)
+            page->settings().setOutOfProcessMediaEnabled(enabled);
+        return;
+    }
+#endif
+
     if (preference == "WebKitIsSecureContextAttributeEnabled") {
         WebPreferencesStore::overrideBoolValueForKey(WebPreferencesKey::isSecureContextAttributeEnabledKey(), enabled);
         RuntimeEnabledFeatures::sharedFeatures().setIsSecureContextAttributeEnabled(enabled);

Modified: trunk/Source/WebKitLegacy/mac/ChangeLog (253062 => 253063)


--- trunk/Source/WebKitLegacy/mac/ChangeLog	2019-12-03 22:35:42 UTC (rev 253062)
+++ trunk/Source/WebKitLegacy/mac/ChangeLog	2019-12-03 22:56:46 UTC (rev 253063)
@@ -1,3 +1,20 @@
+2019-12-03  Eric Carlson  <eric.carl...@apple.com>
+
+        Add a runtime setting for media in the GPU process
+        https://bugs.webkit.org/show_bug.cgi?id=204801
+        <rdar://problem/57596199>
+
+        Reviewed by Jer Noble.
+
+        * WebView/WebPreferenceKeysPrivate.h:
+        * WebView/WebPreferences.mm:
+        (+[WebPreferences initialize]):
+        (-[WebPreferences outOfProcessMediaEnabled]):
+        (-[WebPreferences setOutOfProcessMediaEnabled:]):
+        * WebView/WebPreferencesPrivate.h:
+        * WebView/WebView.mm:
+        (-[WebView _preferencesChanged:]):
+
 2019-12-03  Antoine Quint  <grao...@apple.com>
 
         [Web Animations] Add a runtime flag for Web Animations composite operations

Modified: trunk/Source/WebKitLegacy/mac/WebView/WebPreferenceKeysPrivate.h (253062 => 253063)


--- trunk/Source/WebKitLegacy/mac/WebView/WebPreferenceKeysPrivate.h	2019-12-03 22:35:42 UTC (rev 253062)
+++ trunk/Source/WebKitLegacy/mac/WebView/WebPreferenceKeysPrivate.h	2019-12-03 22:56:46 UTC (rev 253063)
@@ -263,6 +263,7 @@
 #define WebKitEncryptedMediaAPIEnabledKey @"WebKitEncryptedMediaAPIEnabled"
 #define WebKitPictureInPictureAPIEnabledKey @"WebKitPictureInPictureAPIEnabled"
 #define WebKitGenericCueAPIEnabledKey @"WebKitGenericCueAPIEnabled"
+#define WebKitOutOfProcessMediaEnabledKey @"WebKitOutOfProcessMediaEnabled"
 #define WebKitAllowMediaContentTypesRequiringHardwareSupportAsFallbackKey @"WebKitAllowMediaContentTypesRequiringHardwareSupportAsFallback"
 #define WebKitInspectorAdditionsEnabledPreferenceKey @"WebKitInspectorAdditionsEnabled"
 #define WebKitAccessibilityObjectModelEnabledPreferenceKey @"WebKitAccessibilityObjectModelEnabled"

Modified: trunk/Source/WebKitLegacy/mac/WebView/WebPreferences.mm (253062 => 253063)


--- trunk/Source/WebKitLegacy/mac/WebView/WebPreferences.mm	2019-12-03 22:35:42 UTC (rev 253062)
+++ trunk/Source/WebKitLegacy/mac/WebView/WebPreferences.mm	2019-12-03 22:56:46 UTC (rev 253063)
@@ -617,6 +617,10 @@
         @NO, WebKitGenericCueAPIEnabledKey,
 #endif
 
+#if ENABLE(VIDEO)
+        @NO, WebKitOutOfProcessMediaEnabledKey,
+#endif
+
 #if ENABLE(MEDIA_STREAM)
         @NO, WebKitMockCaptureDevicesEnabledPreferenceKey,
         @YES, WebKitMockCaptureDevicesPromptEnabledPreferenceKey,
@@ -3368,6 +3372,16 @@
     [self _setBoolValue:flag forKey:WebKitGenericCueAPIEnabledKey];
 }
 
+- (BOOL)outOfProcessMediaEnabled
+{
+    return [self _boolValueForKey:WebKitOutOfProcessMediaEnabledKey];
+}
+
+- (void)setOutOfProcessMediaEnabled:(BOOL)flag
+{
+    [self _setBoolValue:flag forKey:WebKitOutOfProcessMediaEnabledKey];
+}
+
 - (BOOL)viewportFitEnabled
 {
     return [self _boolValueForKey:WebKitViewportFitEnabledPreferenceKey];

Modified: trunk/Source/WebKitLegacy/mac/WebView/WebPreferencesPrivate.h (253062 => 253063)


--- trunk/Source/WebKitLegacy/mac/WebView/WebPreferencesPrivate.h	2019-12-03 22:35:42 UTC (rev 253062)
+++ trunk/Source/WebKitLegacy/mac/WebView/WebPreferencesPrivate.h	2019-12-03 22:56:46 UTC (rev 253063)
@@ -649,6 +649,7 @@
 @property (nonatomic) BOOL encryptedMediaAPIEnabled;
 @property (nonatomic) BOOL pictureInPictureAPIEnabled;
 @property (nonatomic) BOOL genericCueAPIEnabled;
+@property (nonatomic) BOOL outOfProcessMediaEnabled;
 @property (nonatomic) BOOL viewportFitEnabled;
 @property (nonatomic) BOOL constantPropertiesEnabled;
 @property (nonatomic) BOOL colorFilterEnabled;

Modified: trunk/Source/WebKitLegacy/mac/WebView/WebView.mm (253062 => 253063)


--- trunk/Source/WebKitLegacy/mac/WebView/WebView.mm	2019-12-03 22:35:42 UTC (rev 253062)
+++ trunk/Source/WebKitLegacy/mac/WebView/WebView.mm	2019-12-03 22:56:46 UTC (rev 253063)
@@ -3209,6 +3209,10 @@
     settings.setGenericCueAPIEnabled(preferences.genericCueAPIEnabled);
 #endif
 
+#if ENABLE(VIDEO)
+    settings.setOutOfProcessMediaEnabled(preferences.outOfProcessMediaEnabled);
+#endif
+
     RuntimeEnabledFeatures::sharedFeatures().setInspectorAdditionsEnabled(preferences.inspectorAdditionsEnabled);
 
     settings.setAllowMediaContentTypesRequiringHardwareSupportAsFallback(preferences.allowMediaContentTypesRequiringHardwareSupportAsFallback);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to