[SCM] WebKit Debian packaging branch, webkit-1.3, updated. upstream/1.3.7-4207-g178b198
enne at google.com
enne at google.com
Sun Feb 20 23:37:36 UTC 2011
The following commit has been merged in the webkit-1.3 branch:
commit 54952b5b2de1c05a6f661ef8cc4d46c38c9437e2
Author: enne at google.com <enne at google.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Sat Jan 22 10:00:13 2011 +0000
2011-01-22 Adrienne Walker <enne at google.com>
Reviewed by James Robinson.
[chromium] Fix compositor repaints for offscreen fixed elements
https://bugs.webkit.org/show_bug.cgi?id=52681
The fast path scrolling was clipping offscreen invalidations.
Additionally, the compositor was ignoring all invalidations that were
entirely out of the content rect.
Test: compositing/ to verify this caused no regressions.
Tested fix manually in browser as I could not generate a LayoutTest that reproduced the bug in run-webkit-tests.
* page/FrameView.cpp:
(WebCore::FrameView::scrollContentsFastPath):
* platform/graphics/chromium/LayerRendererChromium.cpp:
(WebCore::LayerRendererChromium::invalidateRootLayerRect):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@76437 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index 4c7673e..5c512cd 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,22 @@
+2011-01-22 Adrienne Walker <enne at google.com>
+
+ Reviewed by James Robinson.
+
+ [chromium] Fix compositor repaints for offscreen fixed elements
+ https://bugs.webkit.org/show_bug.cgi?id=52681
+
+ The fast path scrolling was clipping offscreen invalidations.
+ Additionally, the compositor was ignoring all invalidations that were
+ entirely out of the content rect.
+
+ Test: compositing/ to verify this caused no regressions.
+ Tested fix manually in browser as I could not generate a LayoutTest that reproduced the bug in run-webkit-tests.
+
+ * page/FrameView.cpp:
+ (WebCore::FrameView::scrollContentsFastPath):
+ * platform/graphics/chromium/LayerRendererChromium.cpp:
+ (WebCore::LayerRendererChromium::invalidateRootLayerRect):
+
2011-01-22 Alexey Proskuryakov <ap at apple.com>
Reviewed by Dan Bernstein.
diff --git a/Source/WebCore/page/FrameView.cpp b/Source/WebCore/page/FrameView.cpp
index 6cea443..2a66698 100644
--- a/Source/WebCore/page/FrameView.cpp
+++ b/Source/WebCore/page/FrameView.cpp
@@ -1097,8 +1097,8 @@ bool FrameView::scrollContentsFastPath(const IntSize& scrollDelta, const IntRect
continue;
IntRect updateRect = renderBox->layer()->repaintRectIncludingDescendants();
updateRect = contentsToWindow(updateRect);
-
- updateRect.intersect(rectToScroll);
+ if (clipsRepaints())
+ updateRect.intersect(rectToScroll);
if (!updateRect.isEmpty()) {
if (subRectToUpdate.size() >= fixedObjectThreshold) {
updateInvalidatedSubRect = false;
@@ -1120,7 +1120,8 @@ bool FrameView::scrollContentsFastPath(const IntSize& scrollDelta, const IntRect
IntRect scrolledRect = updateRect;
scrolledRect.move(scrollDelta);
updateRect.unite(scrolledRect);
- updateRect.intersect(rectToScroll);
+ if (clipsRepaints())
+ updateRect.intersect(rectToScroll);
hostWindow()->invalidateContentsAndWindow(updateRect, false);
}
return true;
diff --git a/Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp b/Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp
index 90eac74..9b47635 100644
--- a/Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp
+++ b/Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp
@@ -155,8 +155,7 @@ IntRect LayerRendererChromium::horizontalScrollbarRect(const IntRect& visibleRec
void LayerRendererChromium::invalidateRootLayerRect(const IntRect& dirtyRect, const IntRect& visibleRect, const IntRect& contentRect)
{
- if (contentRect.intersects(dirtyRect))
- m_rootLayerTiler->invalidateRect(dirtyRect);
+ m_rootLayerTiler->invalidateRect(dirtyRect);
if (m_horizontalScrollbarTiler) {
IntRect scrollbar = horizontalScrollbarRect(visibleRect, contentRect);
if (dirtyRect.intersects(scrollbar)) {
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list