Chromium Code Reviews
DescriptionFix three causes of blank thumbnails [2nd land]
All three of these fixes are required to address the devil case
http://crbug.com/659459, and some of them also help with some of the
other flickers.
1. In onPageLoadStarted, the URL can be the same as before, in
particular because history-item scroll offset restores count as load
starts. These history restores often fire late in page load, *after*
the thumbnail was taken, leading to immediately throwing out the
thumbnail we just took earlier in page load. Switch to the "invalidate"
path which only ejects the thumbnail if the URL changed.
2. In CacheTab, which is often called just to refresh the thumbnail with
the latest state, if readback is currently impossible, we used to remove
the old thumbnail. Keep it instead.
3. Switch to the more reliable Surfaces-based mechanism for readback.
The layer-based mechanism often outputs black screenshots in difficult
racy cases like onStop readbacks. The Surface-based mechanism had been
reverted because it tickles a driver bug on Nexus 7 2013 that itself causes
some flickers, but I verified that the repro scenario for that is quite
niche, and even on Nexus 7 it's probably less severe than the black
screenshot problem this fixes.
TBR=tedchoc@chromium.org
BUG=636630, 640561, 659459, 646336
Committed: https://crrev.com/d9c930e47745312f5cc8a5b9d4e6802c18f8b5de
Cr-Commit-Position: refs/heads/master@{#432411}
Patch Set 1 #Patch Set 2 : Unapply conflict resolution since http://crrev.com/432312 got reverted #
Messages
Total messages: 15 (10 generated)
|
|||||||||||||||||||||||||||||||||||||