Changeset 265533 in webkit


Ignore:
Timestamp:
Aug 11, 2020 4:07:51 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

    r265525 r265533  
     12020-08-11  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-08-11  Brady Eidson  <beidson@apple.com>
    227
  • trunk/Source/WebKit/FeatureFlags/WebKit.plist

    r265175 r265533  
    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

    r265525 r265533  
    155155    encoder << shouldRenderCanvasInGPUProcess;
    156156    encoder << shouldEnableVP9Decoder;
     157    encoder << shouldEnableVP9SWDecoder;
    157158    encoder << needsInAppBrowserPrivacyQuirks;
    158159    encoder << limitsNavigationsToAppBoundDomains;
     
    497498        return WTF::nullopt;
    498499
     500    if (!decoder.decode(parameters.shouldEnableVP9SWDecoder))
     501        return WTF::nullopt;
     502
    499503    if (!decoder.decode(parameters.needsInAppBrowserPrivacyQuirks))
    500504        return WTF::nullopt;
  • trunk/Source/WebKit/Shared/WebPageCreationParameters.h

    r265525 r265533  
    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

    r265389 r265533  
    678678  condition: ENABLE(VP9)
    679679
     680VP9SWDecoderEnabledOnBattery:
     681  type: bool
     682  defaultValue: defaultVP9SWDecoderEnabledOnBattery()
     683  webcoreBinding: none
     684  humanReadableName: "VP9 SW decoder on battery"
     685  humanReadableDescription: "Enable VP9 SW decoder on battery"
     686  category: experimental
     687  condition: ENABLE(VP9)
     688
    680689WebMParserEnabled:
    681690  type: bool
  • trunk/Source/WebKit/Shared/WebPreferencesDefaultValues.cpp

    r265175 r265533  
    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

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

    r265525 r265533  
    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>
     
    78707871    parameters.shouldRenderCanvasInGPUProcess = preferences().renderCanvasInGPUProcessEnabled();
    78717872    parameters.shouldEnableVP9Decoder = preferences().vp9DecoderEnabled();
     7873#if PLATFORM(COCOA)
     7874    parameters.shouldEnableVP9SWDecoder = preferences().vp9DecoderEnabled() && (!WebCore::systemHasBattery() || preferences().vp9SWDecoderEnabledOnBattery());
     7875#endif
    78727876    parameters.shouldCaptureDisplayInUIProcess = m_process->processPool().configuration().shouldCaptureDisplayInUIProcess();
    78737877    parameters.limitsNavigationsToAppBoundDomains = m_limitsNavigationsToAppBoundDomains;
  • trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp

    r265525 r265533  
    781781        WebProcess::singleton().enableVP9Decoder();
    782782
     783    if (parameters.shouldEnableVP9SWDecoder)
     784        WebProcess::singleton().enableVP9SWDecoder();
     785
    783786    m_page->setCanUseCredentialStorage(parameters.canUseCredentialStorage);
    784787
  • trunk/Source/WebKit/WebProcess/WebProcess.cpp

    r265175 r265533  
    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

    r265410 r265533  
    334334
    335335    void enableVP9Decoder();
     336    void enableVP9SWDecoder();
    336337
    337338#if PLATFORM(COCOA)
     
    661662    bool m_useGPUProcessForMedia { false };
    662663    bool m_vp9DecoderEnabled { false };
     664    bool m_vp9SWDecoderEnabled { false };
    663665};
    664666
Note: See TracChangeset for help on using the changeset viewer.