Summary: | REGRESSION (WK2): Animated GIF stops when navigating forward, back | ||||||
---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Andy Estes <aestes> | ||||
Component: | WebKit2 | Assignee: | Andy Estes <aestes> | ||||
Status: | RESOLVED FIXED | ||||||
Severity: | Normal | CC: | abarth, aestes, eric, webkit.review.bot | ||||
Priority: | P2 | Keywords: | InRadar, Regression | ||||
Version: | 528+ (Nightly build) | ||||||
Hardware: | PC | ||||||
OS: | OS X 10.5 | ||||||
Bug Depends on: | |||||||
Bug Blocks: | 59062 | ||||||
Attachments: |
|
Description
Andy Estes
2011-04-20 17:02:04 PDT
When loading the page from the b/f cache, document()->view()->isOffscreen() returns true in RenderObject::willRenderImage(), so BitmapImage::startAnimation() returns without actually kicking off the animation. In WebKit1, the ScrollView is a platform widget, so ScrollView::isOffscreen() calls [NSWindow isVisible]. In WebKit2, the ScrollView isn't a platform widget so it asks the WebCore Widget whether or not it is visible. It always returns false since setParentVisible(false) was called on the old ScrollView before navigating to a new page, but setParentVisible(true) is never called when restoring it from the back/forward cache. It's sad that I'm fixing a WebKit2-specific bug that'll have to be skipped for now on the WebKit2 bots due to <https://bugs.webkit.org/show_bug.cgi?id=42197> :( Created attachment 90450 [details]
Patch
Comment on attachment 90450 [details]
Patch
r=me
Committed r84443: <http://trac.webkit.org/changeset/84443> http://trac.webkit.org/changeset/84443 might have broken Windows 7 Release (Tests) The following tests are not passing: fast/images/animated-gif-restored-from-bfcache.html |