[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