[webkit-reviews] review requested: [Bug 51892] [Qt] QtTestBrowser renders only part of page when navigating back : [Attachment 80809] Patch of review

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Feb 1 12:59:35 PST 2011


Aparna Nandyal <aparna.nand at wipro.com> has asked  for review:
Bug 51892: [Qt] QtTestBrowser renders only part of page when navigating back
https://bugs.webkit.org/show_bug.cgi?id=51892

Attachment 80809: Patch of review
https://bugs.webkit.org/attachment.cgi?id=80809&action=review

------- Additional Comments from Aparna Nandyal <aparna.nand at wipro.com>
Analysis:
The bug is caused due to erroneous repaint region calculation. Earlier (before
http://trac.webkit.org/changeset/73385 to fix
https://bugs.webkit.org/show_bug.cgi?id=49220), visibleLayoutOverflow was
returned in RenderBox::clippedOverflowRectForRepaint which was a union of
layoutOverflow and visualOverflow. The layoutOverflow had the greater rect
height as it is intended for scrolling.

If visualOverflow is returned in RenderBox::clippedOverflowRect  the height of
the rect is from 0 to unscrolled visible area height.

When user decides to navigate back to a scrolled page in
FrameView::repaintContentRectangle (const IntRect& r, bool immediate)
{
.........

// The value of r is coming from RenderBox::clippedOverflowRect
InrtRect paintRect = r;

// The paintRect is becoming 0 as there is no common area,
// the height of paintRect represents unscrolled height and height in
// visibleContentRect() represents scrolled area height, hence
// painting is not happening
paintRect.intersect(visibleContentRect());

if (paintRect.isEmpty())
return;
...
}


Additional Info:
Bug also reproducible in arora


More information about the webkit-reviews mailing list