Rename color-filter to -apple-color-filter and do not expose it to Web content
https://bugs.webkit.org/show_bug.cgi?id=186306
<rdar://problem/39874167>
Reviewed by Simon Fraser.
Source/WebCore:
Rename the color-filter CSS property to -apple-color-filter.
- animation/KeyframeEffectReadOnly.cpp:
(WebCore::KeyframeEffectReadOnly::checkForMatchingColorFilterFunctionLists):
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::valueForPropertyinStyle):
- css/CSSGradientValue.cpp:
(WebCore::CSSGradientValue::image):
(WebCore::CSSGradientValue::computeStops):
(WebCore::CSSGradientValue::knownToBeOpaque const):
- css/CSSProperties.json:
- css/parser/CSSPropertyParser.cpp:
(WebCore::CSSPropertyParser::parseSingleValue):
- page/animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- page/animation/ImplicitAnimation.cpp:
(WebCore::ImplicitAnimation::checkForMatchingColorFilterFunctionLists):
- page/animation/KeyframeAnimation.cpp:
(WebCore::KeyframeAnimation::checkForMatchingColorFilterFunctionLists):
- rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paintMarkedTextForeground):
(WebCore::InlineTextBox::paintMarkedTextDecoration):
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::changeRequiresRepaint const):
(WebCore::RenderStyle::visitedDependentColorWithColorFilter const):
(WebCore::RenderStyle::colorByApplyingColorFilter const):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::mutableAppleColorFilter):
(WebCore::RenderStyle::appleColorFilter const):
(WebCore::RenderStyle::hasAppleColorFilter const):
(WebCore::RenderStyle::setAppleColorFilter):
(WebCore::RenderStyle::initialAppleColorFilter):
(WebCore::RenderStyle::mutableColorFilter): Deleted.
(WebCore::RenderStyle::colorFilter const): Deleted.
(WebCore::RenderStyle::hasColorFilter const): Deleted.
(WebCore::RenderStyle::setColorFilter): Deleted.
(WebCore::RenderStyle::initialColorFilter): Deleted.
- rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator== const):
(WebCore::StyleRareInheritedData::hasColorFilters const):
- rendering/style/StyleRareInheritedData.h:
Source/WebKit:
Change the ColorFilter setting to no longer be exposed as an experimental feature and ensure it's turned off by default.
To allow internal clients to use the -apple-color-filter property, we expose a new _colorFilterEnabled property as SPI
to WKWebViewConfigurationPrivate.
- Shared/WebPreferences.yaml:
- UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetColorFilterEnabled):
(WKPreferencesGetColorFilterEnabled):
- UIProcess/API/C/WKPreferencesRefPrivate.h:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _setAttachmentElementEnabled:]):
(-[WKWebViewConfiguration _colorFilterEnabled]):
(-[WKWebViewConfiguration _setColorFilterEnabled:]):
- UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
Tools:
Adding an option to turn support for the -apple-color-filter property on via an HTML comment.
- DumpRenderTree/TestOptions.cpp:
(TestOptions::TestOptions):
- DumpRenderTree/TestOptions.h:
- DumpRenderTree/mac/DumpRenderTree.mm:
(setWebPreferencesForTestOptions):
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetPreferencesToConsistentValues):
(WTR::updateTestOptionsFromTestHeader):
- WebKitTestRunner/TestOptions.h:
(WTR::TestOptions::hasSameInitializationOptions const):
- WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::TestController::platformCreateWebView):
LayoutTests:
Update tests for color-filter to test -apple-color-filter and explicitly turn the feature on since it's disabled by default.
We also update a test to not use the colorFilter accessor and setter on CSSStyleDeclaration because using an -apple- prefix
will no longer expose such a getter or setter, using getPropertyValue() and setProperty() instead.
- animations/resources/animation-test-helpers.js:
(getPropertyValue):
(comparePropertyValue):
- css3/color-filters/color-filter-animation-expected.txt:
- css3/color-filters/color-filter-animation.html:
- css3/color-filters/color-filter-backgrounds-borders-expected.html:
- css3/color-filters/color-filter-backgrounds-borders.html:
- css3/color-filters/color-filter-box-shadow-expected.html:
- css3/color-filters/color-filter-box-shadow.html:
- css3/color-filters/color-filter-brightness-expected.html:
- css3/color-filters/color-filter-brightness.html:
- css3/color-filters/color-filter-caret-color-expected.html:
- css3/color-filters/color-filter-caret-color.html:
- css3/color-filters/color-filter-color-property-expected.html:
- css3/color-filters/color-filter-color-property-list-item-expected.html:
- css3/color-filters/color-filter-color-property-list-item.html:
- css3/color-filters/color-filter-color-property.html:
- css3/color-filters/color-filter-color-text-decorations-expected.html:
- css3/color-filters/color-filter-color-text-decorations.html:
- css3/color-filters/color-filter-column-rule-expected.html:
- css3/color-filters/color-filter-column-rule.html:
- css3/color-filters/color-filter-contrast-expected.html:
- css3/color-filters/color-filter-contrast.html:
- css3/color-filters/color-filter-current-color-expected.html:
- css3/color-filters/color-filter-current-color.html:
- css3/color-filters/color-filter-filter-list-expected.html:
- css3/color-filters/color-filter-filter-list.html:
- css3/color-filters/color-filter-gradients-expected.html:
- css3/color-filters/color-filter-gradients.html:
- css3/color-filters/color-filter-grayscale-expected.html:
- css3/color-filters/color-filter-grayscale.html:
- css3/color-filters/color-filter-hue-rotate-expected.html:
- css3/color-filters/color-filter-hue-rotate.html:
- css3/color-filters/color-filter-inherits-expected.html:
- css3/color-filters/color-filter-inherits.html:
- css3/color-filters/color-filter-invert-expected.html:
- css3/color-filters/color-filter-invert.html:
- css3/color-filters/color-filter-opacity-expected.html:
- css3/color-filters/color-filter-opacity.html:
- css3/color-filters/color-filter-outline-expected.html:
- css3/color-filters/color-filter-outline.html:
- css3/color-filters/color-filter-parsing-expected.txt:
- css3/color-filters/color-filter-parsing.html:
- css3/color-filters/color-filter-saturate-expected.html:
- css3/color-filters/color-filter-saturate.html:
- css3/color-filters/color-filter-sepia-expected.html:
- css3/color-filters/color-filter-sepia.html:
- css3/color-filters/color-filter-text-decoration-shadow-expected.html:
- css3/color-filters/color-filter-text-decoration-shadow.html:
- css3/color-filters/color-filter-text-emphasis-expected.html:
- css3/color-filters/color-filter-text-emphasis.html:
- css3/color-filters/color-filter-text-shadow-expected.html:
- css3/color-filters/color-filter-text-shadow.html:
- css3/color-filters/color-filter-text-stroke-expected.html:
- css3/color-filters/color-filter-text-stroke.html:
- css3/color-filters/svg/color-filter-inline-svg-expected.html:
- css3/color-filters/svg/color-filter-inline-svg.html: