Changeset 199055 in webkit


Ignore:
Timestamp:
Apr 5, 2016 4:22:17 AM (8 years ago)
Author:
commit-queue@webkit.org
Message:

[WebGL2] Allow enabling WebGL2 with a runtime flag
https://bugs.webkit.org/show_bug.cgi?id=156166
<rdar://problem/25526929>

Source/WebCore:

Added new runtime flags for WebGL2.

Patch by Antoine Quint <Antoine Quint> on 2016-04-05
Reviewed by Dean Jackson.

  • bindings/generic/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setWebGL2Enabled):
(WebCore::RuntimeEnabledFeatures::webGL2Enabled):

Source/WebKit/mac:

Set the WebGL2 runtime flag based on preferences, disabled by default.

Patch by Antoine Quint <Antoine Quint> on 2016-04-05
Reviewed by Dean Jackson.

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

(+[WebPreferences initialize]):
(-[WebPreferences webGL2Enabled]):
(-[WebPreferences setWebGL2Enabled:]):

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

(-[WebView _preferencesChanged:]):

Source/WebKit2:

Set the WebGL2 runtime flag based on preferences, disabled by default.

Patch by Antoine Quint <Antoine Quint> on 2016-04-05
Reviewed by Dean Jackson.

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

(WKPreferencesSetWebGL2Enabled):
(WKPreferencesGetWebGL2Enabled):

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

(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

Source/WTF:

Removed the manual overrides of ENABLE_WEBGL2.

Patch by Antoine Quint <Antoine Quint> on 2016-04-05
Reviewed by Dean Jackson.

  • wtf/FeatureDefines.h:

Tools:

Always enable WebGL2 during testing.

Patch by Antoine Quint <Antoine Quint> on 2016-04-05
Reviewed by Dean Jackson.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebPreferencesToConsistentValues):

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::beginTesting):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setWebGL2Enabled):

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

Legend:

Unmodified
Added
Removed
  • trunk/Source/WTF/ChangeLog

    r198897 r199055  
     12016-04-05  Antoine Quint  <graouts@apple.com>
     2
     3        [WebGL2] Allow enabling WebGL2 with a runtime flag
     4        https://bugs.webkit.org/show_bug.cgi?id=156166
     5        <rdar://problem/25526929>
     6
     7        Removed the manual overrides of ENABLE_WEBGL2.
     8
     9        Reviewed by Dean Jackson.
     10
     11        * wtf/FeatureDefines.h:
     12
    1132016-03-31  Konstantin Tokarev  <annulen@yandex.ru>
    214
  • trunk/Source/WTF/wtf/FeatureDefines.h

    r198897 r199055  
    748748#endif
    749749
    750 #if !defined(ENABLE_WEBGL2)
    751 #define ENABLE_WEBGL2 0
    752 #endif
    753 
    754750#if !defined(ENABLE_GRAPHICS_CONTEXT_3D)
    755751#define ENABLE_GRAPHICS_CONTEXT_3D ENABLE_WEBGL
  • trunk/Source/WebCore/ChangeLog

    r199054 r199055  
     12016-04-05  Antoine Quint  <graouts@apple.com>
     2
     3        [WebGL2] Allow enabling WebGL2 with a runtime flag
     4        https://bugs.webkit.org/show_bug.cgi?id=156166
     5        <rdar://problem/25526929>
     6
     7        Added new runtime flags for WebGL2.
     8
     9        Reviewed by Dean Jackson.
     10
     11        * bindings/generic/RuntimeEnabledFeatures.h:
     12        (WebCore::RuntimeEnabledFeatures::setWebGL2Enabled):
     13        (WebCore::RuntimeEnabledFeatures::webGL2Enabled):
     14
    1152016-04-05  Antti Koivisto  <antti@apple.com>
    216
  • trunk/Source/WebCore/bindings/generic/RuntimeEnabledFeatures.h

    r199007 r199055  
    218218#endif
    219219
     220#if ENABLE(WEBGL2)
     221    void setWebGL2Enabled(bool isEnabled) { m_isWebGL2Enabled = isEnabled; }
     222    bool webGL2Enabled() const { return m_isWebGL2Enabled; }
     223#endif
     224
    220225    WEBCORE_EXPORT static RuntimeEnabledFeatures& sharedFeatures();
    221226
     
    311316#endif
    312317
     318#if ENABLE(WEBGL2)
     319    bool m_isWebGL2Enabled;
     320#endif
     321
    313322    friend class WTF::NeverDestroyed<RuntimeEnabledFeatures>;
    314323};
  • trunk/Source/WebKit/mac/ChangeLog

    r198947 r199055  
     12016-04-05  Antoine Quint  <graouts@apple.com>
     2
     3        [WebGL2] Allow enabling WebGL2 with a runtime flag
     4        https://bugs.webkit.org/show_bug.cgi?id=156166
     5        <rdar://problem/25526929>
     6
     7        Set the WebGL2 runtime flag based on preferences, disabled by default.
     8
     9        Reviewed by Dean Jackson.
     10
     11        * WebView/WebPreferenceKeysPrivate.h:
     12        * WebView/WebPreferences.mm:
     13        (+[WebPreferences initialize]):
     14        (-[WebPreferences webGL2Enabled]):
     15        (-[WebPreferences setWebGL2Enabled:]):
     16        * WebView/WebPreferencesPrivate.h:
     17        * WebView/WebView.mm:
     18        (-[WebView _preferencesChanged:]):
     19
    1202016-04-01  Alex Christensen  <achristensen@webkit.org>
    221
  • trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h

    r198476 r199055  
    110110#define WebKitWebAudioEnabledPreferenceKey @"WebKitWebAudioEnabled"
    111111#define WebKitWebGLEnabledPreferenceKey @"WebKitWebGLEnabled"
     112#define WebKitWebGL2EnabledPreferenceKey @"WebKitWebGL2Enabled"
    112113#define WebKitForceSoftwareWebGLRenderingPreferenceKey @"WebKitForceSoftwareWebGLRendering"
    113114#define WebKitAccelerated2dCanvasEnabledPreferenceKey @"WebKitAccelerated2dCanvasEnabled"
  • trunk/Source/WebKit/mac/WebView/WebPreferences.mm

    r198640 r199055  
    611611        [NSNumber numberWithBool:NO], WebKitCustomElementsEnabledPreferenceKey,
    612612#endif
     613#if ENABLE(WEBGL2)
     614        [NSNumber numberWithBool:NO], WebKitWebGL2EnabledPreferenceKey,
     615#endif
    613616        nil];
    614617
     
    19471950{
    19481951    [self _setBoolValue:enabled forKey:WebKitWebGLEnabledPreferenceKey];
     1952}
     1953
     1954- (BOOL)webGL2Enabled
     1955{
     1956    return [self _boolValueForKey:WebKitWebGL2EnabledPreferenceKey];
     1957}
     1958
     1959- (void)setWebGL2Enabled:(BOOL)enabled
     1960{
     1961    [self _setBoolValue:enabled forKey:WebKitWebGL2EnabledPreferenceKey];
    19491962}
    19501963
  • trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h

    r198476 r199055  
    237237- (void)setWebGLEnabled:(BOOL)enabled;
    238238
     239- (BOOL)webGL2Enabled;
     240- (void)setWebGL2Enabled:(BOOL)enabled;
     241
    239242- (BOOL)forceSoftwareWebGLRendering;
    240243- (void)setForceSoftwareWebGLRendering:(BOOL)forced;
  • trunk/Source/WebKit/mac/WebView/WebView.mm

    r198604 r199055  
    24892489#endif
    24902490
     2491#if ENABLE(WEBGL2)
     2492    RuntimeEnabledFeatures::sharedFeatures().setWebGL2Enabled([preferences webGL2Enabled]);
     2493#endif
    24912494
    24922495    NSTimeInterval timeout = [preferences incrementalRenderingSuppressionTimeoutInSeconds];
  • trunk/Source/WebKit2/ChangeLog

    r199048 r199055  
     12016-04-05  Antoine Quint  <graouts@apple.com>
     2
     3        [WebGL2] Allow enabling WebGL2 with a runtime flag
     4        https://bugs.webkit.org/show_bug.cgi?id=156166
     5        <rdar://problem/25526929>
     6
     7        Set the WebGL2 runtime flag based on preferences, disabled by default.
     8
     9        Reviewed by Dean Jackson.
     10
     11        * Shared/WebPreferencesDefinitions.h:
     12        * UIProcess/API/C/WKPreferences.cpp:
     13        (WKPreferencesSetWebGL2Enabled):
     14        (WKPreferencesGetWebGL2Enabled):
     15        * UIProcess/API/C/WKPreferencesRefPrivate.h:
     16        * WebProcess/InjectedBundle/InjectedBundle.cpp:
     17        (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
     18        * WebProcess/WebPage/WebPage.cpp:
     19        (WebKit::WebPage::updatePreferences):
     20
    1212016-04-04  Zan Dobersek  <zdobersek@igalia.com>
    222
  • trunk/Source/WebKit2/Shared/WebPreferencesDefinitions.h

    r198476 r199055  
    228228    macro(ShadowDOMEnabled, shadowDOMEnabled, Bool, bool, true) \
    229229    macro(CustomElementsEnabled, customElementsEnabled, Bool, bool, false) \
     230    macro(WebGL2Enabled, webGL2Enabled, Bool, bool, false) \
    230231    FOR_EACH_ADDITIONAL_WEBKIT_BOOL_PREFERENCE(macro) \
    231232    \
  • trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp

    r198476 r199055  
    460460}
    461461
     462void WKPreferencesSetWebGL2Enabled(WKPreferencesRef preferencesRef, bool flag)
     463{
     464    toImpl(preferencesRef)->setWebGL2Enabled(flag);
     465}
     466
     467bool WKPreferencesGetWebGL2Enabled(WKPreferencesRef preferencesRef)
     468{
     469    return toImpl(preferencesRef)->webGL2Enabled();
     470}
     471
    462472void WKPreferencesSetForceSoftwareWebGLRendering(WKPreferencesRef preferencesRef, bool flag)
    463473{
  • trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesRefPrivate.h

    r198476 r199055  
    9999
    100100// Defaults to false.
     101WK_EXPORT void WKPreferencesSetWebGL2Enabled(WKPreferencesRef, bool);
     102WK_EXPORT bool WKPreferencesGetWebGL2Enabled(WKPreferencesRef);
     103
     104// Defaults to false.
    101105WK_EXPORT void WKPreferencesSetForceSoftwareWebGLRendering(WKPreferencesRef, bool);
    102106WK_EXPORT bool WKPreferencesGetForceSoftwareWebGLRendering(WKPreferencesRef);
  • trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp

    r198180 r199055  
    204204#endif
    205205
     206#if ENABLE(WEBGL2)
     207    if (preference == "WebKitWebGL2Enabled")
     208        RuntimeEnabledFeatures::sharedFeatures().setWebGL2Enabled(enabled);
     209#endif
     210
    206211    // Map the names used in LayoutTests with the names used in WebCore::Settings and WebPreferencesStore.
    207212#define FOR_EACH_OVERRIDE_BOOL_PREFERENCE(macro) \
  • trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp

    r198939 r199055  
    30963096#endif
    30973097
     3098#if ENABLE(WEBGL2)
     3099    RuntimeEnabledFeatures::sharedFeatures().setWebGL2Enabled(store.getBoolValueForKey(WebPreferencesKey::webGL2EnabledKey()));
     3100#endif
     3101
    30983102    bool processSuppressionEnabled = store.getBoolValueForKey(WebPreferencesKey::pageVisibilityBasedProcessSuppressionEnabledKey());
    30993103    if (m_processSuppressionEnabled != processSuppressionEnabled) {
  • trunk/Tools/ChangeLog

    r199036 r199055  
     12016-04-05  Antoine Quint  <graouts@apple.com>
     2
     3        [WebGL2] Allow enabling WebGL2 with a runtime flag
     4        https://bugs.webkit.org/show_bug.cgi?id=156166
     5        <rdar://problem/25526929>
     6
     7        Always enable WebGL2 during testing.
     8
     9        Reviewed by Dean Jackson.
     10
     11        * DumpRenderTree/mac/DumpRenderTree.mm:
     12        (resetWebPreferencesToConsistentValues):
     13        * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
     14        (WTR::InjectedBundle::beginTesting):
     15        * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
     16        (WTR::TestRunner::setWebGL2Enabled):
     17        * WebKitTestRunner/InjectedBundle/TestRunner.h:
     18
    1192016-04-04  Bill Ming  <mbbill@gmail.com>
    220
  • trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm

    r198189 r199055  
    988988    [preferences setCustomElementsEnabled:YES];
    989989
     990    [preferences setWebGL2Enabled:YES];
     991
    990992    [preferences setHiddenPageDOMTimerThrottlingEnabled:NO];
    991993    [preferences setHiddenPageCSSAnimationSuspensionEnabled:NO];
  • trunk/Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp

    r198955 r199055  
    314314    m_testRunner->setCustomElementsEnabled(true);
    315315
     316    m_testRunner->setWebGL2Enabled(true);
     317
    316318    m_testRunner->setCloseRemainingWindowsWhenComplete(false);
    317319    m_testRunner->setAcceptsEditing(true);
  • trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp

    r198955 r199055  
    339339}
    340340
     341void TestRunner::setWebGL2Enabled(bool enabled)
     342{
     343    WKRetainPtr<WKStringRef> key(AdoptWK, WKStringCreateWithUTF8CString("WebKitWebGL2Enabled"));
     344    auto& injectedBundle = InjectedBundle::singleton();
     345    WKBundleOverrideBoolPreferenceForTestRunner(injectedBundle.bundle(), injectedBundle.pageGroup(), key.get(), enabled);
     346}
     347
    341348void TestRunner::setAllowUniversalAccessFromFileURLs(bool enabled)
    342349{
  • trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.h

    r198955 r199055  
    102102    void setShadowDOMEnabled(bool);
    103103    void setCustomElementsEnabled(bool);
     104    void setWebGL2Enabled(bool);
    104105    void setAllowUniversalAccessFromFileURLs(bool);
    105106    void setAllowFileAccessFromFileURLs(bool);
Note: See TracChangeset for help on using the changeset viewer.