Changeset 265171 in webkit


Ignore:
Timestamp:
Jul 31, 2020 6:29:57 PM (4 years ago)
Author:
jer.noble@apple.com
Message:

[Mac] Add Experimental Feature preference for SW VP9
https://bugs.webkit.org/show_bug.cgi?id=215043
<rdar://problem/66400034>

Reviewed by Beth Dakin.

  • FeatureFlags/WebKit.plist:
  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const):

  • Shared/WebPageCreationParameters.h:
  • Shared/WebPreferences.yaml:
  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultVP9SWDecoderEnabledOnBattery):

  • Shared/WebPreferencesDefaultValues.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_limitsNavigationsToAppBoundDomains):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::enableVP9Decoder):
(WebKit::WebProcess::enableVP9SWDecoder):

  • WebProcess/WebProcess.h:
Location:
trunk/Source/WebKit
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r265163 r265171  
     12020-07-31  Jer Noble  <jer.noble@apple.com>
     2
     3        [Mac] Add Experimental Feature preference for SW VP9
     4        https://bugs.webkit.org/show_bug.cgi?id=215043
     5        <rdar://problem/66400034>
     6
     7        Reviewed by Beth Dakin.
     8
     9        * FeatureFlags/WebKit.plist:
     10        * Shared/WebPageCreationParameters.cpp:
     11        (WebKit::WebPageCreationParameters::encode const):
     12        * Shared/WebPageCreationParameters.h:
     13        * Shared/WebPreferences.yaml:
     14        * Shared/WebPreferencesDefaultValues.cpp:
     15        (WebKit::defaultVP9SWDecoderEnabledOnBattery):
     16        * Shared/WebPreferencesDefaultValues.h:
     17        * UIProcess/WebPageProxy.cpp:
     18        (WebKit::WebPageProxy::creationParameters):
     19        * WebProcess/WebPage/WebPage.cpp:
     20        (WebKit::m_limitsNavigationsToAppBoundDomains):
     21        * WebProcess/WebProcess.cpp:
     22        (WebKit::WebProcess::enableVP9Decoder):
     23        (WebKit::WebProcess::enableVP9SWDecoder):
     24        * WebProcess/WebProcess.h:
     25
    1262020-07-31  Chris Dumez  <cdumez@apple.com>
    227
  • trunk/Source/WebKit/FeatureFlags/WebKit.plist

    r264747 r265171  
    5353        <true/>
    5454    </dict>
     55    <key>sw_vp9_decoder_on_battery</key>
     56    <dict>
     57        <key>Enabled</key>
     58        <false/>
     59    </dict>
    5560    <key>webm_parser</key>
    5661    <dict>
  • trunk/Source/WebKit/Shared/WebPageCreationParameters.cpp

    r263894 r265171  
    155155    encoder << shouldRenderCanvasInGPUProcess;
    156156    encoder << shouldEnableVP9Decoder;
     157    encoder << shouldEnableVP9SWDecoder;
    157158    encoder << needsInAppBrowserPrivacyQuirks;
    158159    encoder << limitsNavigationsToAppBoundDomains;
  • trunk/Source/WebKit/Shared/WebPageCreationParameters.h

    r263894 r265171  
    228228    bool shouldRenderCanvasInGPUProcess { false };
    229229    bool shouldEnableVP9Decoder { false };
     230    bool shouldEnableVP9SWDecoder { false };
    230231    bool needsInAppBrowserPrivacyQuirks { false };
    231232    bool limitsNavigationsToAppBoundDomains { false };
  • trunk/Source/WebKit/Shared/WebPreferences.yaml

    r265078 r265171  
    670670  condition: ENABLE(VP9)
    671671
     672VP9SWDecoderEnabledOnBattery:
     673  type: bool
     674  defaultValue: defaultVP9SWDecoderEnabledOnBattery()
     675  webcoreBinding: none
     676  humanReadableName: "VP9 SW decoder on battery"
     677  humanReadableDescription: "Enable VP9 SW decoder on battery"
     678  category: experimental
     679  condition: ENABLE(VP9)
     680
    672681WebMParserEnabled:
    673682  type: bool
  • trunk/Source/WebKit/Shared/WebPreferencesDefaultValues.cpp

    r264966 r265171  
    255255#endif
    256256
     257#if ENABLE(VP9)
     258bool defaultVP9SWDecoderEnabledOnBattery()
     259{
     260#if HAVE(SYSTEM_FEATURE_FLAGS)
     261    return isFeatureFlagEnabled("SW_vp9_decoder_on_battery");
     262#endif
     263
     264    return false;
     265}
     266#endif
     267
    257268#if ENABLE(MEDIA_SOURCE) && ENABLE(VP9)
    258269bool defaultWebMParserEnabled()
  • trunk/Source/WebKit/Shared/WebPreferencesDefaultValues.h

    r264966 r265171  
    365365#if ENABLE(VP9)
    366366bool defaultVP9DecoderEnabled();
     367bool defaultVP9SWDecoderEnabledOnBattery();
    367368#endif
    368369
  • trunk/Source/WebKit/UIProcess/WebPageProxy.cpp

    r265163 r265171  
    212212#include <WebCore/AttributedString.h>
    213213#include <WebCore/RunLoopObserver.h>
     214#include <WebCore/SystemBattery.h>
    214215#include <WebCore/TextIndicatorWindow.h>
    215216#include <wtf/MachSendRight.h>
     
    78667867    parameters.shouldRenderCanvasInGPUProcess = preferences().renderCanvasInGPUProcessEnabled();
    78677868    parameters.shouldEnableVP9Decoder = preferences().vp9DecoderEnabled();
     7869#if PLATFORM(COCOA)
     7870    parameters.shouldEnableVP9SWDecoder = preferences().vp9DecoderEnabled() && (!WebCore::systemHasBattery() || preferences().vp9SWDecoderEnabledOnBattery());
     7871#endif
    78687872    parameters.shouldCaptureDisplayInUIProcess = m_process->processPool().configuration().shouldCaptureDisplayInUIProcess();
    78697873    parameters.limitsNavigationsToAppBoundDomains = m_limitsNavigationsToAppBoundDomains;
  • trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp

    r265084 r265171  
    781781        WebProcess::singleton().enableVP9Decoder();
    782782
     783    if (parameters.shouldEnableVP9SWDecoder)
     784        WebProcess::singleton().enableVP9SWDecoder();
     785
    783786    updateThrottleState();
    784787}
  • trunk/Source/WebKit/WebProcess/WebProcess.cpp

    r265095 r265171  
    19681968}
    19691969
     1970void WebProcess::enableVP9SWDecoder()
     1971{
     1972    if (m_vp9SWDecoderEnabled)
     1973        return;
     1974
     1975    m_vp9SWDecoderEnabled = true;
     1976    LibWebRTCProvider::registerWebKitVP9Decoder();
     1977}
     1978
    19701979} // namespace WebKit
    19711980
  • trunk/Source/WebKit/WebProcess/WebProcess.h

    r264476 r265171  
    334334
    335335    void enableVP9Decoder();
     336    void enableVP9SWDecoder();
    336337
    337338private:
     
    651652    bool m_useGPUProcessForMedia { false };
    652653    bool m_vp9DecoderEnabled { false };
     654    bool m_vp9SWDecoderEnabled { false };
    653655};
    654656
Note: See TracChangeset for help on using the changeset viewer.