Changeset 209230 in webkit


Ignore:
Timestamp:
Dec 1, 2016, 7:30:37 PM (9 years ago)
Author:
jiewen_tan@apple.com
Message:

Add a runtime flag for SubtleCrypto
https://bugs.webkit.org/show_bug.cgi?id=164982

Reviewed by Brent Fulgham.

Source/WebCore:

  • bindings/generic/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setSubtleCryptoEnabled):
(WebCore::RuntimeEnabledFeatures::subtleCryptoEnabled):

  • page/Crypto.idl:

Source/WebKit/mac:

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences subtleCryptoEnabled]):
(-[WebPreferences setSubtleCryptoEnabled:]):

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Source/WebKit2:

  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetSubtleCryptoEnabled):
(WKPreferencesGetSubtleCryptoEnabled):

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebPreferencesToConsistentValues):

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::beginTesting):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setSubtleCryptoEnabled):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
Location:
trunk
Files:
19 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r209229 r209230  
     12016-12-01  Jiewen Tan  <jiewen_tan@apple.com>
     2
     3        Add a runtime flag for SubtleCrypto
     4        https://bugs.webkit.org/show_bug.cgi?id=164982
     5
     6        Reviewed by Brent Fulgham.
     7
     8        * bindings/generic/RuntimeEnabledFeatures.h:
     9        (WebCore::RuntimeEnabledFeatures::setSubtleCryptoEnabled):
     10        (WebCore::RuntimeEnabledFeatures::subtleCryptoEnabled):
     11        * page/Crypto.idl:
     12
    1132016-12-01  Saam Barati  <sbarati@apple.com>
    214
  • trunk/Source/WebCore/bindings/generic/RuntimeEnabledFeatures.h

    r208983 r209230  
    241241#endif
    242242
     243#if ENABLE(SUBTLE_CRYPTO)
     244    void setSubtleCryptoEnabled(bool isEnabled) { m_isSubtleCryptoEnabled = isEnabled; }
     245    bool subtleCryptoEnabled() const { return m_isSubtleCryptoEnabled; }
     246#endif
     247
    243248    WEBCORE_EXPORT static RuntimeEnabledFeatures& sharedFeatures();
    244249
     
    363368#endif
    364369
     370#if ENABLE(SUBTLE_CRYPTO)
     371    bool m_isSubtleCryptoEnabled;
     372#endif
     373
    365374    friend class WTF::NeverDestroyed<RuntimeEnabledFeatures>;
    366375};
  • trunk/Source/WebCore/page/Crypto.idl

    r207522 r209230  
    3232    GenerateIsReachable=ImplScriptExecutionContext,
    3333] interface Crypto {
    34     [Conditional=SUBTLE_CRYPTO] readonly attribute SubtleCrypto subtle;
     34    [Conditional=SUBTLE_CRYPTO, EnabledAtRuntime=SubtleCrypto] readonly attribute SubtleCrypto subtle;
    3535    [Custom, MayThrowException] ArrayBufferView getRandomValues(ArrayBufferView array);
    3636
  • trunk/Source/WebKit/mac/ChangeLog

    r209159 r209230  
     12016-12-01  Jiewen Tan  <jiewen_tan@apple.com>
     2
     3        Add a runtime flag for SubtleCrypto
     4        https://bugs.webkit.org/show_bug.cgi?id=164982
     5
     6        Reviewed by Brent Fulgham.
     7
     8        * WebView/WebPreferenceKeysPrivate.h:
     9        * WebView/WebPreferences.mm:
     10        (+[WebPreferences initialize]):
     11        (-[WebPreferences subtleCryptoEnabled]):
     12        (-[WebPreferences setSubtleCryptoEnabled:]):
     13        * WebView/WebPreferencesPrivate.h:
     14        * WebView/WebView.mm:
     15        (-[WebView _preferencesChanged:]):
     16
    1172016-11-30  Said Abou-Hallawa  <sabouhallawa@apple.com>
    218
  • trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h

    r209159 r209230  
    174174#define WebKitModernMediaControlsEnabledPreferenceKey @"WebKitModernMediaControlsEnabled"
    175175#define WebKitPointerLockEnabledPreferenceKey @"WebKitPointerLockEnabled"
     176#define WebKitSubtleCryptoEnabledPreferenceKey @"WebKitSubtleCryptoEnabled"
    176177
    177178#if !TARGET_OS_IPHONE
  • trunk/Source/WebKit/mac/WebView/WebPreferences.mm

    r209159 r209230  
    631631        [NSNumber numberWithBool:NO], WebKitVisualViewportEnabledPreferenceKey,
    632632        [NSNumber numberWithBool:YES], WebKitNeedsStorageAccessFromFileURLsQuirkKey,
     633#if ENABLE(SUBTLE_CRYPTO)
     634        [NSNumber numberWithBool:YES], WebKitSubtleCryptoEnabledPreferenceKey,
     635#endif
    633636        nil];
    634637
     
    26812684}
    26822685
     2686- (BOOL)subtleCryptoEnabled
     2687{
     2688    return [self _boolValueForKey:WebKitSubtleCryptoEnabledPreferenceKey];
     2689}
     2690
     2691- (void)setSubtleCryptoEnabled:(BOOL)flag
     2692{
     2693    [self _setBoolValue:flag forKey:WebKitSubtleCryptoEnabledPreferenceKey];
     2694}
     2695
     2696
    26832697- (void)setMetaRefreshEnabled:(BOOL)enabled
    26842698{
  • trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h

    r209159 r209230  
    161161- (void)setSpatialNavigationEnabled:(BOOL)flag;
    162162
     163- (void)setSubtleCryptoEnabled:(BOOL)flag;
     164- (BOOL)subtleCryptoEnabled;
     165
    163166#if !TARGET_OS_IPHONE
    164167// zero means do AutoScale
  • trunk/Source/WebKit/mac/WebView/WebView.mm

    r209159 r209230  
    28672867#endif
    28682868
     2869#if ENABLE(SUBTLE_CRYPTO)
     2870    RuntimeEnabledFeatures::sharedFeatures().setSubtleCryptoEnabled([preferences subtleCryptoEnabled]);
     2871#endif
     2872
    28692873    NSTimeInterval timeout = [preferences incrementalRenderingSuppressionTimeoutInSeconds];
    28702874    if (timeout > 0)
  • trunk/Source/WebKit2/ChangeLog

    r209229 r209230  
     12016-12-01  Jiewen Tan  <jiewen_tan@apple.com>
     2
     3        Add a runtime flag for SubtleCrypto
     4        https://bugs.webkit.org/show_bug.cgi?id=164982
     5
     6        Reviewed by Brent Fulgham.
     7
     8        * Shared/WebPreferencesDefinitions.h:
     9        * UIProcess/API/C/WKPreferences.cpp:
     10        (WKPreferencesSetSubtleCryptoEnabled):
     11        (WKPreferencesGetSubtleCryptoEnabled):
     12        * UIProcess/API/C/WKPreferencesRefPrivate.h:
     13        * WebProcess/InjectedBundle/InjectedBundle.cpp:
     14        (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
     15        * WebProcess/WebPage/WebPage.cpp:
     16        (WebKit::WebPage::updatePreferences):
     17
    1182016-12-01  Saam Barati  <sbarati@apple.com>
    219
  • trunk/Source/WebKit2/Shared/WebPreferencesDefinitions.h

    r209159 r209230  
    318318    macro(VariationFontsEnabled, variationFontsEnabled, Bool, bool, DEFAULT_EXPERIMENTAL_FEATURES_ENABLED, "Variation Fonts", "Enable variation fonts") \
    319319    macro(InputEventsEnabled, inputEventsEnabled, Bool, bool, DEFAULT_EXPERIMENTAL_FEATURES_ENABLED, "Input Events", "Enable InputEvents support") \
     320    macro(SubtleCryptoEnabled, subtleCryptoEnabled, Bool, bool, DEFAULT_EXPERIMENTAL_FEATURES_ENABLED, "SubtleCrypto", "Enable SubtleCrypto support") \
    320321    macro(WebGL2Enabled, webGL2Enabled, Bool, bool, DEFAULT_EXPERIMENTAL_FEATURES_ENABLED, "WebGL 2.0", "WebGL 2 prototype") \
    321322    macro(ES6ModulesEnabled, es6ModulesEnabled, Bool, bool, DEFAULT_EXPERIMENTAL_FEATURES_ENABLED, "ES6 Modules", "Enable ES6 Modules support") \
  • trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp

    r209161 r209230  
    16121612}
    16131613
     1614void WKPreferencesSetSubtleCryptoEnabled(WKPreferencesRef preferencesRef, bool flag)
     1615{
     1616    toImpl(preferencesRef)->setSubtleCryptoEnabled(flag);
     1617}
     1618
     1619bool WKPreferencesGetSubtleCryptoEnabled(WKPreferencesRef preferencesRef)
     1620{
     1621    return toImpl(preferencesRef)->subtleCryptoEnabled();
     1622}
  • trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesRefPrivate.h

    r209161 r209230  
    451451WK_EXPORT bool WKPreferencesGetIntersectionObserverEnabled(WKPreferencesRef);
    452452
     453// Defaults to true
     454WK_EXPORT void WKPreferencesSetSubtleCryptoEnabled(WKPreferencesRef, bool flag);
     455WK_EXPORT bool WKPreferencesGetSubtleCryptoEnabled(WKPreferencesRef);
     456
    453457#ifdef __cplusplus
    454458}
  • trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp

    r209159 r209230  
    222222#endif
    223223
     224#if ENABLE(SUBTLE_CRYPTO)
     225    if (preference == "WebKitSubtleCryptoEnabled")
     226        RuntimeEnabledFeatures::sharedFeatures().setSubtleCryptoEnabled(enabled);
     227#endif
     228
    224229    // Map the names used in LayoutTests with the names used in WebCore::Settings and WebPreferencesStore.
    225230#define FOR_EACH_OVERRIDE_BOOL_PREFERENCE(macro) \
  • trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp

    r209159 r209230  
    32103210    }
    32113211
     3212#if ENABLE(SUBTLE_CRYPTO)
     3213    RuntimeEnabledFeatures::sharedFeatures().setSubtleCryptoEnabled(store.getBoolValueForKey(WebPreferencesKey::subtleCryptoEnabledKey()));
     3214#endif
     3215
    32123216    platformPreferencesDidChange(store);
    32133217
  • trunk/Tools/ChangeLog

    r209216 r209230  
     12016-12-01  Jiewen Tan  <jiewen_tan@apple.com>
     2
     3        Add a runtime flag for SubtleCrypto
     4        https://bugs.webkit.org/show_bug.cgi?id=164982
     5
     6        Reviewed by Brent Fulgham.
     7
     8        * DumpRenderTree/mac/DumpRenderTree.mm:
     9        (resetWebPreferencesToConsistentValues):
     10        * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
     11        (WTR::InjectedBundle::beginTesting):
     12        * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
     13        (WTR::TestRunner::setSubtleCryptoEnabled):
     14        * WebKitTestRunner/InjectedBundle/TestRunner.h:
     15
    1162016-12-01  Alexey Proskuryakov  <ap@apple.com>
    217
  • trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm

    r209161 r209230  
    10021002    preferences.modernMediaControlsEnabled = options.enableModernMediaControls;
    10031003
     1004    [preferences setSubtleCryptoEnabled:YES];
     1005
    10041006    [WebPreferences _clearNetworkLoaderSession];
    10051007    [WebPreferences _setCurrentNetworkLoaderSessionCookieAcceptPolicy:NSHTTPCookieAcceptPolicyOnlyFromMainDocumentDomain];
  • trunk/Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp

    r209161 r209230  
    336336    m_testRunner->clearTestRunnerCallbacks();
    337337
     338    m_testRunner->setSubtleCryptoEnabled(true);
     339
    338340    if (m_timeout > 0)
    339341        m_testRunner->setCustomTimeout(m_timeout);
  • trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp

    r209082 r209230  
    355355}
    356356
     357void TestRunner::setSubtleCryptoEnabled(bool enabled)
     358{
     359    WKRetainPtr<WKStringRef> key(AdoptWK, WKStringCreateWithUTF8CString("WebKitSubtleCryptoEnabled"));
     360    auto& injectedBundle = InjectedBundle::singleton();
     361    WKBundleOverrideBoolPreferenceForTestRunner(injectedBundle.bundle(), injectedBundle.pageGroup(), key.get(), enabled);
     362}
     363
    357364void TestRunner::setDOMIteratorEnabled(bool enabled)
    358365{
  • trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.h

    r209082 r209230  
    130130    void setES6ModulesEnabled(bool);
    131131    void setEncryptedMediaAPIEnabled(bool);
     132    void setSubtleCryptoEnabled(bool);
    132133
    133134    // Special DOM functions.
Note: See TracChangeset for help on using the changeset viewer.