Bug 232818

Summary: Make it possible to toggle several experimental media features when GPU Process is enabled
Product: WebKit Reporter: Wenson Hsieh <wenson_hsieh>
Component: MediaAssignee: Wenson Hsieh <wenson_hsieh>
Status: RESOLVED FIXED    
Severity: Normal CC: eric.carlson, jer.noble, peng.liu6, thorton, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
For EWS
thorton: review+
Patch none

Wenson Hsieh
Reported 2021-11-08 09:35:46 PST
In particular, these features: • OpusDecoderEnabled (Opus audio decoder) • VorbisDecoderEnabled (Vorbis audio decoder) • WebMFormatReaderEnabled (WebM format reader) • WebMParserEnabled (WebM MSE parser) • MediaSourceInlinePaintingEnabled (Experimental MediaSource Inline Painting)
Attachments
For EWS (10.62 KB, patch)
2021-11-08 10:50 PST, Wenson Hsieh
thorton: review+
Patch (11.34 KB, patch)
2021-11-08 15:31 PST, Wenson Hsieh
no flags
Wenson Hsieh
Comment 1 2021-11-08 10:50:21 PST
Tim Horton
Comment 2 2021-11-08 15:17:17 PST
Comment on attachment 443572 [details] For EWS View in context: https://bugs.webkit.org/attachment.cgi?id=443572&action=review > Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp:590 > + for (auto page : webProcess.pages()) { While this is still a wild layering problem, it's strictly better than using the WebPageGroup prefs. I think you removed a bit too much of the "omg here be dragons" comment though; the caveats in your changelog should be mentioned here too. > Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp:-670 > - setScreenProperties(WebCore::collectScreenProperties()); as you pointed out yourself, you lost canSendMessage here.
Wenson Hsieh
Comment 3 2021-11-08 15:28:14 PST
Comment on attachment 443572 [details] For EWS View in context: https://bugs.webkit.org/attachment.cgi?id=443572&action=review Thanks for the review! >> Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp:590 >> + for (auto page : webProcess.pages()) { > > While this is still a wild layering problem, it's strictly better than using the WebPageGroup prefs. > > I think you removed a bit too much of the "omg here be dragons" comment though; the caveats in your changelog should be mentioned here too. Yes — definitely agreed! I'll leave this comment behind: // FIXME: It's not ideal that these features are controlled by preferences-level feature flags (i.e. per-web view), but there is only one GPU process and the runtime-enabled features backing these preferences are process-wide. We should refactor each of these features so that they aren't process-global, and then reimplement this feature flag propagation to the GPU Process in a way that respects the settings of the page that is hosting each media element. // For the time being, each of the below features are enabled in the GPU Process if it is enabled by at least one web page's preferences. In practice, all web pages' preferences should agree on these feature flag values. >> Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp:-670 >> - setScreenProperties(WebCore::collectScreenProperties()); > > as you pointed out yourself, you lost canSendMessage here. Fixed!
Wenson Hsieh
Comment 4 2021-11-08 15:31:13 PST
EWS
Comment 5 2021-11-08 18:11:21 PST
Committed r285477 (244001@main): <https://commits.webkit.org/244001@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 443619 [details].
Radar WebKit Bug Importer
Comment 6 2021-11-08 18:12:21 PST
Note You need to log in before you can comment on or make changes to this bug.