Title: [163618] trunk
- Revision
- 163618
- Author
- [email protected]
- Date
- 2014-02-07 02:44:10 -0800 (Fri, 07 Feb 2014)
Log Message
Vector-effect updates require a re-layout
https://bugs.webkit.org/show_bug.cgi?id=127553
Patch by Peter Molnar <[email protected]> on 2014-02-07
Reviewed by Andreas Kling.
As noted in the stale SVGRenderStyle::diff() comment, now that layout() observes vector-effect
we need to trigger a re-layout on attribute changes.
Merged from Blink: https://src.chromium.org/viewvc/blink?revision=152570&view=revision
Source/WebCore:
Tests: svg/custom/non-scaling-stroke-update-expected.svg
svg/custom/non-scaling-stroke-update.svg
* rendering/style/SVGRenderStyle.cpp:
(WebCore::SVGRenderStyle::diff):
LayoutTests:
* svg/custom/non-scaling-stroke-update-expected.svg: Added.
* svg/custom/non-scaling-stroke-update.svg: Added.
Modified Paths
Added Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (163617 => 163618)
--- trunk/LayoutTests/ChangeLog 2014-02-07 10:21:15 UTC (rev 163617)
+++ trunk/LayoutTests/ChangeLog 2014-02-07 10:44:10 UTC (rev 163618)
@@ -1,3 +1,18 @@
+2014-02-07 Peter Molnar <[email protected]>
+
+ Vector-effect updates require a re-layout
+ https://bugs.webkit.org/show_bug.cgi?id=127553
+
+ Reviewed by Andreas Kling.
+
+ As noted in the stale SVGRenderStyle::diff() comment, now that layout() observes vector-effect
+ we need to trigger a re-layout on attribute changes.
+
+ Merged from Blink: https://src.chromium.org/viewvc/blink?revision=152570&view=revision
+
+ * svg/custom/non-scaling-stroke-update-expected.svg: Added.
+ * svg/custom/non-scaling-stroke-update.svg: Added.
+
2014-02-07 ChangSeok Oh <[email protected]>
Unreviewed GTK port gardening
Added: trunk/LayoutTests/svg/custom/non-scaling-stroke-update-expected.svg (0 => 163618)
--- trunk/LayoutTests/svg/custom/non-scaling-stroke-update-expected.svg (rev 0)
+++ trunk/LayoutTests/svg/custom/non-scaling-stroke-update-expected.svg 2014-02-07 10:44:10 UTC (rev 163618)
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" _onload_="runTest()">
+ <g transform="scale(4)">
+ <rect id="rect" x="25" y="25" width="25" height="25" fill="green" stroke-width="1" stroke="black" vector-effect="non-scaling-stroke"/>
+ </g>
+</svg>
Added: trunk/LayoutTests/svg/custom/non-scaling-stroke-update.svg (0 => 163618)
--- trunk/LayoutTests/svg/custom/non-scaling-stroke-update.svg (rev 0)
+++ trunk/LayoutTests/svg/custom/non-scaling-stroke-update.svg 2014-02-07 10:44:10 UTC (rev 163618)
@@ -0,0 +1,24 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!-- Test for crbug.com/250001 -->
+ <g transform="scale(4)">
+ <rect id="clear_rect" width="100%" height="100%"/>
+ <rect id="rect" x="25" y="25" width="25" height="25" fill="green" stroke-width="1" stroke="black"/>
+ </g>
+
+ <script>
+ if (window.testRunner) {
+ testRunner.display();
+ testRunner.waitUntilDone();
+ setTimeout(runTest, 0);
+ } else {
+ setTimeout(runTest, 200);
+ }
+
+ function runTest() {
+document.getElementById('clear_rect').setAttribute('fill', 'white');
+document.getElementById('rect').setAttribute('vector-effect', 'non-scaling-stroke');
+if (window.testRunner)
+ testRunner.notifyDone();
+ }
+ </script>
+</svg>
Modified: trunk/Source/WebCore/ChangeLog (163617 => 163618)
--- trunk/Source/WebCore/ChangeLog 2014-02-07 10:21:15 UTC (rev 163617)
+++ trunk/Source/WebCore/ChangeLog 2014-02-07 10:44:10 UTC (rev 163618)
@@ -1,3 +1,21 @@
+2014-02-07 Peter Molnar <[email protected]>
+
+ Vector-effect updates require a re-layout
+ https://bugs.webkit.org/show_bug.cgi?id=127553
+
+ Reviewed by Andreas Kling.
+
+ As noted in the stale SVGRenderStyle::diff() comment, now that layout() observes vector-effect
+ we need to trigger a re-layout on attribute changes.
+
+ Merged from Blink: https://src.chromium.org/viewvc/blink?revision=152570&view=revision
+
+ Tests: svg/custom/non-scaling-stroke-update-expected.svg
+ svg/custom/non-scaling-stroke-update.svg
+
+ * rendering/style/SVGRenderStyle.cpp:
+ (WebCore::SVGRenderStyle::diff):
+
2014-02-07 Laszlo Vidacs <[email protected]>
Renaming isTableElement() to isRenderedTable() as per the FIXME comment
Modified: trunk/Source/WebCore/rendering/style/SVGRenderStyle.cpp (163617 => 163618)
--- trunk/Source/WebCore/rendering/style/SVGRenderStyle.cpp 2014-02-07 10:21:15 UTC (rev 163617)
+++ trunk/Source/WebCore/rendering/style/SVGRenderStyle.cpp 2014-02-07 10:44:10 UTC (rev 163618)
@@ -202,6 +202,10 @@
return StyleDifferenceRepaint;
}
+ // vector-effect changes require a re-layout.
+ if (svg_noninherited_flags.f._vectorEffect != other->svg_noninherited_flags.f._vectorEffect)
+ return StyleDifferenceLayout;
+
// NOTE: All comparisions below may only return StyleDifferenceRepaint
// Painting related properties only need repaints.
@@ -230,10 +234,6 @@
|| svg_inherited_flags._colorInterpolationFilters != other->svg_inherited_flags._colorInterpolationFilters)
return StyleDifferenceRepaint;
- // FIXME: vector-effect is not taken into account in the layout-phase. Once this is fixed, we should relayout here.
- if (svg_noninherited_flags.f._vectorEffect != other->svg_noninherited_flags.f._vectorEffect)
- return StyleDifferenceRepaint;
-
if (svg_noninherited_flags.f.bufferedRendering != other->svg_noninherited_flags.f.bufferedRendering)
return StyleDifferenceRepaint;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes