Source/WebCore: CSS Shaders: Add a Settings flag to enable/disable CSS Shaders at runtime
https://bugs.webkit.org/show_bug.cgi?id=76444
Added setCSSCustomFilterEnabled/isCSSCustomFilterEnabled that is false by default.
I've enabled it by default on Apple Mac, to make sure there's no behavior change. Anyway, CSS shaders need
WebGL enabled, so it ends up being disabled by default.
Reviewed by Nikolas Zimmermann.
Test: css3/filters/effect-custom-disabled.html
* css/CSSParser.cpp:
(WebCore::CSSParser::parseFilter):
Do not parse the custom() function when shaders are disabled.
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applyProperty):
Do not overwrite the old style->filter() if parsing fails.
(WebCore::CSSStyleSelector::createFilterOperations):
Do not continue if one custom() filter fails to parse.
* page/Settings.cpp:
(WebCore::Settings::Settings):
* page/Settings.h:
(WebCore::Settings::setCSSCustomFilterEnabled):
(WebCore::Settings::isCSSCustomFilterEnabled):
* rendering/FilterEffectRenderer.cpp:
(WebCore::isCSSCustomFilterEnabled):
(WebCore::FilterEffectRenderer::build):
Avoid creating the filter when shaders are disabled. It may happen to get here if shaders were disabled between parsing and rendering.
Source/WebKit/mac: CSS Shaders: Add a Settings flag to enable/disable CSS Shaders at runtime
https://bugs.webkit.org/show_bug.cgi?id=76444
Added private WebPreference property called "WebKitCSSCustomFilterEnabled".
Reviewed by Nikolas Zimmermann.
* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences cssCustomFilterEnabled]):
(-[WebPreferences setCSSCustomFilterEnabled:]):
* WebView/WebPreferencesPrivate.h:
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):
Source/WebKit2: CSS Shaders: Add a Settings flag to enable/disable CSS Shaders at runtime
https://bugs.webkit.org/show_bug.cgi?id=76444
Reviewed by Nikolas Zimmermann.
* Shared/WebPreferencesStore.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetCSSCustomFilterEnabled):
(WKPreferencesGetCSSCustomFilterEnabled):
* UIProcess/API/C/WKPreferencesPrivate.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
LayoutTests: CSS Shaders: Add a Settings flag to enable/disable CSS Shaders at runtime
https://bugs.webkit.org/show_bug.cgi?id=76444
Reviewed by Nikolas Zimmermann.
* css3/filters/effect-custom-disabled-expected.txt: Added.
* css3/filters/effect-custom-disabled.html: Added.
* css3/filters/script-tests/effect-custom-disabled.js: Added.
(testInvalidFilterRule):
* platform/wk2/Skipped:
Skipped a couple of tests that call overridePreference.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@105485
268f45cc-cd09-0410-ab3c-
d52691b4dbfc