WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
111124
RelevantRepaintedObjects heuristic should ensure there is some coverage in the bottom half of the relevant view rect
https://bugs.webkit.org/show_bug.cgi?id=111124
Summary
RelevantRepaintedObjects heuristic should ensure there is some coverage in th...
Beth Dakin
Reported
2013-02-28 15:50:16 PST
The RelevantRepaintedObjects heuristic should ensure there is some coverage in the bottom half of the relevant view rect. Making sure we have coverage in both halfs helps to prevent cases where we have a fully loaded menu bar or masthead with no content beneath that. <
rdar://problem/12257164
>
Attachments
Patch
(4.50 KB, patch)
2013-02-28 15:56 PST
,
Beth Dakin
simon.fraser
: review+
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
Beth Dakin
Comment 1
2013-02-28 15:56:32 PST
Created
attachment 190828
[details]
Patch
Tim Horton
Comment 2
2013-02-28 16:00:24 PST
Comment on
attachment 190828
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=190828&action=review
> Source/WebCore/page/Page.cpp:1338 > + // both halfs helps to prevent cases where we have a fully loaded menu bar or masthead with
halves.
Simon Fraser (smfr)
Comment 3
2013-02-28 16:13:09 PST
Comment on
attachment 190828
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=190828&action=review
> Source/WebCore/ChangeLog:12 > + We need two Regions now -- one for the top and another for the bottom. Make sure > + we have at least half of our desired coverage in both.
This seems a bit western-centric. What about languages that might load a strip down one side first?
> Source/WebCore/page/Page.cpp:1348 > + if (topRelevantRect.intersects(snappedPaintRect)) > + m_topRelevantPaintedRegion.unite(snappedPaintRect); > + else > + m_bottomRelevantPaintedRegion.unite(snappedPaintRect);
Do you want to ignore coverage over the bottom rect if the paint rect happens to just touch the top rect?
Beth Dakin
Comment 4
2013-02-28 16:41:10 PST
(In reply to
comment #3
)
> (From update of
attachment 190828
[details]
) > View in context:
https://bugs.webkit.org/attachment.cgi?id=190828&action=review
> > > Source/WebCore/ChangeLog:12 > > + We need two Regions now -- one for the top and another for the bottom. Make sure > > + we have at least half of our desired coverage in both. > > This seems a bit western-centric. What about languages that might load a strip down one side first? >
Hmm, good point. We should drum up some foreign language test cases and see if they would be improved by looking at left/right.
> > Source/WebCore/page/Page.cpp:1348 > > + if (topRelevantRect.intersects(snappedPaintRect)) > > + m_topRelevantPaintedRegion.unite(snappedPaintRect); > > + else > > + m_bottomRelevantPaintedRegion.unite(snappedPaintRect); > > Do you want to ignore coverage over the bottom rect if the paint rect happens to just touch the top rect?
Hmm, good point. I changed this code to be more precise: // If the rect straddles both Regions, split it appropriately. if (topRelevantRect.intersects(snappedPaintRect) && bottomRelevantRect.intersects(snappedPaintRect)) { IntRect topIntersection = snappedPaintRect; topIntersection.intersect(pixelSnappedIntRect(topRelevantRect)); m_topRelevantPaintedRegion.unite(topIntersection); IntRect bottomIntersection = snappedPaintRect; bottomIntersection.intersect(pixelSnappedIntRect(bottomRelevantRect)); m_bottomRelevantPaintedRegion.unite(bottomIntersection); } else if (topRelevantRect.intersects(snappedPaintRect)) m_topRelevantPaintedRegion.unite(snappedPaintRect); else m_bottomRelevantPaintedRegion.unite(snappedPaintRect);
Beth Dakin
Comment 5
2013-02-28 16:44:31 PST
http://trac.webkit.org/changeset/144395
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug