WebKit Bugzilla
Attachment 343795 Details for
Bug 185797
: [css-masking] Update clip-path box mapping to unified box
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch for landing
bug-185797-20180628072645.patch (text/plain), 27.65 KB, created by
Dirk Schulze
on 2018-06-27 22:26:47 PDT
(
hide
)
Description:
Patch for landing
Filename:
MIME Type:
Creator:
Dirk Schulze
Created:
2018-06-27 22:26:47 PDT
Size:
27.65 KB
patch
obsolete
>Subversion Revision: 233300 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 4a6bfa5b8c9e38a8bfa423c5f580f86c9a030e7e..0b37f869d0e7a3df337eebb43e68893f4fa394bb 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,52 @@ >+2018-05-18 Dirk Schulze <krit@webkit.org> >+ >+ [css-masking] Update clip-path box mapping to unified box >+ https://bugs.webkit.org/show_bug.cgi?id=185797 >+ >+ Reviewed by Simon Fraser. >+ >+ The box mapping for fill-box, stroke-box, view-box on HTML elements >+ and content-box, padding-box, margin-box, border-box for SVG elements >+ was aligned with the transform-box CSS property. >+ >+ Furthermore, the keywords fill changed to fill-box and stroke changed >+ to stroke-box. >+ >+ https://drafts.fxtf.org/css-masking-1/#typedef-geometry-box >+ >+ Update the -webkit-clip-path property. >+ >+ Tests: svg/clip-path/clip-path-shape-border-box-expected.svg >+ svg/clip-path/clip-path-shape-border-box.svg >+ svg/clip-path/clip-path-shape-content-box-expected.svg >+ svg/clip-path/clip-path-shape-content-box.svg >+ svg/clip-path/clip-path-shape-margin-box-expected.svg >+ svg/clip-path/clip-path-shape-margin-box.svg >+ svg/clip-path/clip-path-shape-padding-box-expected.svg >+ svg/clip-path/clip-path-shape-padding-box.svg >+ >+ * css/CSSPrimitiveValueMappings.h: >+ (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): >+ (WebCore::CSSPrimitiveValue::operator CSSBoxType const): >+ * css/CSSValueKeywords.in: >+ * css/StyleBuilderConverter.h: >+ (WebCore::StyleBuilderConverter::convertClipPath): >+ * css/parser/CSSPropertyParser.cpp: >+ (WebCore::consumeBasicShapeOrBox): >+ * rendering/RenderBlock.cpp: >+ (WebCore::RenderBlock::nodeAtPoint): >+ * rendering/RenderLayer.cpp: >+ (WebCore::computeReferenceBox): >+ * rendering/shapes/BoxShape.cpp: >+ (WebCore::computeRoundedRectForBoxShape): >+ * rendering/shapes/ShapeOutsideInfo.cpp: >+ (WebCore::ShapeOutsideInfo::setReferenceBoxLogicalSize): >+ (WebCore::ShapeOutsideInfo::logicalTopOffset const): >+ (WebCore::ShapeOutsideInfo::logicalLeftOffset const): >+ * rendering/style/RenderStyleConstants.h: >+ * rendering/svg/SVGRenderingContext.cpp: >+ (WebCore::SVGRenderingContext::prepareToRenderSVGContent): >+ > 2018-06-27 Timothy Hatcher <timothy@apple.com> > > Don't expose new semantic -apple-system color keywords on iOS. >diff --git a/Source/WebCore/css/CSSPrimitiveValueMappings.h b/Source/WebCore/css/CSSPrimitiveValueMappings.h >index 3688fadf54c10095ddd68656f83ff138e9b6d165..54b4e56172031902c436114ab9b6f3e21392d5ba 100644 >--- a/Source/WebCore/css/CSSPrimitiveValueMappings.h >+++ b/Source/WebCore/css/CSSPrimitiveValueMappings.h >@@ -4918,11 +4918,11 @@ template<> inline CSSPrimitiveValue::CSSPrimitiveValue(CSSBoxType cssBox) > case CSSBoxType::ContentBox: > m_value.valueID = CSSValueContentBox; > break; >- case CSSBoxType::Fill: >- m_value.valueID = CSSValueFill; >+ case CSSBoxType::FillBox: >+ m_value.valueID = CSSValueFillBox; > break; >- case CSSBoxType::Stroke: >- m_value.valueID = CSSValueStroke; >+ case CSSBoxType::StrokeBox: >+ m_value.valueID = CSSValueStrokeBox; > break; > case CSSBoxType::ViewBox: > m_value.valueID = CSSValueViewBox; >@@ -4946,10 +4946,10 @@ template<> inline CSSPrimitiveValue::operator CSSBoxType() const > case CSSValueContentBox: > return CSSBoxType::ContentBox; > // The following are used in an SVG context. >- case CSSValueFill: >- return CSSBoxType::Fill; >- case CSSValueStroke: >- return CSSBoxType::Stroke; >+ case CSSValueFillBox: >+ return CSSBoxType::FillBox; >+ case CSSValueStrokeBox: >+ return CSSBoxType::StrokeBox; > case CSSValueViewBox: > return CSSBoxType::ViewBox; > default: >diff --git a/Source/WebCore/css/CSSValueKeywords.in b/Source/WebCore/css/CSSValueKeywords.in >index 01bdbaed347b911f010bd3ff9c52000b204c80d0..03b5ffa86098309d7fbd4b7a27c669a497e8fc2c 100644 >--- a/Source/WebCore/css/CSSValueKeywords.in >+++ b/Source/WebCore/css/CSSValueKeywords.in >@@ -888,6 +888,7 @@ verso > margin-box > > // clip-path >+stroke-box > view-box > > // >diff --git a/Source/WebCore/css/StyleBuilderConverter.h b/Source/WebCore/css/StyleBuilderConverter.h >index 6667047edba594479c45c288beafaba5b2cbcb6a..2450c5589903c2c76d2ad2be264a2c8e07cab884 100644 >--- a/Source/WebCore/css/StyleBuilderConverter.h >+++ b/Source/WebCore/css/StyleBuilderConverter.h >@@ -545,8 +545,8 @@ inline RefPtr<ClipPathOperation> StyleBuilderConverter::convertClipPath(StyleRes > || primitiveValue.valueID() == CSSValueBorderBox > || primitiveValue.valueID() == CSSValuePaddingBox > || primitiveValue.valueID() == CSSValueMarginBox >- || primitiveValue.valueID() == CSSValueFill >- || primitiveValue.valueID() == CSSValueStroke >+ || primitiveValue.valueID() == CSSValueFillBox >+ || primitiveValue.valueID() == CSSValueStrokeBox > || primitiveValue.valueID() == CSSValueViewBox); > ASSERT(referenceBox == CSSBoxType::BoxMissing); > referenceBox = primitiveValue; >diff --git a/Source/WebCore/css/parser/CSSPropertyParser.cpp b/Source/WebCore/css/parser/CSSPropertyParser.cpp >index 3d1cdd2b0c9a9df02873a3b7b7ebd7b0e4b072d7..e5669643f4c342b8f1a070bf254702b85700be9e 100644 >--- a/Source/WebCore/css/parser/CSSPropertyParser.cpp >+++ b/Source/WebCore/css/parser/CSSPropertyParser.cpp >@@ -2619,7 +2619,7 @@ static RefPtr<CSSValue> consumeBasicShapeOrBox(CSSParserTokenRange& range, const > componentValue = consumeBasicShape(range, context); > shapeFound = true; > } else if (range.peek().type() == IdentToken && !boxFound) { >- componentValue = consumeIdent<CSSValueContentBox, CSSValuePaddingBox, CSSValueBorderBox, CSSValueMarginBox, CSSValueFill, CSSValueStroke, CSSValueViewBox>(range); >+ componentValue = consumeIdent<CSSValueContentBox, CSSValuePaddingBox, CSSValueBorderBox, CSSValueMarginBox, CSSValueFillBox, CSSValueStrokeBox, CSSValueViewBox>(range); > boxFound = true; > } > if (!componentValue) >diff --git a/Source/WebCore/rendering/RenderBlock.cpp b/Source/WebCore/rendering/RenderBlock.cpp >index 62c56cfad0da90928b66cbf9d6dd49a880a44b4e..ef92840a28b75d6277df92b7b6ac99c9133b0115 100644 >--- a/Source/WebCore/rendering/RenderBlock.cpp >+++ b/Source/WebCore/rendering/RenderBlock.cpp >@@ -1998,8 +1998,8 @@ bool RenderBlock::nodeAtPoint(const HitTestRequest& request, HitTestResult& resu > referenceBoxRect = contentBoxRect(); > break; > case CSSBoxType::BoxMissing: >- case CSSBoxType::Fill: >- case CSSBoxType::Stroke: >+ case CSSBoxType::FillBox: >+ case CSSBoxType::StrokeBox: > case CSSBoxType::ViewBox: > referenceBoxRect = borderBoxRect(); > } >diff --git a/Source/WebCore/rendering/RenderLayer.cpp b/Source/WebCore/rendering/RenderLayer.cpp >index 4a55ce6eab9cf707e3dfdf866ec0f56e6f30f9fb..f4fd4ef0034e3201f5b30bd82a52ddc8bdc4da81 100644 >--- a/Source/WebCore/rendering/RenderLayer.cpp >+++ b/Source/WebCore/rendering/RenderLayer.cpp >@@ -4094,6 +4094,7 @@ static inline LayoutRect computeReferenceBox(const RenderObject& renderer, const > const auto& box = downcast<RenderBox>(renderer); > switch (boxType) { > case CSSBoxType::ContentBox: >+ case CSSBoxType::FillBox: > referenceBox = box.contentBoxRect(); > referenceBox.move(offsetFromRoot); > break; >@@ -4104,9 +4105,8 @@ static inline LayoutRect computeReferenceBox(const RenderObject& renderer, const > // FIXME: Support margin-box. Use bounding client rect for now. > // https://bugs.webkit.org/show_bug.cgi?id=127984 > case CSSBoxType::MarginBox: >- // fill, stroke, view-box compute to border-box for HTML elements. >- case CSSBoxType::Fill: >- case CSSBoxType::Stroke: >+ // stroke-box, view-box compute to border-box for HTML elements. >+ case CSSBoxType::StrokeBox: > case CSSBoxType::ViewBox: > case CSSBoxType::BorderBox: > case CSSBoxType::BoxMissing: >diff --git a/Source/WebCore/rendering/shapes/BoxShape.cpp b/Source/WebCore/rendering/shapes/BoxShape.cpp >index b46bbfa137e68e16baac819a055d7f38f2bc7cb7..10cff87a49eda655261748ff1030d7effad6fb15 100644 >--- a/Source/WebCore/rendering/shapes/BoxShape.cpp >+++ b/Source/WebCore/rendering/shapes/BoxShape.cpp >@@ -83,8 +83,8 @@ RoundedRect computeRoundedRectForBoxShape(CSSBoxType box, const RenderBox& rende > renderer.paddingLeft() + renderer.borderLeft(), renderer.paddingRight() + renderer.borderRight()); > // fill, stroke, view-box compute to border-box for HTML elements. > case CSSBoxType::BorderBox: >- case CSSBoxType::Fill: >- case CSSBoxType::Stroke: >+ case CSSBoxType::FillBox: >+ case CSSBoxType::StrokeBox: > case CSSBoxType::ViewBox: > case CSSBoxType::BoxMissing: > return style.getRoundedBorderFor(renderer.borderBoxRect()); >diff --git a/Source/WebCore/rendering/shapes/ShapeOutsideInfo.cpp b/Source/WebCore/rendering/shapes/ShapeOutsideInfo.cpp >index 87437a7c279f3f064d5922d1e13fe7abc5a6e0fe..2866d81373146c163f130a38caae5bc647268ddc 100644 >--- a/Source/WebCore/rendering/shapes/ShapeOutsideInfo.cpp >+++ b/Source/WebCore/rendering/shapes/ShapeOutsideInfo.cpp >@@ -104,8 +104,8 @@ void ShapeOutsideInfo::setReferenceBoxLogicalSize(LayoutSize newReferenceBoxLogi > else > newReferenceBoxLogicalSize.shrink(m_renderer.verticalBorderAndPaddingExtent(), m_renderer.horizontalBorderAndPaddingExtent()); > break; >- case CSSBoxType::Fill: >- case CSSBoxType::Stroke: >+ case CSSBoxType::FillBox: >+ case CSSBoxType::StrokeBox: > case CSSBoxType::ViewBox: > case CSSBoxType::BoxMissing: > ASSERT_NOT_REACHED(); >@@ -232,9 +232,9 @@ LayoutUnit ShapeOutsideInfo::logicalTopOffset() const > return borderBeforeInWritingMode(m_renderer, m_renderer.containingBlock()->style().writingMode()); > case CSSBoxType::ContentBox: > return borderAndPaddingBeforeInWritingMode(m_renderer, m_renderer.containingBlock()->style().writingMode()); >- case CSSBoxType::Fill: >+ case CSSBoxType::FillBox: > break; >- case CSSBoxType::Stroke: >+ case CSSBoxType::StrokeBox: > break; > case CSSBoxType::ViewBox: > break; >@@ -288,9 +288,9 @@ LayoutUnit ShapeOutsideInfo::logicalLeftOffset() const > return borderStartWithStyleForWritingMode(m_renderer, m_renderer.containingBlock()->style()); > case CSSBoxType::ContentBox: > return borderAndPaddingStartWithStyleForWritingMode(m_renderer, m_renderer.containingBlock()->style()); >- case CSSBoxType::Fill: >+ case CSSBoxType::FillBox: > break; >- case CSSBoxType::Stroke: >+ case CSSBoxType::StrokeBox: > break; > case CSSBoxType::ViewBox: > break; >diff --git a/Source/WebCore/rendering/style/RenderStyleConstants.h b/Source/WebCore/rendering/style/RenderStyleConstants.h >index 9f0c413042309b4e1d89e63ad97761f418215fd9..dc99ba28fb262f23f5cbe1b04e4d71bf5fbc0b03 100644 >--- a/Source/WebCore/rendering/style/RenderStyleConstants.h >+++ b/Source/WebCore/rendering/style/RenderStyleConstants.h >@@ -1073,8 +1073,8 @@ enum class CSSBoxType { > BorderBox, > PaddingBox, > ContentBox, >- Fill, >- Stroke, >+ FillBox, >+ StrokeBox, > ViewBox > }; > >diff --git a/Source/WebCore/rendering/svg/SVGRenderingContext.cpp b/Source/WebCore/rendering/svg/SVGRenderingContext.cpp >index e34127bec89ff245c666f167f722cb5187efa39b..764248989d7fa47e20e2dac300b91c2c3e6c7e56 100644 >--- a/Source/WebCore/rendering/svg/SVGRenderingContext.cpp >+++ b/Source/WebCore/rendering/svg/SVGRenderingContext.cpp >@@ -137,7 +137,9 @@ void SVGRenderingContext::prepareToRenderSVGContent(RenderElement& renderer, Pai > if (is<ShapeClipPathOperation>(clipPathOperation)) { > auto& clipPath = downcast<ShapeClipPathOperation>(*clipPathOperation); > FloatRect referenceBox; >- if (clipPath.referenceBox() == CSSBoxType::Stroke) { >+ if (clipPath.referenceBox() == CSSBoxType::StrokeBox || clipPath.referenceBox() == CSSBoxType::MarginBox >+ || clipPath.referenceBox() == CSSBoxType::BorderBox) >+ { > // FIXME: strokeBoundingBox() takes dasharray into account but shouldn't. > referenceBox = renderer.strokeBoundingBox(); > } else if (clipPath.referenceBox() == CSSBoxType::ViewBox && renderer.element()) { >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index 08d9f07e1a46c9cfeb15f31e29a7e4a6ae4339f1..b508ae213abe622752b94b9298455d4f2dfa2e22 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,25 @@ >+2018-05-18 Dirk Schulze <krit@webkit.org> >+ >+ [css-masking] Update clip-path box mapping to unified box >+ https://bugs.webkit.org/show_bug.cgi?id=185797 >+ >+ Reviewed by Simon Fraser. >+ >+ Update existing tests and add new tests to check the slightly different behavior. >+ >+ * fast/masking/parsing-clip-path-shape-expected.txt: >+ * fast/masking/parsing-clip-path-shape.html: >+ * svg/clip-path/clip-path-shape-border-box-expected.svg: Added. >+ * svg/clip-path/clip-path-shape-border-box.svg: Copied from LayoutTests/svg/clip-path/clip-path-shape-stroke.svg. >+ * svg/clip-path/clip-path-shape-content-box-expected.svg: Copied from LayoutTests/svg/clip-path/clip-path-shape-fill.svg. >+ * svg/clip-path/clip-path-shape-content-box.svg: Copied from LayoutTests/svg/clip-path/clip-path-shape-fill.svg. >+ * svg/clip-path/clip-path-shape-fill.svg: >+ * svg/clip-path/clip-path-shape-margin-box-expected.svg: Added. >+ * svg/clip-path/clip-path-shape-margin-box.svg: Copied from LayoutTests/svg/clip-path/clip-path-shape-stroke.svg. >+ * svg/clip-path/clip-path-shape-padding-box-expected.svg: Copied from LayoutTests/svg/clip-path/clip-path-shape-fill.svg. >+ * svg/clip-path/clip-path-shape-padding-box.svg: Copied from LayoutTests/svg/clip-path/clip-path-shape-fill.svg. >+ * svg/clip-path/clip-path-shape-stroke.svg: >+ > 2018-06-27 Ryan Haddad <ryanhaddad@apple.com> > > Mark imported/blink/storage/indexeddb/blob-delete-objectstore-db.html as flaky. >diff --git a/LayoutTests/fast/masking/parsing-clip-path-shape-expected.txt b/LayoutTests/fast/masking/parsing-clip-path-shape-expected.txt >index b844985342e5d7ea9b4ed66e7d1cf639b5b7f4a9..26ea3364696a3c8f4e7d2e6cf59ca19fc39bf1cf 100644 >--- a/LayoutTests/fast/masking/parsing-clip-path-shape-expected.txt >+++ b/LayoutTests/fast/masking/parsing-clip-path-shape-expected.txt >@@ -28,8 +28,8 @@ PASS innerStyle("-webkit-clip-path", "content-box") is "content-box" > PASS innerStyle("-webkit-clip-path", "padding-box") is "padding-box" > PASS innerStyle("-webkit-clip-path", "border-box") is "border-box" > PASS innerStyle("-webkit-clip-path", "margin-box") is "margin-box" >-PASS innerStyle("-webkit-clip-path", "fill") is "fill" >-PASS innerStyle("-webkit-clip-path", "stroke") is "stroke" >+PASS innerStyle("-webkit-clip-path", "fill-box") is "fill-box" >+PASS innerStyle("-webkit-clip-path", "stroke-box") is "stroke-box" > PASS innerStyle("-webkit-clip-path", "view-box") is "view-box" > PASS innerStyle("-webkit-clip-path", "circle(50% at 50% 50%) content-box") is "circle(50% at 50% 50%) content-box" > PASS innerStyle("-webkit-clip-path", "circle(50% at 50% 50%) padding-box") is "circle(50% at 50% 50%) padding-box" >@@ -40,14 +40,14 @@ PASS computedStyle("-webkit-clip-path", "content-box") is "content-box" > PASS computedStyle("-webkit-clip-path", "padding-box") is "padding-box" > PASS computedStyle("-webkit-clip-path", "border-box") is "border-box" > PASS computedStyle("-webkit-clip-path", "margin-box") is "margin-box" >-PASS computedStyle("-webkit-clip-path", "fill") is "fill" >-PASS computedStyle("-webkit-clip-path", "stroke") is "stroke" >+PASS computedStyle("-webkit-clip-path", "fill-box") is "fill-box" >+PASS computedStyle("-webkit-clip-path", "stroke-box") is "stroke-box" > PASS computedStyle("-webkit-clip-path", "view-box") is "view-box" > PASS computedStyle("-webkit-clip-path", "circle(50% at 50% 50%) content-box") is "circle(50% at 50% 50%) content-box" > PASS computedStyle("-webkit-clip-path", "circle(50% at 50% 50%) padding-box") is "circle(50% at 50% 50%) padding-box" > PASS computedStyle("-webkit-clip-path", "margin-box circle(50% at 50% 50%)") is "circle(50% at 50% 50%) margin-box" > PASS computedStyle("-webkit-clip-path", "border-box circle(50% at 50% 50%)") is "circle(50% at 50% 50%) border-box" >-PASS computedStyle("-webkit-clip-path", "circle(50% at 50% 50%) fill") is "circle(50% at 50% 50%) fill" >+PASS computedStyle("-webkit-clip-path", "circle(50% at 50% 50%) fill-box") is "circle(50% at 50% 50%) fill-box" > PASS innerStyle("-webkit-clip-path", "circle(1 at 1px 1px)") is "" > PASS computedStyle("-webkit-clip-path", "circle(1 at 1px 1px)") is "none" > PASS innerStyle("-webkit-clip-path", "circle(px at 1px 1px)") is "" >@@ -66,14 +66,14 @@ PASS innerStyle("-webkit-clip-path", "ellipse(-1em 1em at 1em 1em)") is "" > PASS computedStyle("-webkit-clip-path", "ellipse(-1em 1em at 1em 1em)") is "none" > PASS innerStyle("-webkit-clip-path", "ellipse(1em -1em at 1em 1em)") is "" > PASS computedStyle("-webkit-clip-path", "ellipse(1em -1em at 1em 1em)") is "none" >-PASS innerStyle("-webkit-clip-path", "fill circle(50% at 50% 50%) content-box") is "" >-PASS computedStyle("-webkit-clip-path", "fill circle(50% at 50% 50%) content-box") is "none" >+PASS innerStyle("-webkit-clip-path", "fill-box circle(50% at 50% 50%) content-box") is "" >+PASS computedStyle("-webkit-clip-path", "fill-box circle(50% at 50% 50%) content-box") is "none" > PASS innerStyle("-webkit-clip-path", "margin-box padding-box") is "" > PASS computedStyle("-webkit-clip-path", "margin-box padding-box") is "none" > PASS innerStyle("-webkit-clip-path", "padding-box border-box circle(50% at 50% 50%)") is "" > PASS computedStyle("-webkit-clip-path", "padding-box border-box circle(50% at 50% 50%)") is "none" >-PASS innerStyle("-webkit-clip-path", "circle(50% at 50% 50%) content-box stroke") is "" >-PASS computedStyle("-webkit-clip-path", "circle(50% at 50% 50%) content-box stroke") is "none" >+PASS innerStyle("-webkit-clip-path", "circle(50% at 50% 50%) content-box stroke-box") is "" >+PASS computedStyle("-webkit-clip-path", "circle(50% at 50% 50%) content-box stroke-box") is "none" > PASS innerStyle("-webkit-clip-path", "content-box margin-box padding-box") is "" > PASS computedStyle("-webkit-clip-path", "content-box margin-box padding-box") is "none" > PASS innerStyle("-webkit-clip-path", "none content-box") is "" >diff --git a/LayoutTests/fast/masking/parsing-clip-path-shape.html b/LayoutTests/fast/masking/parsing-clip-path-shape.html >index 632d1b546d04d70344448148e010653d60e2cc10..67021aaae05c3aba2b306acd1d508cf1f40d24b5 100644 >--- a/LayoutTests/fast/masking/parsing-clip-path-shape.html >+++ b/LayoutTests/fast/masking/parsing-clip-path-shape.html >@@ -77,8 +77,8 @@ testInner("-webkit-clip-path", "content-box", "content-box"); > testInner("-webkit-clip-path", "padding-box", "padding-box"); > testInner("-webkit-clip-path", "border-box", "border-box"); > testInner("-webkit-clip-path", "margin-box", "margin-box"); >-testInner("-webkit-clip-path", "fill", "fill"); >-testInner("-webkit-clip-path", "stroke", "stroke"); >+testInner("-webkit-clip-path", "fill-box", "fill-box"); >+testInner("-webkit-clip-path", "stroke-box", "stroke-box"); > testInner("-webkit-clip-path", "view-box", "view-box"); > testInner("-webkit-clip-path", "circle(50% at 50% 50%) content-box", "circle(50% at 50% 50%) content-box"); > testInner("-webkit-clip-path", "circle(50% at 50% 50%) padding-box", "circle(50% at 50% 50%) padding-box"); >@@ -90,14 +90,14 @@ testComputed("-webkit-clip-path", "content-box", "content-box"); > testComputed("-webkit-clip-path", "padding-box", "padding-box"); > testComputed("-webkit-clip-path", "border-box", "border-box"); > testComputed("-webkit-clip-path", "margin-box", "margin-box"); >-testComputed("-webkit-clip-path", "fill", "fill"); >-testComputed("-webkit-clip-path", "stroke", "stroke"); >+testComputed("-webkit-clip-path", "fill-box", "fill-box"); >+testComputed("-webkit-clip-path", "stroke-box", "stroke-box"); > testComputed("-webkit-clip-path", "view-box", "view-box"); > testComputed("-webkit-clip-path", "circle(50% at 50% 50%) content-box", "circle(50% at 50% 50%) content-box"); > testComputed("-webkit-clip-path", "circle(50% at 50% 50%) padding-box", "circle(50% at 50% 50%) padding-box"); > testComputed("-webkit-clip-path", "margin-box circle(50% at 50% 50%)", "circle(50% at 50% 50%) margin-box"); > testComputed("-webkit-clip-path", "border-box circle(50% at 50% 50%)", "circle(50% at 50% 50%) border-box"); >-testComputed("-webkit-clip-path", "circle(50% at 50% 50%) fill", "circle(50% at 50% 50%) fill"); >+testComputed("-webkit-clip-path", "circle(50% at 50% 50%) fill-box", "circle(50% at 50% 50%) fill-box"); > > // reject non-lengths > negativeTest("-webkit-clip-path", "circle(1 at 1px 1px)"); >@@ -113,10 +113,10 @@ negativeTest("-webkit-clip-path", "ellipse(-1em 1em at 1em 1em)"); > negativeTest("-webkit-clip-path", "ellipse(1em -1em at 1em 1em)"); > > // reject multiple <box> values >-negativeTest("-webkit-clip-path", "fill circle(50% at 50% 50%) content-box"); >+negativeTest("-webkit-clip-path", "fill-box circle(50% at 50% 50%) content-box"); > negativeTest("-webkit-clip-path", "margin-box padding-box"); > negativeTest("-webkit-clip-path", "padding-box border-box circle(50% at 50% 50%)"); >-negativeTest("-webkit-clip-path", "circle(50% at 50% 50%) content-box stroke"); >+negativeTest("-webkit-clip-path", "circle(50% at 50% 50%) content-box stroke-box"); > negativeTest("-webkit-clip-path", "content-box margin-box padding-box"); > negativeTest("-webkit-clip-path", "none content-box"); > negativeTest("-webkit-clip-path", "url(#test) padding-box"); >diff --git a/LayoutTests/svg/clip-path/clip-path-shape-border-box-expected.svg b/LayoutTests/svg/clip-path/clip-path-shape-border-box-expected.svg >new file mode 100644 >index 0000000000000000000000000000000000000000..61ce12183b6177b1b01c4652a476caf8cbd9c167 >--- /dev/null >+++ b/LayoutTests/svg/clip-path/clip-path-shape-border-box-expected.svg >@@ -0,0 +1,6 @@ >+<svg xmlns="http://www.w3.org/2000/svg"> >+<clipPath id="clip"> >+ <circle cx="100" cy="100" r="100"/> >+</clipPath> >+<rect x="10" y="10" width="180" height="180" fill="green" stroke="green" stroke-width="20" clip-path="url(#clip)"/> >+</svg> >\ No newline at end of file >diff --git a/LayoutTests/svg/clip-path/clip-path-shape-border-box.svg b/LayoutTests/svg/clip-path/clip-path-shape-border-box.svg >new file mode 100644 >index 0000000000000000000000000000000000000000..98483ff06c7822d563e3b96e5df6329f645417db >--- /dev/null >+++ b/LayoutTests/svg/clip-path/clip-path-shape-border-box.svg >@@ -0,0 +1,3 @@ >+<svg xmlns="http://www.w3.org/2000/svg" width="400" height="400"> >+<rect x="10" y="10" width="180" height="180" fill="green" stroke="green" stroke-width="20" style="-webkit-clip-path: circle() border-box;"/> >+</svg> >\ No newline at end of file >diff --git a/LayoutTests/svg/clip-path/clip-path-shape-content-box-expected.svg b/LayoutTests/svg/clip-path/clip-path-shape-content-box-expected.svg >new file mode 100644 >index 0000000000000000000000000000000000000000..d8781dd971a1b4d2a99885a20d80288e8f2d985b >--- /dev/null >+++ b/LayoutTests/svg/clip-path/clip-path-shape-content-box-expected.svg >@@ -0,0 +1,3 @@ >+<svg xmlns="http://www.w3.org/2000/svg"> >+<rect width="200" height="200" fill="green" stroke="green" stroke-width="10" style="-webkit-clip-path: circle();"/> >+</svg> >\ No newline at end of file >diff --git a/LayoutTests/svg/clip-path/clip-path-shape-content-box.svg b/LayoutTests/svg/clip-path/clip-path-shape-content-box.svg >new file mode 100644 >index 0000000000000000000000000000000000000000..39742379bd2be71f01458708746f7d83be008fe2 >--- /dev/null >+++ b/LayoutTests/svg/clip-path/clip-path-shape-content-box.svg >@@ -0,0 +1,3 @@ >+<svg xmlns="http://www.w3.org/2000/svg"> >+<rect width="200" height="200" fill="green" stroke="green" stroke-width="10" style="-webkit-clip-path: circle() content-box;"/> >+</svg> >\ No newline at end of file >diff --git a/LayoutTests/svg/clip-path/clip-path-shape-fill.svg b/LayoutTests/svg/clip-path/clip-path-shape-fill.svg >index e709dcd660aebbd1b2af72aa447cdf770d8e0e4a..eeff05fe87769be226ffa474b0a298fb2c94465a 100644 >--- a/LayoutTests/svg/clip-path/clip-path-shape-fill.svg >+++ b/LayoutTests/svg/clip-path/clip-path-shape-fill.svg >@@ -1,3 +1,3 @@ > <svg xmlns="http://www.w3.org/2000/svg"> >-<rect width="200" height="200" fill="green" stroke="green" stroke-width="10" style="-webkit-clip-path: circle() fill;"/> >+<rect width="200" height="200" fill="green" stroke="green" stroke-width="10" style="-webkit-clip-path: circle() fill-box;"/> > </svg> >\ No newline at end of file >diff --git a/LayoutTests/svg/clip-path/clip-path-shape-margin-box-expected.svg b/LayoutTests/svg/clip-path/clip-path-shape-margin-box-expected.svg >new file mode 100644 >index 0000000000000000000000000000000000000000..61ce12183b6177b1b01c4652a476caf8cbd9c167 >--- /dev/null >+++ b/LayoutTests/svg/clip-path/clip-path-shape-margin-box-expected.svg >@@ -0,0 +1,6 @@ >+<svg xmlns="http://www.w3.org/2000/svg"> >+<clipPath id="clip"> >+ <circle cx="100" cy="100" r="100"/> >+</clipPath> >+<rect x="10" y="10" width="180" height="180" fill="green" stroke="green" stroke-width="20" clip-path="url(#clip)"/> >+</svg> >\ No newline at end of file >diff --git a/LayoutTests/svg/clip-path/clip-path-shape-margin-box.svg b/LayoutTests/svg/clip-path/clip-path-shape-margin-box.svg >new file mode 100644 >index 0000000000000000000000000000000000000000..b285d90fd24e75840c4dc07e3ea495dcb84c1b81 >--- /dev/null >+++ b/LayoutTests/svg/clip-path/clip-path-shape-margin-box.svg >@@ -0,0 +1,3 @@ >+<svg xmlns="http://www.w3.org/2000/svg" width="400" height="400"> >+<rect x="10" y="10" width="180" height="180" fill="green" stroke="green" stroke-width="20" style="-webkit-clip-path: circle() margin-box;"/> >+</svg> >\ No newline at end of file >diff --git a/LayoutTests/svg/clip-path/clip-path-shape-padding-box-expected.svg b/LayoutTests/svg/clip-path/clip-path-shape-padding-box-expected.svg >new file mode 100644 >index 0000000000000000000000000000000000000000..d8781dd971a1b4d2a99885a20d80288e8f2d985b >--- /dev/null >+++ b/LayoutTests/svg/clip-path/clip-path-shape-padding-box-expected.svg >@@ -0,0 +1,3 @@ >+<svg xmlns="http://www.w3.org/2000/svg"> >+<rect width="200" height="200" fill="green" stroke="green" stroke-width="10" style="-webkit-clip-path: circle();"/> >+</svg> >\ No newline at end of file >diff --git a/LayoutTests/svg/clip-path/clip-path-shape-padding-box.svg b/LayoutTests/svg/clip-path/clip-path-shape-padding-box.svg >new file mode 100644 >index 0000000000000000000000000000000000000000..caa17181057c4a869ee63ae101c3cefc5122f6b4 >--- /dev/null >+++ b/LayoutTests/svg/clip-path/clip-path-shape-padding-box.svg >@@ -0,0 +1,3 @@ >+<svg xmlns="http://www.w3.org/2000/svg"> >+<rect width="200" height="200" fill="green" stroke="green" stroke-width="10" style="-webkit-clip-path: circle() padding-box;"/> >+</svg> >\ No newline at end of file >diff --git a/LayoutTests/svg/clip-path/clip-path-shape-stroke.svg b/LayoutTests/svg/clip-path/clip-path-shape-stroke.svg >index 7dbb9f7167cac1292200f4053a730026882cff76..f4eeadad33cf97f3e1f908102282704ca3ae71ed 100644 >--- a/LayoutTests/svg/clip-path/clip-path-shape-stroke.svg >+++ b/LayoutTests/svg/clip-path/clip-path-shape-stroke.svg >@@ -1,3 +1,3 @@ > <svg xmlns="http://www.w3.org/2000/svg" width="400" height="400"> >-<rect x="10" y="10" width="180" height="180" fill="green" stroke="green" stroke-width="20" style="-webkit-clip-path: circle() stroke;"/> >+<rect x="10" y="10" width="180" height="180" fill="green" stroke="green" stroke-width="20" style="-webkit-clip-path: circle() stroke-box;"/> > </svg> >\ No newline at end of file
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 185797
:
340772
|
343734
| 343795