[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc
jamesr at google.com
jamesr at google.com
Wed Dec 22 13:49:38 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit 5863c84db34330ccf1fa619bd0b84348aa6d0075
Author: jamesr at google.com <jamesr at google.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Mon Sep 27 23:38:13 2010 +0000
2010-09-27 James Robinson <jamesr at chromium.org>
Reviewed by Simon Fraser.
Repaint test for dynamically changing an SVG element's style attribute
https://bugs.webkit.org/show_bug.cgi?id=46499
* fast/repaint/repaint-svg-after-style-change-expected.checksum: Added.
* fast/repaint/repaint-svg-after-style-change-expected.png: Added.
* fast/repaint/repaint-svg-after-style-change-expected.txt: Added.
* fast/repaint/repaint-svg-after-style-change.html: Added.
2010-09-27 James Robinson <jamesr at chromium.org>
Reviewed by Simon Fraser.
Revert r63307, it broke repainting dynamically changed SVG content
https://bugs.webkit.org/show_bug.cgi?id=46499
This patch reverts r63307 and adds a regression test for what broke.
Test: fast/repaint/repaint-svg-after-style-change.html
* rendering/RenderForeignObject.cpp:
(WebCore::RenderForeignObject::layout):
* rendering/RenderPath.cpp:
(WebCore::RenderPath::layout):
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::layout):
* rendering/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::layout):
* rendering/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::layout):
* rendering/RenderSVGText.cpp:
(WebCore::RenderSVGText::layout):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@68444 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 015e13c..4da2ac9 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,15 @@
+2010-09-27 James Robinson <jamesr at chromium.org>
+
+ Reviewed by Simon Fraser.
+
+ Repaint test for dynamically changing an SVG element's style attribute
+ https://bugs.webkit.org/show_bug.cgi?id=46499
+
+ * fast/repaint/repaint-svg-after-style-change-expected.checksum: Added.
+ * fast/repaint/repaint-svg-after-style-change-expected.png: Added.
+ * fast/repaint/repaint-svg-after-style-change-expected.txt: Added.
+ * fast/repaint/repaint-svg-after-style-change.html: Added.
+
2010-09-27 Martin Robinson <mrobinson at igalia.com>
Unskip a test that just needed a platform-specific baseline and add a baseline for it.
diff --git a/LayoutTests/platform/chromium-mac/fast/media/media-query-invalid-value-expected.checksum b/LayoutTests/fast/repaint/repaint-svg-after-style-change-expected.checksum
similarity index 100%
copy from LayoutTests/platform/chromium-mac/fast/media/media-query-invalid-value-expected.checksum
copy to LayoutTests/fast/repaint/repaint-svg-after-style-change-expected.checksum
diff --git a/LayoutTests/fast/repaint/repaint-svg-after-style-change-expected.png b/LayoutTests/fast/repaint/repaint-svg-after-style-change-expected.png
new file mode 100644
index 0000000..76ae82e
Binary files /dev/null and b/LayoutTests/fast/repaint/repaint-svg-after-style-change-expected.png differ
diff --git a/LayoutTests/fast/repaint/repaint-svg-after-style-change-expected.txt b/LayoutTests/fast/repaint/repaint-svg-after-style-change-expected.txt
new file mode 100644
index 0000000..10e4487
--- /dev/null
+++ b/LayoutTests/fast/repaint/repaint-svg-after-style-change-expected.txt
@@ -0,0 +1,11 @@
+layer at (0,0) size 800x600
+ RenderView at (0,0) size 800x600
+layer at (0,0) size 800x222
+ RenderBlock {HTML} at (0,0) size 800x222
+ RenderBody {BODY} at (8,8) size 784x206
+ RenderSVGRoot {svg} at (8,8) size 200x200
+ RenderSVGContainer {g} at (8,8) size 200x200
+ RenderPath {path} at (8,8) size 200x200 [fill={[type=SOLID] [color=#FF0000]}] [data="M0.00,0.00 L0.00,200.00 L200.00,200.00 L200.00,0.00 Z"]
+ RenderPath {path} at (8,8) size 200x200 [fill={[type=SOLID] [color=#008000]}] [data="M0.00,0.00 L0.00,200.00 L200.00,200.00 L200.00,0.00 Z"]
+ RenderText {#text} at (0,0) size 0x0
+ RenderText {#text} at (0,0) size 0x0
diff --git a/LayoutTests/fast/repaint/repaint-svg-after-style-change.html b/LayoutTests/fast/repaint/repaint-svg-after-style-change.html
new file mode 100644
index 0000000..61fff0f
--- /dev/null
+++ b/LayoutTests/fast/repaint/repaint-svg-after-style-change.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>SVG failing to repaint</title>
+</head>
+<body>
+<svg width="201px" height="201px">
+ <g>
+ <path fill="red" fill-opacity="1" d="M 0 0 L 0 200 200 200 200 0 Z"></path>
+ <path id="blinker" fill="green" fill-opacity="1" d="M 00 00 L 00 200 200 200 200 00 Z" style=""></path>
+ </g>
+</svg>
+</div>
+
+<script type='text/javascript'>
+var blinker = document.getElementById('blinker');
+
+if (window.layoutTestController)
+ window.layoutTestController.waitUntilDone();
+
+window.setTimeout(function () {
+ blinker.style.display = 'none';
+ window.setTimeout(function () {
+ blinker.style.display = '';
+ if (window.layoutTestController)
+ window.layoutTestController.notifyDone();
+ }, 50);
+}, 50);
+
+
+
+</script>
+</body>
+</html>
+
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 28b7ea6..640a185 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,27 @@
+2010-09-27 James Robinson <jamesr at chromium.org>
+
+ Reviewed by Simon Fraser.
+
+ Revert r63307, it broke repainting dynamically changed SVG content
+ https://bugs.webkit.org/show_bug.cgi?id=46499
+
+ This patch reverts r63307 and adds a regression test for what broke.
+
+ Test: fast/repaint/repaint-svg-after-style-change.html
+
+ * rendering/RenderForeignObject.cpp:
+ (WebCore::RenderForeignObject::layout):
+ * rendering/RenderPath.cpp:
+ (WebCore::RenderPath::layout):
+ * rendering/RenderSVGContainer.cpp:
+ (WebCore::RenderSVGContainer::layout):
+ * rendering/RenderSVGImage.cpp:
+ (WebCore::RenderSVGImage::layout):
+ * rendering/RenderSVGRoot.cpp:
+ (WebCore::RenderSVGRoot::layout):
+ * rendering/RenderSVGText.cpp:
+ (WebCore::RenderSVGText::layout):
+
2010-09-27 Vangelis Kokkevis <vangelis at chromium.org>
Reviewed by James Robinson.
diff --git a/WebCore/rendering/RenderForeignObject.cpp b/WebCore/rendering/RenderForeignObject.cpp
index 47c0334..839e963 100644
--- a/WebCore/rendering/RenderForeignObject.cpp
+++ b/WebCore/rendering/RenderForeignObject.cpp
@@ -99,7 +99,7 @@ void RenderForeignObject::layout()
ASSERT(needsLayout());
ASSERT(!view()->layoutStateEnabled()); // RenderSVGRoot disables layoutState for the SVG rendering tree.
- LayoutRepainter repainter(*this, m_everHadLayout && checkForRepaintDuringLayout());
+ LayoutRepainter repainter(*this, checkForRepaintDuringLayout());
SVGForeignObjectElement* foreign = static_cast<SVGForeignObjectElement*>(node());
bool updateCachedBoundariesInParents = false;
diff --git a/WebCore/rendering/RenderPath.cpp b/WebCore/rendering/RenderPath.cpp
index 0f31df1..cbe1900 100644
--- a/WebCore/rendering/RenderPath.cpp
+++ b/WebCore/rendering/RenderPath.cpp
@@ -98,7 +98,7 @@ bool RenderPath::strokeContains(const FloatPoint& point, bool requiresStroke)
void RenderPath::layout()
{
- LayoutRepainter repainter(*this, m_everHadLayout && checkForRepaintDuringLayout());
+ LayoutRepainter repainter(*this, checkForRepaintDuringLayout() && selfNeedsLayout());
SVGStyledTransformableElement* element = static_cast<SVGStyledTransformableElement*>(node());
bool updateCachedBoundariesInParents = false;
diff --git a/WebCore/rendering/RenderSVGContainer.cpp b/WebCore/rendering/RenderSVGContainer.cpp
index 8c99270..b5974ca 100644
--- a/WebCore/rendering/RenderSVGContainer.cpp
+++ b/WebCore/rendering/RenderSVGContainer.cpp
@@ -53,7 +53,7 @@ void RenderSVGContainer::layout()
// Allow RenderSVGViewportContainer to update its viewport.
calcViewport();
- LayoutRepainter repainter(*this, m_everHadLayout && checkForRepaintDuringLayout());
+ LayoutRepainter repainter(*this, checkForRepaintDuringLayout() || selfWillPaint());
// Allow RenderSVGTransformableContainer to update its transform.
bool updatedTransform = calculateLocalTransform();
diff --git a/WebCore/rendering/RenderSVGImage.cpp b/WebCore/rendering/RenderSVGImage.cpp
index 0056fa3..a89a738 100644
--- a/WebCore/rendering/RenderSVGImage.cpp
+++ b/WebCore/rendering/RenderSVGImage.cpp
@@ -62,7 +62,7 @@ void RenderSVGImage::layout()
{
ASSERT(needsLayout());
- LayoutRepainter repainter(*this, m_everHadLayout && checkForRepaintDuringLayout());
+ LayoutRepainter repainter(*this, checkForRepaintDuringLayout());
SVGImageElement* image = static_cast<SVGImageElement*>(node());
bool updateCachedBoundariesInParents = false;
diff --git a/WebCore/rendering/RenderSVGRoot.cpp b/WebCore/rendering/RenderSVGRoot.cpp
index 9c52d8c..82b10d5 100644
--- a/WebCore/rendering/RenderSVGRoot.cpp
+++ b/WebCore/rendering/RenderSVGRoot.cpp
@@ -112,7 +112,7 @@ void RenderSVGRoot::layout()
view()->disableLayoutState();
bool needsLayout = selfNeedsLayout();
- LayoutRepainter repainter(*this, needsLayout && m_everHadLayout && checkForRepaintDuringLayout());
+ LayoutRepainter repainter(*this, checkForRepaintDuringLayout() && needsLayout);
IntSize oldSize(width(), height());
computeLogicalWidth();
diff --git a/WebCore/rendering/RenderSVGText.cpp b/WebCore/rendering/RenderSVGText.cpp
index 804bc98..92091af 100644
--- a/WebCore/rendering/RenderSVGText.cpp
+++ b/WebCore/rendering/RenderSVGText.cpp
@@ -74,7 +74,7 @@ void RenderSVGText::mapLocalToContainer(RenderBoxModelObject* repaintContainer,
void RenderSVGText::layout()
{
ASSERT(needsLayout());
- LayoutRepainter repainter(*this, m_everHadLayout && checkForRepaintDuringLayout());
+ LayoutRepainter repainter(*this, checkForRepaintDuringLayout());
bool updateCachedBoundariesInParents = false;
if (m_needsTransformUpdate) {
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list