mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 08:57:34 +00:00
LibWeb: Fix parsing bug for SVG attributes
This doesn't seem to actually have fixed any bugs, as having FillOpacity instead of StrokeOpacity in the call to parse_css_value doesn't seem to have actually been causing bugs. But, I still think it's worthwhile correcting. The reason that it wasn't causing bugs is that having FillOpacity instead of StrokeOpacity in the call to parse_css_value means that when parsing the value is compared to the acceptable values for that property (for example the value can only be a percentage, or a number, etc.). In this case both FillOpacity and StrokeOpacity seem to accept the same values.
This commit is contained in:
parent
f2047a5c32
commit
70919dbed7
3 changed files with 30 additions and 3 deletions
|
@ -0,0 +1,16 @@
|
|||
Viewport <#document> at (0,0) content-size 800x600 children: not-inline
|
||||
BlockContainer <html> at (0,0) content-size 800x800 [BFC] children: not-inline
|
||||
BlockContainer <body> at (8,8) content-size 784x784 children: inline
|
||||
line 0 width: 784, height: 784, bottom: 784, baseline: 784
|
||||
frag 0 from SVGSVGBox start: 0, length: 0, rect: [8,8 784x784]
|
||||
SVGSVGBox <svg> at (8,8) content-size 784x784 [SVG] children: inline
|
||||
TextNode <#text>
|
||||
SVGGeometryBox <circle> at (47.203125,47.203125) content-size 548.796875x548.796875 children: not-inline
|
||||
TextNode <#text>
|
||||
TextNode <#text>
|
||||
|
||||
PaintableWithLines (Viewport<#document>) [0,0 800x600] overflow: [0,0 800x800]
|
||||
PaintableWithLines (BlockContainer<HTML>) [0,0 800x800]
|
||||
PaintableWithLines (BlockContainer<BODY>) [8,8 784x784]
|
||||
SVGSVGPaintable (SVGSVGBox<svg>) [8,8 784x784]
|
||||
SVGGeometryPaintable (SVGGeometryBox<circle>) [47.203125,47.203125 548.796875x548.796875]
|
|
@ -0,0 +1,11 @@
|
|||
<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
|
||||
<circle
|
||||
cx="40"
|
||||
cy="40"
|
||||
r="25"
|
||||
stroke-opacity="50%"
|
||||
fill-opacity="20%"
|
||||
stroke="green"
|
||||
opacity="90%"
|
||||
stroke-width="20" />
|
||||
</svg>
|
After Width: | Height: | Size: 225 B |
|
@ -141,11 +141,11 @@ void SVGGraphicsElement::apply_presentational_hints(CSS::StyleProperties& style)
|
|||
if (auto fill_opacity_value = parse_css_value(parsing_context, value, CSS::PropertyID::FillOpacity).release_value_but_fixme_should_propagate_errors())
|
||||
style.set_property(CSS::PropertyID::FillOpacity, fill_opacity_value.release_nonnull());
|
||||
} else if (name.equals_ignoring_ascii_case("stroke-opacity"sv)) {
|
||||
if (auto stroke_opacity_value = parse_css_value(parsing_context, value, CSS::PropertyID::FillOpacity).release_value_but_fixme_should_propagate_errors())
|
||||
if (auto stroke_opacity_value = parse_css_value(parsing_context, value, CSS::PropertyID::StrokeOpacity).release_value_but_fixme_should_propagate_errors())
|
||||
style.set_property(CSS::PropertyID::StrokeOpacity, stroke_opacity_value.release_nonnull());
|
||||
} else if (name.equals_ignoring_ascii_case(SVG::AttributeNames::opacity)) {
|
||||
if (auto stroke_opacity_value = parse_css_value(parsing_context, value, CSS::PropertyID::Opacity).release_value_but_fixme_should_propagate_errors())
|
||||
style.set_property(CSS::PropertyID::Opacity, stroke_opacity_value.release_nonnull());
|
||||
if (auto opacity_value = parse_css_value(parsing_context, value, CSS::PropertyID::Opacity).release_value_but_fixme_should_propagate_errors())
|
||||
style.set_property(CSS::PropertyID::Opacity, opacity_value.release_nonnull());
|
||||
} else if (name.equals_ignoring_ascii_case("text-anchor"sv)) {
|
||||
if (auto text_anchor_value = parse_css_value(parsing_context, value, CSS::PropertyID::TextAnchor).release_value_but_fixme_should_propagate_errors())
|
||||
style.set_property(CSS::PropertyID::TextAnchor, text_anchor_value.release_nonnull());
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue