haikuwebkit/LayoutTests/css3/blending/svg-isolation-isolated-grou...

10 lines
600 B
HTML
Raw Permalink Normal View History

[CSS Blending] Parse and implement the -webkit-isolation CSS property. https://bugs.webkit.org/show_bug.cgi?id=128958 Patch by Mihai Tica <mitica@adobe.com> on 2014-02-27 Reviewed by Dirk Schulze. Source/WebCore: Parse and implement -webkit-isolation, part of the CSS Blending and Compositing spec. This patch adds functionality for HTML and SVG. -webkit-isolation: isolate restricts any child elements from blending with any of the content outside the isolated parent element. Tests: css3/compositing/isolation-isolate-blended-child.html css3/compositing/isolation-parsing.html css3/compositing/svg-isolation-default.html css3/compositing/svg-isolation-isolated-group.html css3/compositing/svg-isolation-simple.html * css/CSSComputedStyleDeclaration.cpp: (WebCore::ComputedStyleExtractor::propertyValue): * css/CSSParser.cpp: (WebCore::isValidKeywordPropertyAndValue): (WebCore::isKeywordPropertyID): (WebCore::CSSParser::parseValue): * css/CSSPrimitiveValueMappings.h: (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): (WebCore::CSSPrimitiveValue::operator Isolation): * css/CSSPropertyNames.in: Add -webkit-isolation. * css/CSSValueKeywords.in: Add the isolate value. * css/DeprecatedStyleBuilder.cpp: (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder): * css/StyleResolver.cpp: (WebCore::StyleResolver::adjustRenderStyle): Explicitly set isolation:isolate to create a stacking context. * rendering/style/RenderStyle.cpp: (WebCore::RenderStyle::changeRequiresLayerRepaint): Changing isolation should trigger a repaint. * rendering/style/RenderStyle.h: Setters and getters for isolation. * rendering/style/RenderStyleConstants.h: Add Isolation enum. * rendering/style/StyleRareNonInheritedData.cpp: Add m_isolation. (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData): (WebCore::StyleRareNonInheritedData::operator==): * rendering/style/StyleRareNonInheritedData.h: * rendering/svg/SVGRenderingContext.cpp: (WebCore::SVGRenderingContext::prepareToRenderSVGContent): If isolated, paint in a transparency layer. LayoutTests: Test parsing of -webkit-isolation. Test if setting -webkit-isolation: isolate creats a stacking context. Test for SVG and HTML that blending is restricted to the contents of an isolated parent element. * css3/compositing/isolation-isolate-blended-child-expected.html: Added. * css3/compositing/isolation-isolate-blended-child.html: Added. * css3/compositing/isolation-isolate-simple-expected.txt: Added. * css3/compositing/isolation-parsing-expected.txt: Added. * css3/compositing/isolation-parsing.html: Added. * css3/compositing/svg-isolation-default-expected.html: Added. * css3/compositing/svg-isolation-default.html: Added. * css3/compositing/svg-isolation-isolated-group-expected.html: Added. * css3/compositing/svg-isolation-isolated-group.html: Added. * css3/compositing/svg-isolation-simple-expected.html: Added. * css3/compositing/svg-isolation-simple.html: Added. Canonical link: https://commits.webkit.org/147486@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164795 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2014-02-27 13:15:25 +00:00
<!DOCTYPE HTML>
<!-- Test behaviour of isolation for overlapping elements within groups. The test passes if there are no rects drawn with red.
This implies that the isolation is performed accordingly, meaning the orange rect doesn't blend with the background color. -->
<svg xmlns="http://www.w3.org/2000/svg" width="400px" height="400px" style="background: green">
[CSS Blending] Remove the -webkit- prefix for mix-blend-mode and isolation CSS properties https://bugs.webkit.org/show_bug.cgi?id=131355 Reviewed by Dean Jackson. Source/WebCore: Removed webkit prefix from mix-blend-mode and isolation. These properties never shipped and their spec is now in CR. Covered by existing tests. * css/CSSComputedStyleDeclaration.cpp: (WebCore::ComputedStyleExtractor::propertyValue): * css/CSSParser.cpp: (WebCore::isValidKeywordPropertyAndValue): (WebCore::isKeywordPropertyID): (WebCore::CSSParser::parseValue): * css/CSSPropertyNames.in: * css/DeprecatedStyleBuilder.cpp: (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder): LayoutTests: Removed prefix from mix-blend-mode and isolation in layout tests. * css3/compositing/blend-mode-accelerated-with-multiple-stacking-contexts.html: * css3/compositing/blend-mode-ancestor-clipping-layer.html: * css3/compositing/blend-mode-background.html: * css3/compositing/blend-mode-blended-element-overlapping-composited-sibling-should-have-compositing-layer.html: * css3/compositing/blend-mode-isolated-group-1.html: * css3/compositing/blend-mode-isolated-group-2.html: * css3/compositing/blend-mode-isolated-group-3.html: * css3/compositing/blend-mode-layers.html: * css3/compositing/blend-mode-parent-of-composited-blended-has-layer.html: * css3/compositing/blend-mode-property-expected.txt: * css3/compositing/blend-mode-property-parsing-expected.txt: * css3/compositing/blend-mode-property-parsing-invalid-expected.txt: * css3/compositing/blend-mode-reflection.html: * css3/compositing/blend-mode-simple-composited.html: * css3/compositing/blend-mode-simple.html: * css3/compositing/blend-mode-transform-style-expected.txt: * css3/compositing/blend-mode-transform-style.html: * css3/compositing/blend-mode-with-accelerated-sibling.html: * css3/compositing/blend-mode-with-composited-descendant-should-have-layer.html: * css3/compositing/isolation-isolate-blended-child-expected.html: * css3/compositing/isolation-isolate-blended-child.html: * css3/compositing/isolation-parsing.html: * css3/compositing/script-tests/blend-mode-property-parsing-invalid.js: (testInvalidFilterRule): * css3/compositing/script-tests/blend-mode-property-parsing.js: (testBlendModeRule): * css3/compositing/script-tests/blend-mode-property.js: (testblendmode): * css3/compositing/svg-blend-color-dodge.html: * css3/compositing/svg-blend-color.html: * css3/compositing/svg-blend-hard-light.html: * css3/compositing/svg-blend-hue.html: * css3/compositing/svg-blend-layer-blend.html: * css3/compositing/svg-blend-layer-clip-path.html: * css3/compositing/svg-blend-layer-filter.html: * css3/compositing/svg-blend-layer-opacity.html: * css3/compositing/svg-blend-layer-shadow.html: * css3/compositing/svg-blend-luminosity.html: * css3/compositing/svg-blend-multiply-alpha.html: * css3/compositing/svg-blend-multiply.html: * css3/compositing/svg-blend-saturation.html: * css3/compositing/svg-blend-screen.html: * css3/compositing/svg-blend-soft-light.html: * css3/compositing/svg-isolation-default-expected.html: * css3/compositing/svg-isolation-default.html: * css3/compositing/svg-isolation-isolated-group-expected.html: * css3/compositing/svg-isolation-isolated-group.html: * fast/repaint/blend-mode-isolate-stacking-context.html: * inspector-protocol/layers/layers-blending-compositing-reasons.html: * transitions/blendmode-transitions-expected.txt: * transitions/blendmode-transitions.html: Canonical link: https://commits.webkit.org/149878@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@167448 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2014-04-17 20:24:43 +00:00
<g style="isolation: isolate;">
[CSS Blending] Parse and implement the -webkit-isolation CSS property. https://bugs.webkit.org/show_bug.cgi?id=128958 Patch by Mihai Tica <mitica@adobe.com> on 2014-02-27 Reviewed by Dirk Schulze. Source/WebCore: Parse and implement -webkit-isolation, part of the CSS Blending and Compositing spec. This patch adds functionality for HTML and SVG. -webkit-isolation: isolate restricts any child elements from blending with any of the content outside the isolated parent element. Tests: css3/compositing/isolation-isolate-blended-child.html css3/compositing/isolation-parsing.html css3/compositing/svg-isolation-default.html css3/compositing/svg-isolation-isolated-group.html css3/compositing/svg-isolation-simple.html * css/CSSComputedStyleDeclaration.cpp: (WebCore::ComputedStyleExtractor::propertyValue): * css/CSSParser.cpp: (WebCore::isValidKeywordPropertyAndValue): (WebCore::isKeywordPropertyID): (WebCore::CSSParser::parseValue): * css/CSSPrimitiveValueMappings.h: (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): (WebCore::CSSPrimitiveValue::operator Isolation): * css/CSSPropertyNames.in: Add -webkit-isolation. * css/CSSValueKeywords.in: Add the isolate value. * css/DeprecatedStyleBuilder.cpp: (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder): * css/StyleResolver.cpp: (WebCore::StyleResolver::adjustRenderStyle): Explicitly set isolation:isolate to create a stacking context. * rendering/style/RenderStyle.cpp: (WebCore::RenderStyle::changeRequiresLayerRepaint): Changing isolation should trigger a repaint. * rendering/style/RenderStyle.h: Setters and getters for isolation. * rendering/style/RenderStyleConstants.h: Add Isolation enum. * rendering/style/StyleRareNonInheritedData.cpp: Add m_isolation. (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData): (WebCore::StyleRareNonInheritedData::operator==): * rendering/style/StyleRareNonInheritedData.h: * rendering/svg/SVGRenderingContext.cpp: (WebCore::SVGRenderingContext::prepareToRenderSVGContent): If isolated, paint in a transparency layer. LayoutTests: Test parsing of -webkit-isolation. Test if setting -webkit-isolation: isolate creats a stacking context. Test for SVG and HTML that blending is restricted to the contents of an isolated parent element. * css3/compositing/isolation-isolate-blended-child-expected.html: Added. * css3/compositing/isolation-isolate-blended-child.html: Added. * css3/compositing/isolation-isolate-simple-expected.txt: Added. * css3/compositing/isolation-parsing-expected.txt: Added. * css3/compositing/isolation-parsing.html: Added. * css3/compositing/svg-isolation-default-expected.html: Added. * css3/compositing/svg-isolation-default.html: Added. * css3/compositing/svg-isolation-isolated-group-expected.html: Added. * css3/compositing/svg-isolation-isolated-group.html: Added. * css3/compositing/svg-isolation-simple-expected.html: Added. * css3/compositing/svg-isolation-simple.html: Added. Canonical link: https://commits.webkit.org/147486@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164795 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2014-02-27 13:15:25 +00:00
<rect x="100" y="100" width="250" height="250" style="fill: blue;"/>
[CSS Blending] Remove the -webkit- prefix for mix-blend-mode and isolation CSS properties https://bugs.webkit.org/show_bug.cgi?id=131355 Reviewed by Dean Jackson. Source/WebCore: Removed webkit prefix from mix-blend-mode and isolation. These properties never shipped and their spec is now in CR. Covered by existing tests. * css/CSSComputedStyleDeclaration.cpp: (WebCore::ComputedStyleExtractor::propertyValue): * css/CSSParser.cpp: (WebCore::isValidKeywordPropertyAndValue): (WebCore::isKeywordPropertyID): (WebCore::CSSParser::parseValue): * css/CSSPropertyNames.in: * css/DeprecatedStyleBuilder.cpp: (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder): LayoutTests: Removed prefix from mix-blend-mode and isolation in layout tests. * css3/compositing/blend-mode-accelerated-with-multiple-stacking-contexts.html: * css3/compositing/blend-mode-ancestor-clipping-layer.html: * css3/compositing/blend-mode-background.html: * css3/compositing/blend-mode-blended-element-overlapping-composited-sibling-should-have-compositing-layer.html: * css3/compositing/blend-mode-isolated-group-1.html: * css3/compositing/blend-mode-isolated-group-2.html: * css3/compositing/blend-mode-isolated-group-3.html: * css3/compositing/blend-mode-layers.html: * css3/compositing/blend-mode-parent-of-composited-blended-has-layer.html: * css3/compositing/blend-mode-property-expected.txt: * css3/compositing/blend-mode-property-parsing-expected.txt: * css3/compositing/blend-mode-property-parsing-invalid-expected.txt: * css3/compositing/blend-mode-reflection.html: * css3/compositing/blend-mode-simple-composited.html: * css3/compositing/blend-mode-simple.html: * css3/compositing/blend-mode-transform-style-expected.txt: * css3/compositing/blend-mode-transform-style.html: * css3/compositing/blend-mode-with-accelerated-sibling.html: * css3/compositing/blend-mode-with-composited-descendant-should-have-layer.html: * css3/compositing/isolation-isolate-blended-child-expected.html: * css3/compositing/isolation-isolate-blended-child.html: * css3/compositing/isolation-parsing.html: * css3/compositing/script-tests/blend-mode-property-parsing-invalid.js: (testInvalidFilterRule): * css3/compositing/script-tests/blend-mode-property-parsing.js: (testBlendModeRule): * css3/compositing/script-tests/blend-mode-property.js: (testblendmode): * css3/compositing/svg-blend-color-dodge.html: * css3/compositing/svg-blend-color.html: * css3/compositing/svg-blend-hard-light.html: * css3/compositing/svg-blend-hue.html: * css3/compositing/svg-blend-layer-blend.html: * css3/compositing/svg-blend-layer-clip-path.html: * css3/compositing/svg-blend-layer-filter.html: * css3/compositing/svg-blend-layer-opacity.html: * css3/compositing/svg-blend-layer-shadow.html: * css3/compositing/svg-blend-luminosity.html: * css3/compositing/svg-blend-multiply-alpha.html: * css3/compositing/svg-blend-multiply.html: * css3/compositing/svg-blend-saturation.html: * css3/compositing/svg-blend-screen.html: * css3/compositing/svg-blend-soft-light.html: * css3/compositing/svg-isolation-default-expected.html: * css3/compositing/svg-isolation-default.html: * css3/compositing/svg-isolation-isolated-group-expected.html: * css3/compositing/svg-isolation-isolated-group.html: * fast/repaint/blend-mode-isolate-stacking-context.html: * inspector-protocol/layers/layers-blending-compositing-reasons.html: * transitions/blendmode-transitions-expected.txt: * transitions/blendmode-transitions.html: Canonical link: https://commits.webkit.org/149878@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@167448 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2014-04-17 20:24:43 +00:00
<rect x="50" y="50" width="200" height="200" style="fill: orange; mix-blend-mode: difference;"/>
[CSS Blending] Parse and implement the -webkit-isolation CSS property. https://bugs.webkit.org/show_bug.cgi?id=128958 Patch by Mihai Tica <mitica@adobe.com> on 2014-02-27 Reviewed by Dirk Schulze. Source/WebCore: Parse and implement -webkit-isolation, part of the CSS Blending and Compositing spec. This patch adds functionality for HTML and SVG. -webkit-isolation: isolate restricts any child elements from blending with any of the content outside the isolated parent element. Tests: css3/compositing/isolation-isolate-blended-child.html css3/compositing/isolation-parsing.html css3/compositing/svg-isolation-default.html css3/compositing/svg-isolation-isolated-group.html css3/compositing/svg-isolation-simple.html * css/CSSComputedStyleDeclaration.cpp: (WebCore::ComputedStyleExtractor::propertyValue): * css/CSSParser.cpp: (WebCore::isValidKeywordPropertyAndValue): (WebCore::isKeywordPropertyID): (WebCore::CSSParser::parseValue): * css/CSSPrimitiveValueMappings.h: (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): (WebCore::CSSPrimitiveValue::operator Isolation): * css/CSSPropertyNames.in: Add -webkit-isolation. * css/CSSValueKeywords.in: Add the isolate value. * css/DeprecatedStyleBuilder.cpp: (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder): * css/StyleResolver.cpp: (WebCore::StyleResolver::adjustRenderStyle): Explicitly set isolation:isolate to create a stacking context. * rendering/style/RenderStyle.cpp: (WebCore::RenderStyle::changeRequiresLayerRepaint): Changing isolation should trigger a repaint. * rendering/style/RenderStyle.h: Setters and getters for isolation. * rendering/style/RenderStyleConstants.h: Add Isolation enum. * rendering/style/StyleRareNonInheritedData.cpp: Add m_isolation. (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData): (WebCore::StyleRareNonInheritedData::operator==): * rendering/style/StyleRareNonInheritedData.h: * rendering/svg/SVGRenderingContext.cpp: (WebCore::SVGRenderingContext::prepareToRenderSVGContent): If isolated, paint in a transparency layer. LayoutTests: Test parsing of -webkit-isolation. Test if setting -webkit-isolation: isolate creats a stacking context. Test for SVG and HTML that blending is restricted to the contents of an isolated parent element. * css3/compositing/isolation-isolate-blended-child-expected.html: Added. * css3/compositing/isolation-isolate-blended-child.html: Added. * css3/compositing/isolation-isolate-simple-expected.txt: Added. * css3/compositing/isolation-parsing-expected.txt: Added. * css3/compositing/isolation-parsing.html: Added. * css3/compositing/svg-isolation-default-expected.html: Added. * css3/compositing/svg-isolation-default.html: Added. * css3/compositing/svg-isolation-isolated-group-expected.html: Added. * css3/compositing/svg-isolation-isolated-group.html: Added. * css3/compositing/svg-isolation-simple-expected.html: Added. * css3/compositing/svg-isolation-simple.html: Added. Canonical link: https://commits.webkit.org/147486@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164795 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2014-02-27 13:15:25 +00:00
</g>
</svg>