haikuwebkit/LayoutTests/css3/color-filters/color-filter-text-decoratio...

32 lines
773 B
HTML
Raw Permalink Normal View History

Fix color-filter to apply to text decorations https://bugs.webkit.org/show_bug.cgi?id=185068 <rdar://problem/39782136> Reviewed by Alan Bujtas. Source/WebCore: Transform the colors of text shadows, and the shadows of text-decorations through the color-filter. Rather than clone the ShadowData stored on TextPainter and TextDecorationPainter (which would have awkward ownership implications) we pass the color filters through and just map the color through it before painting. Re-order the members of TextPainter a little to optimize padding. Also fix a bug where FilterOperations::transformColor() could transform an invalid color to a valid one; we never want this. Tests: css3/color-filters/color-filter-text-decoration-shadow.html css3/color-filters/color-filter-text-shadow.html * platform/graphics/filters/FilterOperations.cpp: (WebCore::FilterOperations::transformColor const): * rendering/InlineTextBox.cpp: (WebCore::InlineTextBox::paintMarkedTextForeground): (WebCore::InlineTextBox::paintMarkedTextDecoration): * rendering/TextDecorationPainter.cpp: (WebCore::TextDecorationPainter::paintTextDecoration): * rendering/TextDecorationPainter.h: (WebCore::TextDecorationPainter::setTextShadow): (WebCore::TextDecorationPainter::setShadowColorFilter): (WebCore::TextDecorationPainter::addTextShadow): Deleted. * rendering/TextPainter.cpp: (WebCore::ShadowApplier::ShadowApplier): (WebCore::TextPainter::paintTextWithShadows): (WebCore::TextPainter::paintTextAndEmphasisMarksIfNeeded): Simplify the logic that only paints the shadow on the first iteration. (WebCore::TextPainter::paintRange): * rendering/TextPainter.h: (WebCore::TextPainter::setShadowColorFilter): * rendering/svg/SVGInlineTextBox.cpp: (WebCore::SVGInlineTextBox::paintTextWithShadows): LayoutTests: * css3/color-filters/color-filter-text-decoration-shadow-expected.html: Added. * css3/color-filters/color-filter-text-decoration-shadow.html: Added. * css3/color-filters/color-filter-text-shadow-expected.html: Added. * css3/color-filters/color-filter-text-shadow.html: Added. Canonical link: https://commits.webkit.org/200566@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231100 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-04-27 16:11:12 +00:00
<!DOCTYPE html>
<html>
<head>
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: Canonical link: https://commits.webkit.org/201735@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@232559 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-06-06 22:27:20 +00:00
<title>CSS Test: -apple-color-filter reference</title>
Fix color-filter to apply to text decorations https://bugs.webkit.org/show_bug.cgi?id=185068 <rdar://problem/39782136> Reviewed by Alan Bujtas. Source/WebCore: Transform the colors of text shadows, and the shadows of text-decorations through the color-filter. Rather than clone the ShadowData stored on TextPainter and TextDecorationPainter (which would have awkward ownership implications) we pass the color filters through and just map the color through it before painting. Re-order the members of TextPainter a little to optimize padding. Also fix a bug where FilterOperations::transformColor() could transform an invalid color to a valid one; we never want this. Tests: css3/color-filters/color-filter-text-decoration-shadow.html css3/color-filters/color-filter-text-shadow.html * platform/graphics/filters/FilterOperations.cpp: (WebCore::FilterOperations::transformColor const): * rendering/InlineTextBox.cpp: (WebCore::InlineTextBox::paintMarkedTextForeground): (WebCore::InlineTextBox::paintMarkedTextDecoration): * rendering/TextDecorationPainter.cpp: (WebCore::TextDecorationPainter::paintTextDecoration): * rendering/TextDecorationPainter.h: (WebCore::TextDecorationPainter::setTextShadow): (WebCore::TextDecorationPainter::setShadowColorFilter): (WebCore::TextDecorationPainter::addTextShadow): Deleted. * rendering/TextPainter.cpp: (WebCore::ShadowApplier::ShadowApplier): (WebCore::TextPainter::paintTextWithShadows): (WebCore::TextPainter::paintTextAndEmphasisMarksIfNeeded): Simplify the logic that only paints the shadow on the first iteration. (WebCore::TextPainter::paintRange): * rendering/TextPainter.h: (WebCore::TextPainter::setShadowColorFilter): * rendering/svg/SVGInlineTextBox.cpp: (WebCore::SVGInlineTextBox::paintTextWithShadows): LayoutTests: * css3/color-filters/color-filter-text-decoration-shadow-expected.html: Added. * css3/color-filters/color-filter-text-decoration-shadow.html: Added. * css3/color-filters/color-filter-text-shadow-expected.html: Added. * css3/color-filters/color-filter-text-shadow.html: Added. Canonical link: https://commits.webkit.org/200566@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231100 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-04-27 16:11:12 +00:00
<link rel="author" title="Apple" href="http://www.apple.com/">
<style type="text/css">
.test
{
Clean up color-filter tests. Detab the files. Remove calls to internals.settings.setColorFilterEnabled() which aren't needed, since WebKitTestRunner and DumpRenderTree turn the feature on by default. * 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-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.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.html: Canonical link: https://commits.webkit.org/200591@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231125 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-04-28 00:27:39 +00:00
font: 120px sans-serif;
color: green;
margin: 100px 20px;
text-decoration: underline overline line-through;
Fix color-filter to apply to text decorations https://bugs.webkit.org/show_bug.cgi?id=185068 <rdar://problem/39782136> Reviewed by Alan Bujtas. Source/WebCore: Transform the colors of text shadows, and the shadows of text-decorations through the color-filter. Rather than clone the ShadowData stored on TextPainter and TextDecorationPainter (which would have awkward ownership implications) we pass the color filters through and just map the color through it before painting. Re-order the members of TextPainter a little to optimize padding. Also fix a bug where FilterOperations::transformColor() could transform an invalid color to a valid one; we never want this. Tests: css3/color-filters/color-filter-text-decoration-shadow.html css3/color-filters/color-filter-text-shadow.html * platform/graphics/filters/FilterOperations.cpp: (WebCore::FilterOperations::transformColor const): * rendering/InlineTextBox.cpp: (WebCore::InlineTextBox::paintMarkedTextForeground): (WebCore::InlineTextBox::paintMarkedTextDecoration): * rendering/TextDecorationPainter.cpp: (WebCore::TextDecorationPainter::paintTextDecoration): * rendering/TextDecorationPainter.h: (WebCore::TextDecorationPainter::setTextShadow): (WebCore::TextDecorationPainter::setShadowColorFilter): (WebCore::TextDecorationPainter::addTextShadow): Deleted. * rendering/TextPainter.cpp: (WebCore::ShadowApplier::ShadowApplier): (WebCore::TextPainter::paintTextWithShadows): (WebCore::TextPainter::paintTextAndEmphasisMarksIfNeeded): Simplify the logic that only paints the shadow on the first iteration. (WebCore::TextPainter::paintRange): * rendering/TextPainter.h: (WebCore::TextPainter::setShadowColorFilter): * rendering/svg/SVGInlineTextBox.cpp: (WebCore::SVGInlineTextBox::paintTextWithShadows): LayoutTests: * css3/color-filters/color-filter-text-decoration-shadow-expected.html: Added. * css3/color-filters/color-filter-text-decoration-shadow.html: Added. * css3/color-filters/color-filter-text-shadow-expected.html: Added. * css3/color-filters/color-filter-text-shadow.html: Added. Canonical link: https://commits.webkit.org/200566@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231100 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-04-27 16:11:12 +00:00
}
.single
{
Clean up color-filter tests. Detab the files. Remove calls to internals.settings.setColorFilterEnabled() which aren't needed, since WebKitTestRunner and DumpRenderTree turn the feature on by default. * 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-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.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.html: Canonical link: https://commits.webkit.org/200591@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231125 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-04-28 00:27:39 +00:00
text-shadow: 150px 0 0 yellow;
Fix color-filter to apply to text decorations https://bugs.webkit.org/show_bug.cgi?id=185068 <rdar://problem/39782136> Reviewed by Alan Bujtas. Source/WebCore: Transform the colors of text shadows, and the shadows of text-decorations through the color-filter. Rather than clone the ShadowData stored on TextPainter and TextDecorationPainter (which would have awkward ownership implications) we pass the color filters through and just map the color through it before painting. Re-order the members of TextPainter a little to optimize padding. Also fix a bug where FilterOperations::transformColor() could transform an invalid color to a valid one; we never want this. Tests: css3/color-filters/color-filter-text-decoration-shadow.html css3/color-filters/color-filter-text-shadow.html * platform/graphics/filters/FilterOperations.cpp: (WebCore::FilterOperations::transformColor const): * rendering/InlineTextBox.cpp: (WebCore::InlineTextBox::paintMarkedTextForeground): (WebCore::InlineTextBox::paintMarkedTextDecoration): * rendering/TextDecorationPainter.cpp: (WebCore::TextDecorationPainter::paintTextDecoration): * rendering/TextDecorationPainter.h: (WebCore::TextDecorationPainter::setTextShadow): (WebCore::TextDecorationPainter::setShadowColorFilter): (WebCore::TextDecorationPainter::addTextShadow): Deleted. * rendering/TextPainter.cpp: (WebCore::ShadowApplier::ShadowApplier): (WebCore::TextPainter::paintTextWithShadows): (WebCore::TextPainter::paintTextAndEmphasisMarksIfNeeded): Simplify the logic that only paints the shadow on the first iteration. (WebCore::TextPainter::paintRange): * rendering/TextPainter.h: (WebCore::TextPainter::setShadowColorFilter): * rendering/svg/SVGInlineTextBox.cpp: (WebCore::SVGInlineTextBox::paintTextWithShadows): LayoutTests: * css3/color-filters/color-filter-text-decoration-shadow-expected.html: Added. * css3/color-filters/color-filter-text-decoration-shadow.html: Added. * css3/color-filters/color-filter-text-shadow-expected.html: Added. * css3/color-filters/color-filter-text-shadow.html: Added. Canonical link: https://commits.webkit.org/200566@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231100 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-04-27 16:11:12 +00:00
}
.multiple
{
Clean up color-filter tests. Detab the files. Remove calls to internals.settings.setColorFilterEnabled() which aren't needed, since WebKitTestRunner and DumpRenderTree turn the feature on by default. * 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-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.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.html: Canonical link: https://commits.webkit.org/200591@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231125 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-04-28 00:27:39 +00:00
text-shadow: 150px 0 0 yellow, 300px 0 0 cyan;
Fix color-filter to apply to text decorations https://bugs.webkit.org/show_bug.cgi?id=185068 <rdar://problem/39782136> Reviewed by Alan Bujtas. Source/WebCore: Transform the colors of text shadows, and the shadows of text-decorations through the color-filter. Rather than clone the ShadowData stored on TextPainter and TextDecorationPainter (which would have awkward ownership implications) we pass the color filters through and just map the color through it before painting. Re-order the members of TextPainter a little to optimize padding. Also fix a bug where FilterOperations::transformColor() could transform an invalid color to a valid one; we never want this. Tests: css3/color-filters/color-filter-text-decoration-shadow.html css3/color-filters/color-filter-text-shadow.html * platform/graphics/filters/FilterOperations.cpp: (WebCore::FilterOperations::transformColor const): * rendering/InlineTextBox.cpp: (WebCore::InlineTextBox::paintMarkedTextForeground): (WebCore::InlineTextBox::paintMarkedTextDecoration): * rendering/TextDecorationPainter.cpp: (WebCore::TextDecorationPainter::paintTextDecoration): * rendering/TextDecorationPainter.h: (WebCore::TextDecorationPainter::setTextShadow): (WebCore::TextDecorationPainter::setShadowColorFilter): (WebCore::TextDecorationPainter::addTextShadow): Deleted. * rendering/TextPainter.cpp: (WebCore::ShadowApplier::ShadowApplier): (WebCore::TextPainter::paintTextWithShadows): (WebCore::TextPainter::paintTextAndEmphasisMarksIfNeeded): Simplify the logic that only paints the shadow on the first iteration. (WebCore::TextPainter::paintRange): * rendering/TextPainter.h: (WebCore::TextPainter::setShadowColorFilter): * rendering/svg/SVGInlineTextBox.cpp: (WebCore::SVGInlineTextBox::paintTextWithShadows): LayoutTests: * css3/color-filters/color-filter-text-decoration-shadow-expected.html: Added. * css3/color-filters/color-filter-text-decoration-shadow.html: Added. * css3/color-filters/color-filter-text-shadow-expected.html: Added. * css3/color-filters/color-filter-text-shadow.html: Added. Canonical link: https://commits.webkit.org/200566@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231100 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-04-27 16:11:12 +00:00
}
</style>
</head>
<body>
<div class="test single">O</div>
<div class="test multiple">O</div>
</body>
</html>