Changeset 185461 in webkit
- Timestamp:
- Jun 11, 2015, 11:01:44 AM (10 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 4 edited
-
ChangeLog (modified) (1 diff)
-
platform/ios/LegacyTileCache.h (modified) (3 diffs)
-
platform/ios/LegacyTileCache.mm (modified) (1 diff)
-
platform/ios/LegacyTileLayer.mm (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r185459 r185461 1 2015-06-08 Simon Fraser <simon.fraser@apple.com> 2 3 Missing content in UIWebView snapshots sometimes 4 https://bugs.webkit.org/show_bug.cgi?id=145779 5 rdar://problem/20744708 6 7 Reviewed by Darin Adler. 8 9 When expanding collapsed parts of quoted text on iOS, sometimes the "concertina" 10 images would be blank. This happened because we'd fail to create tiles for regions 11 outside the LegacyTileCache's visibleRect. 12 13 Fix by giving LegacyTileCache an optional override visibleRect, which is set 14 and cleared during -renderInContext: using the context clip rect. 15 16 * platform/ios/LegacyTileCache.h: 17 * platform/ios/LegacyTileCache.mm: 18 (WebCore::LegacyTileCache::visibleRectInLayer): 19 (WebCore::LegacyTileCache::setOverrideVisibleRect): 20 * platform/ios/LegacyTileLayer.mm: 21 (-[LegacyTileHostLayer renderInContext:]): 22 1 23 2015-06-11 Daniel Bates <dabates@apple.com> 2 24 -
trunk/Source/WebCore/platform/ios/LegacyTileCache.h
r183234 r185461 35 35 #include "Timer.h" 36 36 #include <wtf/Noncopyable.h> 37 #include <wtf/Optional.h> 37 38 #include <wtf/PassRefPtr.h> 38 39 #include <wtf/RetainPtr.h> … … 140 141 unsigned tileCapacityForGrid(LegacyTileGrid*); 141 142 Color colorForGridTileBorder(LegacyTileGrid*) const; 143 void setOverrideVisibleRect(Optional<FloatRect>); 142 144 143 145 void doPendingRepaints(); … … 184 186 RetainPtr<LegacyTileCacheTombstone> m_tombstone; 185 187 188 Optional<FloatRect> m_overrideVisibleRect; 189 186 190 TilingMode m_tilingMode; 187 191 TilingDirection m_tilingDirection; -
trunk/Source/WebCore/platform/ios/LegacyTileCache.mm
r185116 r185461 111 111 FloatRect LegacyTileCache::visibleRectInLayer(CALayer *layer) const 112 112 { 113 if (m_overrideVisibleRect) 114 return [layer convertRect:m_overrideVisibleRect.value() fromLayer:hostLayer()]; 115 113 116 return [layer convertRect:[m_window extendedVisibleRect] fromLayer:hostLayer()]; 117 } 118 119 void LegacyTileCache::setOverrideVisibleRect(Optional<FloatRect> rect) 120 { 121 m_overrideVisibleRect = rect; 114 122 } 115 123 -
trunk/Source/WebCore/platform/ios/LegacyTileLayer.mm
r183234 r185461 33 33 #include "WebCoreThread.h" 34 34 35 using namespace WebCore; 36 35 37 @implementation LegacyTileHostLayer 38 36 39 - (id)initWithTileGrid:(WebCore::LegacyTileGrid*)tileGrid 37 40 { … … 55 58 if (pthread_main_np()) 56 59 WebThreadLock(); 60 61 CGRect dirtyRect = CGContextGetClipBoundingBox(context); 62 _tileGrid->tileCache().setOverrideVisibleRect(FloatRect(dirtyRect)); 57 63 _tileGrid->tileCache().doLayoutTiles(); 64 58 65 [super renderInContext:context]; 66 67 _tileGrid->tileCache().setOverrideVisibleRect(Nullopt); 59 68 } 60 69 @end
Note:
See TracChangeset
for help on using the changeset viewer.