Changeset 113490 in webkit for trunk/Source/WebCore/css/CSSImageSetValue.cpp
- Timestamp:
- Apr 6, 2012, 1:20:19 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/css/CSSImageSetValue.cpp
r111637 r113490 42 42 : CSSValueList(ImageSetClass, CommaSeparator) 43 43 , m_accessedBestFitImage(false) 44 , m_scaleFactor(1) 44 45 { 45 46 } … … 75 76 } 76 77 77 CSSImageSetValue::ImageWithScale CSSImageSetValue::bestImageForScaleFactor( float scaleFactor)78 CSSImageSetValue::ImageWithScale CSSImageSetValue::bestImageForScaleFactor() 78 79 { 79 80 ImageWithScale image; … … 81 82 for (size_t i = 0; i < numberOfImages; ++i) { 82 83 image = m_imagesInSet.at(i); 83 if (image.scaleFactor >= scaleFactor)84 if (image.scaleFactor >= m_scaleFactor) 84 85 return image; 85 86 } … … 89 90 StyleCachedImageSet* CSSImageSetValue::cachedImageSet(CachedResourceLoader* loader) 90 91 { 92 ASSERT(loader); 93 91 94 Document* document = loader->document(); 92 float deviceScaleFactor = 1;93 95 if (Page* page = document->page()) 94 deviceScaleFactor = page->deviceScaleFactor(); 96 m_scaleFactor = page->deviceScaleFactor(); 97 else 98 m_scaleFactor = 1; 95 99 96 100 if (!m_imagesInSet.size()) 97 101 fillImageSet(); 98 102 99 // FIXME: In the future, we want to take much more than deviceScaleFactor into acount here.100 // All forms of scale should be included: Page::pageScaleFactor(), Frame::pageZoomFactor(),101 // and any CSS transforms. https://bugs.webkit.org/show_bug.cgi?id=81698102 return cachedImageSet(loader, bestImageForScaleFactor(deviceScaleFactor));103 }104 105 StyleCachedImageSet* CSSImageSetValue::cachedImageSet(CachedResourceLoader* loader, ImageWithScale image)106 {107 ASSERT(loader);108 109 103 if (!m_accessedBestFitImage) { 104 // FIXME: In the future, we want to take much more than deviceScaleFactor into acount here. 105 // All forms of scale should be included: Page::pageScaleFactor(), Frame::pageZoomFactor(), 106 // and any CSS transforms. https://bugs.webkit.org/show_bug.cgi?id=81698 107 ImageWithScale image = bestImageForScaleFactor(); 110 108 ResourceRequest request(loader->document()->completeURL(image.imageURL)); 111 109 if (CachedImage* cachedImage = loader->requestImage(request)) { … … 118 116 } 119 117 120 StyleImage* CSSImageSetValue::cachedOrPendingImageSet( )118 StyleImage* CSSImageSetValue::cachedOrPendingImageSet(Document* document) 121 119 { 122 120 if (!m_imageSet) 123 121 m_imageSet = StylePendingImage::create(this); 122 else if (document && !m_imageSet->isPendingImage()) { 123 float deviceScaleFactor = 1; 124 if (Page* page = document->page()) 125 deviceScaleFactor = page->deviceScaleFactor(); 126 127 // If the deviceScaleFactor has changed, we may not have the best image loaded, so we have to re-assess. 128 if (deviceScaleFactor != m_scaleFactor) { 129 m_accessedBestFitImage = false; 130 m_imageSet = StylePendingImage::create(this); 131 } 132 } 124 133 125 134 return m_imageSet.get();
Note:
See TracChangeset
for help on using the changeset viewer.