Changeset 130573 in webkit
- Timestamp:
- Oct 5, 2012 6:28:05 PM (12 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r130570 r130573 1 2012-10-05 Huang Dongsung <luxtella@company100.net> 2 3 [mac] REGRESSION (r122215): Animated GIF outside the viewport doesn't play when scrolled into view. 4 https://bugs.webkit.org/show_bug.cgi?id=94874 5 6 Reviewed by Simon Fraser. 7 8 Rollback previous patch because this patch caused two problems. 9 1. GIF animation is occasionally paused when tiled scrolling is enabled. 10 2. This change regressed Apple's Membuster benchmark by ~20% (80MB.) 11 12 * loader/cache/CachedImage.cpp: 13 (WebCore::CachedImage::shouldPauseAnimation): 14 * loader/cache/CachedImage.h: 15 (CachedImage): 16 * loader/cache/CachedResource.h: 17 * loader/cache/MemoryCache.cpp: 18 (WebCore::MemoryCache::pruneLiveResourcesToSize): 19 * rendering/RenderObject.cpp: 20 (WebCore::RenderObject::willRenderImage): 21 1 22 2012-10-05 Xianzhu Wang <wangxianzhu@chromium.org> 2 23 -
trunk/Source/WebCore/loader/cache/CachedImage.cpp
r130329 r130573 423 423 } 424 424 425 bool CachedImage::likelyToBeUsedSoon()426 {427 CachedResourceClientWalker<CachedImageClient> walker(m_clients);428 while (CachedImageClient* client = walker.next()) {429 if (client->willRenderImage(this))430 return true;431 }432 433 return false;434 }435 436 425 void CachedImage::didDraw(const Image* image) 437 426 { … … 451 440 return false; 452 441 453 return !likelyToBeUsedSoon(); 442 CachedResourceClientWalker<CachedImageClient> w(m_clients); 443 while (CachedImageClient* c = w.next()) { 444 if (c->willRenderImage(this)) 445 return false; 446 } 447 448 return true; 454 449 } 455 450 -
trunk/Source/WebCore/loader/cache/CachedImage.h
r129462 r130573 73 73 virtual void destroyDecodedData(); 74 74 75 virtual bool likelyToBeUsedSoon();76 77 75 virtual void data(PassRefPtr<SharedBuffer> data, bool allDataReceived); 78 76 virtual void error(CachedResource::Status); -
trunk/Source/WebCore/loader/cache/CachedResource.h
r129462 r130573 216 216 void setOwningCachedResourceLoader(CachedResourceLoader* cachedResourceLoader) { m_owningCachedResourceLoader = cachedResourceLoader; } 217 217 218 // MemoryCache does not destroy the decoded data of a CachedResource if the decoded data will be likely used.219 virtual bool likelyToBeUsedSoon() { return false; }220 221 218 bool isPreloaded() const { return m_preloadCount; } 222 219 void increasePreloadCount() { ++m_preloadCount; } -
trunk/Source/WebCore/loader/cache/MemoryCache.cpp
r130048 r130573 239 239 return; 240 240 241 // Check to see if the current resource are likely to be used again soon.242 if (current->likelyToBeUsedSoon()) {243 current = prev;244 continue;245 }246 247 241 // Destroy our decoded data. This will remove us from 248 242 // m_liveDecodedResources, and possibly move us to a different LRU -
trunk/Source/WebCore/rendering/RenderObject.cpp
r130489 r130573 2807 2807 // If we're not in a window (i.e., we're dormant from being put in the b/f cache or in a background tab) 2808 2808 // then we don't want to render either. 2809 if (document()->inPageCache() || document()->view()->isOffscreen()) 2810 return false; 2811 2812 // If the document is being destroyed or has not been attached, then this 2813 // RenderObject will not be rendered. 2814 if (!view()) 2815 return false; 2816 2817 // If a renderer is outside the viewport, we won't render. 2818 return viewRect().intersects(absoluteClippedOverflowRect()); 2809 return !document()->inPageCache() && !document()->view()->isOffscreen(); 2819 2810 } 2820 2811
Note: See TracChangeset
for help on using the changeset viewer.