Title: [97079] trunk/Source/WebCore
Revision
97079
Author
simon.fra...@apple.com
Date
2011-10-10 13:05:16 -0700 (Mon, 10 Oct 2011)

Log Message

REGRESSION(96070) 25% intl1 PLT regression from scrollbar invalidation
https://bugs.webkit.org/show_bug.cgi?id=69238

Reviewed by Darin Adler.

Fix PLT regression from additional scrollbars invalidations.

Don't invalidate the scrollbar rect from setHasHorizontalScrollbar()
and setHasVerticalScrollbar(), because this is called during FrameView
teardown, at which point the invalidation is redundant.

Instead, invalidate from ScrollView::updateScrollbars(), which is
called only when scrollbars change because of size or layout
changes.

* platform/ScrollView.cpp:
(WebCore::ScrollView::setHasHorizontalScrollbar):
(WebCore::ScrollView::setHasVerticalScrollbar):
(WebCore::ScrollView::updateScrollbars):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (97078 => 97079)


--- trunk/Source/WebCore/ChangeLog	2011-10-10 19:54:08 UTC (rev 97078)
+++ trunk/Source/WebCore/ChangeLog	2011-10-10 20:05:16 UTC (rev 97079)
@@ -1,3 +1,25 @@
+2011-10-10  Simon Fraser  <simon.fra...@apple.com>
+
+        REGRESSION(96070) 25% intl1 PLT regression from scrollbar invalidation
+        https://bugs.webkit.org/show_bug.cgi?id=69238
+
+        Reviewed by Darin Adler.
+
+        Fix PLT regression from additional scrollbars invalidations.
+        
+        Don't invalidate the scrollbar rect from setHasHorizontalScrollbar()
+        and setHasVerticalScrollbar(), because this is called during FrameView
+        teardown, at which point the invalidation is redundant.
+        
+        Instead, invalidate from ScrollView::updateScrollbars(), which is
+        called only when scrollbars change because of size or layout
+        changes.
+
+        * platform/ScrollView.cpp:
+        (WebCore::ScrollView::setHasHorizontalScrollbar):
+        (WebCore::ScrollView::setHasVerticalScrollbar):
+        (WebCore::ScrollView::updateScrollbars):
+
 2011-10-10  Abhishek Arya  <infe...@chromium.org>
 
         Style for updated due to inability to locate

Modified: trunk/Source/WebCore/platform/ScrollView.cpp (97078 => 97079)


--- trunk/Source/WebCore/platform/ScrollView.cpp	2011-10-10 19:54:08 UTC (rev 97078)
+++ trunk/Source/WebCore/platform/ScrollView.cpp	2011-10-10 20:05:16 UTC (rev 97079)
@@ -95,7 +95,6 @@
         didAddHorizontalScrollbar(m_horizontalScrollbar.get());
         m_horizontalScrollbar->styleChanged();
     } else if (!hasBar && m_horizontalScrollbar) {
-        m_horizontalScrollbar->invalidate();
         willRemoveHorizontalScrollbar(m_horizontalScrollbar.get());
         removeChild(m_horizontalScrollbar.get());
         m_horizontalScrollbar = 0;
@@ -114,7 +113,6 @@
         didAddVerticalScrollbar(m_verticalScrollbar.get());
         m_verticalScrollbar->styleChanged();
     } else if (!hasBar && m_verticalScrollbar) {
-        m_verticalScrollbar->invalidate();
         willRemoveVerticalScrollbar(m_verticalScrollbar.get());
         removeChild(m_verticalScrollbar.get());
         m_verticalScrollbar = 0;
@@ -497,6 +495,8 @@
         if (hasHorizontalScrollbar != newHasHorizontalScrollbar && (hasHorizontalScrollbar || !avoidScrollbarCreation())) {
             if (m_scrollOrigin.y() && !newHasHorizontalScrollbar)
                 m_scrollOrigin.setY(m_scrollOrigin.y() - m_horizontalScrollbar->height());
+            if (m_horizontalScrollbar)
+                m_horizontalScrollbar->invalidate();
             setHasHorizontalScrollbar(newHasHorizontalScrollbar);
             sendContentResizedNotification = true;
         }
@@ -504,6 +504,8 @@
         if (hasVerticalScrollbar != newHasVerticalScrollbar && (hasVerticalScrollbar || !avoidScrollbarCreation())) {
             if (m_scrollOrigin.x() && !newHasVerticalScrollbar)
                 m_scrollOrigin.setX(m_scrollOrigin.x() - m_verticalScrollbar->width());
+            if (m_verticalScrollbar)
+                m_verticalScrollbar->invalidate();
             setHasVerticalScrollbar(newHasVerticalScrollbar);
             sendContentResizedNotification = true;
         }
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to