PassRefPtr<StyleImage> StyleResourceLoader::loadPendingImage(StylePendingImage* pendingImage, float deviceScaleFactor) { if (pendingImage->cssImageValue()) { CSSImageValue* imageValue = pendingImage->cssImageValue(); return imageValue->cachedImage(m_fetcher); } if (pendingImage->cssImageGeneratorValue()) { CSSImageGeneratorValue* imageGeneratorValue = pendingImage->cssImageGeneratorValue(); imageGeneratorValue->loadSubimages(m_fetcher); return StyleGeneratedImage::create(imageGeneratorValue); } if (pendingImage->cssCursorImageValue()) { CSSCursorImageValue* cursorImageValue = pendingImage->cssCursorImageValue(); return cursorImageValue->cachedImage(m_fetcher, deviceScaleFactor); } if (pendingImage->cssImageSetValue()) { CSSImageSetValue* imageSetValue = pendingImage->cssImageSetValue(); return imageSetValue->cachedImageSet(m_fetcher, deviceScaleFactor); } return 0; }
PassRefPtrWillBeRawPtr<StyleImage> ElementStyleResources::cachedOrPendingFromValue(CSSPropertyID property, const CSSImageValue& value) { if (value.isCachePending()) { m_pendingImageProperties.add(property); return StylePendingImage::create(value); } value.restoreCachedResourceIfNeeded(*m_document); return value.cachedImage(); }
void StyleResourceLoader::loadPendingShapeImage(RenderStyle* renderStyle, ShapeValue* shapeValue) { if (!shapeValue) return; StyleImage* image = shapeValue->image(); if (!image || !image->isPendingImage()) return; StylePendingImage* pendingImage = static_cast<StylePendingImage*>(image); CSSImageValue* cssImageValue = pendingImage->cssImageValue(); ResourceLoaderOptions options = ResourceFetcher::defaultResourceOptions(); options.requestOriginPolicy = RestrictToSameOrigin; shapeValue->setImage(cssImageValue->cachedImage(m_fetcher, options)); }
void StyleResourceLoader::loadPendingShapeImage(RenderStyle* renderStyle, ShapeValue* shapeValue) { if (!shapeValue) return; StyleImage* image = shapeValue->image(); if (!image || !image->isPendingImage()) return; StylePendingImage* pendingImage = static_cast<StylePendingImage*>(image); CSSImageValue* cssImageValue = pendingImage->cssImageValue(); ResourceLoaderOptions options = ResourceFetcher::defaultResourceOptions(); options.requestOriginPolicy = PotentiallyCrossOriginEnabled; options.allowCredentials = DoNotAllowStoredCredentials; shapeValue->setImage(cssImageValue->cachedImage(m_fetcher, options)); }