[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

zimmermann at webkit.org zimmermann at webkit.org
Wed Dec 22 11:10:27 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 20b87033a2f84a7b1efae924bcfc2fe5db40abdc
Author: zimmermann at webkit.org <zimmermann at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Jul 14 10:41:55 2010 +0000

    2010-07-14  Nikolas Zimmermann  <nzimmermann at rim.com>
    
            Reviewed by Dirk Schulze.
    
            Inconsistent LayoutRepainter usage in the SVG renderers
            https://bugs.webkit.org/show_bug.cgi?id=42245
    
            Unify LayoutRepainter usage in the SVG renders, as RenderBlock does it, always use:
            LayoutRepainter repainter(*this, m_everHadLayout && checkForRepaintDuringLayout());
            instead of including selfWillPaint / selfNeedsLayout checks. This improves layout test
            performance by 8s on my machine with a debug build (from 76.72s -> 68.59s, averaged over 5 runs)
    
            * 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-07-14  Nikolas Zimmermann  <nzimmermann at rim.com>
    
            Reviewed by Dirk Schulze.
    
            Inconsistent LayoutRepainter usage in the SVG renderers
            https://bugs.webkit.org/show_bug.cgi?id=42245
    
            Update pixel test baseline, which shows a marignal difference, due the repaint changes.
    
            * platform/mac/svg/transforms/animated-path-inside-transformed-html-expected.checksum:
            * platform/mac/svg/transforms/animated-path-inside-transformed-html-expected.png:
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@63307 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 647474a..cd3ca4d 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,15 @@
+2010-07-14  Nikolas Zimmermann  <nzimmermann at rim.com>
+
+        Reviewed by Dirk Schulze.
+
+        Inconsistent LayoutRepainter usage in the SVG renderers
+        https://bugs.webkit.org/show_bug.cgi?id=42245
+
+        Update pixel test baseline, which shows a marignal difference, due the repaint changes.
+
+        * platform/mac/svg/transforms/animated-path-inside-transformed-html-expected.checksum:
+        * platform/mac/svg/transforms/animated-path-inside-transformed-html-expected.png:
+
 2010-07-14  Pavel Podivilov  <podivilov at chromium.org>
 
         Reviewed by Yury Semikhatsky.
diff --git a/LayoutTests/platform/mac/svg/transforms/animated-path-inside-transformed-html-expected.checksum b/LayoutTests/platform/mac/svg/transforms/animated-path-inside-transformed-html-expected.checksum
index 634c5b2..91317fd 100644
--- a/LayoutTests/platform/mac/svg/transforms/animated-path-inside-transformed-html-expected.checksum
+++ b/LayoutTests/platform/mac/svg/transforms/animated-path-inside-transformed-html-expected.checksum
@@ -1 +1 @@
-9da758abdb3e67ecd1310cd275ddc5b2
\ No newline at end of file
+690e5944a9a601c1272f84647b19badd
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/transforms/animated-path-inside-transformed-html-expected.png b/LayoutTests/platform/mac/svg/transforms/animated-path-inside-transformed-html-expected.png
index 659a460..cc235cd 100644
Binary files a/LayoutTests/platform/mac/svg/transforms/animated-path-inside-transformed-html-expected.png and b/LayoutTests/platform/mac/svg/transforms/animated-path-inside-transformed-html-expected.png differ
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index c303083..3cba5c8 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,28 @@
+2010-07-14  Nikolas Zimmermann  <nzimmermann at rim.com>
+
+        Reviewed by Dirk Schulze.
+
+        Inconsistent LayoutRepainter usage in the SVG renderers
+        https://bugs.webkit.org/show_bug.cgi?id=42245
+
+        Unify LayoutRepainter usage in the SVG renders, as RenderBlock does it, always use:
+        LayoutRepainter repainter(*this, m_everHadLayout && checkForRepaintDuringLayout());
+        instead of including selfWillPaint / selfNeedsLayout checks. This improves layout test
+        performance by 8s on my machine with a debug build (from 76.72s -> 68.59s, averaged over 5 runs)
+
+        * 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-07-14  Kent Tamura  <tkent at chromium.org>
 
         Unreviewed, build fix for r63300.
diff --git a/WebCore/rendering/RenderForeignObject.cpp b/WebCore/rendering/RenderForeignObject.cpp
index 4b94bab..5a1d972 100644
--- a/WebCore/rendering/RenderForeignObject.cpp
+++ b/WebCore/rendering/RenderForeignObject.cpp
@@ -98,7 +98,7 @@ void RenderForeignObject::layout()
     ASSERT(needsLayout());
     ASSERT(!view()->layoutStateEnabled()); // RenderSVGRoot disables layoutState for the SVG rendering tree.
 
-    LayoutRepainter repainter(*this, checkForRepaintDuringLayout());
+    LayoutRepainter repainter(*this, m_everHadLayout && checkForRepaintDuringLayout());
     SVGForeignObjectElement* foreign = static_cast<SVGForeignObjectElement*>(node());
 
     if (m_needsTransformUpdate) {
diff --git a/WebCore/rendering/RenderPath.cpp b/WebCore/rendering/RenderPath.cpp
index 27d480d..760c7aa 100644
--- a/WebCore/rendering/RenderPath.cpp
+++ b/WebCore/rendering/RenderPath.cpp
@@ -97,7 +97,7 @@ bool RenderPath::strokeContains(const FloatPoint& point, bool requiresStroke) co
 
 void RenderPath::layout()
 {
-    LayoutRepainter repainter(*this, checkForRepaintDuringLayout() && selfNeedsLayout());
+    LayoutRepainter repainter(*this, m_everHadLayout && checkForRepaintDuringLayout());
     SVGStyledTransformableElement* element = static_cast<SVGStyledTransformableElement*>(node());
 
     bool needsPathUpdate = m_needsPathUpdate;
diff --git a/WebCore/rendering/RenderSVGContainer.cpp b/WebCore/rendering/RenderSVGContainer.cpp
index d4ca69f..f84a835 100644
--- a/WebCore/rendering/RenderSVGContainer.cpp
+++ b/WebCore/rendering/RenderSVGContainer.cpp
@@ -50,7 +50,7 @@ void RenderSVGContainer::layout()
     // Allow RenderSVGViewportContainer to update its viewport.
     calcViewport();
 
-    LayoutRepainter repainter(*this, checkForRepaintDuringLayout() || selfWillPaint());
+    LayoutRepainter repainter(*this, m_everHadLayout && checkForRepaintDuringLayout());
 
     // Allow RenderSVGTransformableContainer to update its transform.
     calculateLocalTransform();
diff --git a/WebCore/rendering/RenderSVGImage.cpp b/WebCore/rendering/RenderSVGImage.cpp
index a4572e6..a6fe6f6 100644
--- a/WebCore/rendering/RenderSVGImage.cpp
+++ b/WebCore/rendering/RenderSVGImage.cpp
@@ -52,7 +52,7 @@ void RenderSVGImage::layout()
 {
     ASSERT(needsLayout());
 
-    LayoutRepainter repainter(*this, checkForRepaintDuringLayout());
+    LayoutRepainter repainter(*this, m_everHadLayout && checkForRepaintDuringLayout());
     SVGImageElement* image = static_cast<SVGImageElement*>(node());
 
     if (m_needsTransformUpdate) {
diff --git a/WebCore/rendering/RenderSVGRoot.cpp b/WebCore/rendering/RenderSVGRoot.cpp
index 9d9d901..a121aa1 100644
--- a/WebCore/rendering/RenderSVGRoot.cpp
+++ b/WebCore/rendering/RenderSVGRoot.cpp
@@ -108,8 +108,7 @@ void RenderSVGRoot::layout()
     // Arbitrary affine transforms are incompatible with LayoutState.
     view()->disableLayoutState();
 
-    bool needsLayout = selfNeedsLayout();
-    LayoutRepainter repainter(*this, checkForRepaintDuringLayout() && needsLayout);
+    LayoutRepainter repainter(*this, m_everHadLayout && checkForRepaintDuringLayout());
 
     IntSize oldSize(width(), height());
     calcWidth();
@@ -119,7 +118,7 @@ void RenderSVGRoot::layout()
     SVGSVGElement* svg = static_cast<SVGSVGElement*>(node());
     m_isLayoutSizeChanged = svg->hasRelativeLengths() && oldSize != size();
 
-    SVGRenderSupport::layoutChildren(this, needsLayout);
+    SVGRenderSupport::layoutChildren(this, selfNeedsLayout());
     m_isLayoutSizeChanged = false;
 
     repainter.repaintAfterLayout();
diff --git a/WebCore/rendering/RenderSVGText.cpp b/WebCore/rendering/RenderSVGText.cpp
index 12f3cb5..5d2b6b3 100644
--- a/WebCore/rendering/RenderSVGText.cpp
+++ b/WebCore/rendering/RenderSVGText.cpp
@@ -73,7 +73,7 @@ void RenderSVGText::mapLocalToContainer(RenderBoxModelObject* repaintContainer,
 void RenderSVGText::layout()
 {
     ASSERT(needsLayout());
-    LayoutRepainter repainter(*this, checkForRepaintDuringLayout());
+    LayoutRepainter repainter(*this, m_everHadLayout && checkForRepaintDuringLayout());
 
     if (m_needsTransformUpdate) {
         SVGTextElement* text = static_cast<SVGTextElement*>(node());

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list