Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
StyleResolver::loadPendingImage() should take a reference to StylePen…
…dingImage

<http://webkit.org/b/129021>

Reviewed by Brent Fulgham.

* css/StyleResolver.cpp:
(WebCore::StyleResolver::loadPendingImage): Change pendingImage
parameter to a reference.
(WebCore::StyleResolver::loadPendingShapeImage): Update to use
references.
(WebCore::StyleResolver::loadPendingImages): Ditto.
* css/StyleResolver.h:
(WebCore::StyleResolver::loadPendingImage): Change pendingImage
parameter to a reference.

Canonical link: https://commits.webkit.org/147197@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164489 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  • Loading branch information
ddkilzer committed Feb 21, 2014
1 parent f7b095e commit acd8be3
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 26 deletions.
17 changes: 17 additions & 0 deletions Source/WebCore/ChangeLog
@@ -1,3 +1,20 @@
2014-02-21 David Kilzer <ddkilzer@apple.com>

StyleResolver::loadPendingImage() should take a reference to StylePendingImage
<http://webkit.org/b/129021>

Reviewed by Brent Fulgham.

* css/StyleResolver.cpp:
(WebCore::StyleResolver::loadPendingImage): Change pendingImage
parameter to a reference.
(WebCore::StyleResolver::loadPendingShapeImage): Update to use
references.
(WebCore::StyleResolver::loadPendingImages): Ditto.
* css/StyleResolver.h:
(WebCore::StyleResolver::loadPendingImage): Change pendingImage
parameter to a reference.

2014-02-21 Joseph Pecoraro <pecoraro@apple.com>

Web Inspector: JSContext inspection should report exceptions in the console
Expand Down
53 changes: 29 additions & 24 deletions Source/WebCore/css/StyleResolver.cpp
Expand Up @@ -3482,28 +3482,28 @@ bool StyleResolver::createFilterOperations(CSSValue* inValue, FilterOperations&

#endif

PassRefPtr<StyleImage> StyleResolver::loadPendingImage(StylePendingImage* pendingImage, const ResourceLoaderOptions& options)
PassRefPtr<StyleImage> StyleResolver::loadPendingImage(const StylePendingImage& pendingImage, const ResourceLoaderOptions& options)
{
if (auto imageValue = pendingImage->cssImageValue())
if (auto imageValue = pendingImage.cssImageValue())
return imageValue->cachedImage(m_state.document().cachedResourceLoader(), options);

if (auto imageGeneratorValue = pendingImage->cssImageGeneratorValue()) {
if (auto imageGeneratorValue = pendingImage.cssImageGeneratorValue()) {
imageGeneratorValue->loadSubimages(m_state.document().cachedResourceLoader());
return StyleGeneratedImage::create(*imageGeneratorValue);
}

if (auto cursorImageValue = pendingImage->cssCursorImageValue())
if (auto cursorImageValue = pendingImage.cssCursorImageValue())
return cursorImageValue->cachedImage(m_state.document().cachedResourceLoader());

#if ENABLE(CSS_IMAGE_SET)
if (CSSImageSetValue* imageSetValue = pendingImage->cssImageSetValue())
if (auto imageSetValue = pendingImage.cssImageSetValue())
return imageSetValue->cachedImageSet(m_state.document().cachedResourceLoader(), options);
#endif

return nullptr;
}

PassRefPtr<StyleImage> StyleResolver::loadPendingImage(StylePendingImage* pendingImage)
PassRefPtr<StyleImage> StyleResolver::loadPendingImage(const StylePendingImage& pendingImage)
{
return loadPendingImage(pendingImage, CachedResourceLoader::defaultCachedResourceOptions());
}
Expand All @@ -3518,7 +3518,7 @@ void StyleResolver::loadPendingShapeImage(ShapeValue* shapeValue)
if (!image || !image->isPendingImage())
return;

StylePendingImage* pendingImage = toStylePendingImage(image);
auto& pendingImage = toStylePendingImage(*image);

ResourceLoaderOptions options = CachedResourceLoader::defaultCachedResourceOptions();
options.requestOriginPolicy = PotentiallyCrossOriginEnabled;
Expand All @@ -3540,8 +3540,9 @@ void StyleResolver::loadPendingImages()
switch (currentProperty) {
case CSSPropertyBackgroundImage: {
for (FillLayer* backgroundLayer = m_state.style()->accessBackgroundLayers(); backgroundLayer; backgroundLayer = backgroundLayer->next()) {
if (backgroundLayer->image() && backgroundLayer->image()->isPendingImage())
backgroundLayer->setImage(loadPendingImage(toStylePendingImage(backgroundLayer->image())));
auto styleImage = backgroundLayer->image();
if (styleImage && styleImage->isPendingImage())
backgroundLayer->setImage(loadPendingImage(toStylePendingImage(*styleImage)));
}
break;
}
Expand All @@ -3550,7 +3551,7 @@ void StyleResolver::loadPendingImages()
if (contentData->isImage()) {
auto& styleImage = toImageContentData(contentData)->image();
if (styleImage.isPendingImage()) {
RefPtr<StyleImage> loadedImage = loadPendingImage(toStylePendingImage(const_cast<StyleImage*>(&styleImage)));
RefPtr<StyleImage> loadedImage = loadPendingImage(toStylePendingImage(styleImage));
if (loadedImage)
toImageContentData(contentData)->setImage(loadedImage.release());
}
Expand All @@ -3562,43 +3563,47 @@ void StyleResolver::loadPendingImages()
if (CursorList* cursorList = m_state.style()->cursors()) {
for (size_t i = 0; i < cursorList->size(); ++i) {
CursorData& currentCursor = cursorList->at(i);
if (StyleImage* image = currentCursor.image()) {
if (image->isPendingImage())
currentCursor.setImage(loadPendingImage(toStylePendingImage(image)));
}
auto styleImage = currentCursor.image();
if (styleImage && styleImage->isPendingImage())
currentCursor.setImage(loadPendingImage(toStylePendingImage(*styleImage)));
}
}
break;
}
case CSSPropertyListStyleImage: {
if (m_state.style()->listStyleImage() && m_state.style()->listStyleImage()->isPendingImage())
m_state.style()->setListStyleImage(loadPendingImage(toStylePendingImage(m_state.style()->listStyleImage())));
auto styleImage = m_state.style()->listStyleImage();
if (styleImage && styleImage->isPendingImage())
m_state.style()->setListStyleImage(loadPendingImage(toStylePendingImage(*styleImage)));
break;
}
case CSSPropertyBorderImageSource: {
if (m_state.style()->borderImageSource() && m_state.style()->borderImageSource()->isPendingImage())
m_state.style()->setBorderImageSource(loadPendingImage(toStylePendingImage(m_state.style()->borderImageSource())));
auto styleImage = m_state.style()->borderImageSource();
if (styleImage && styleImage->isPendingImage())
m_state.style()->setBorderImageSource(loadPendingImage(toStylePendingImage(*styleImage)));
break;
}
case CSSPropertyWebkitBoxReflect: {
if (StyleReflection* reflection = m_state.style()->boxReflect()) {
const NinePieceImage& maskImage = reflection->mask();
if (maskImage.image() && maskImage.image()->isPendingImage()) {
RefPtr<StyleImage> loadedImage = loadPendingImage(toStylePendingImage(maskImage.image()));
auto styleImage = maskImage.image();
if (styleImage && styleImage->isPendingImage()) {
RefPtr<StyleImage> loadedImage = loadPendingImage(toStylePendingImage(*styleImage));
reflection->setMask(NinePieceImage(loadedImage.release(), maskImage.imageSlices(), maskImage.fill(), maskImage.borderSlices(), maskImage.outset(), maskImage.horizontalRule(), maskImage.verticalRule()));
}
}
break;
}
case CSSPropertyWebkitMaskBoxImageSource: {
if (m_state.style()->maskBoxImageSource() && m_state.style()->maskBoxImageSource()->isPendingImage())
m_state.style()->setMaskBoxImageSource(loadPendingImage(toStylePendingImage(m_state.style()->maskBoxImageSource())));
auto styleImage = m_state.style()->maskBoxImageSource();
if (styleImage && styleImage->isPendingImage())
m_state.style()->setMaskBoxImageSource(loadPendingImage(toStylePendingImage(*styleImage)));
break;
}
case CSSPropertyWebkitMaskImage: {
for (FillLayer* maskLayer = m_state.style()->accessMaskLayers(); maskLayer; maskLayer = maskLayer->next()) {
if (maskLayer->image() && maskLayer->image()->isPendingImage())
maskLayer->setImage(loadPendingImage(toStylePendingImage(maskLayer->image())));
auto styleImage = maskLayer->image();
if (styleImage && styleImage->isPendingImage())
maskLayer->setImage(loadPendingImage(toStylePendingImage(*styleImage)));
}
break;
}
Expand Down
4 changes: 2 additions & 2 deletions Source/WebCore/css/StyleResolver.h
Expand Up @@ -472,8 +472,8 @@ class StyleResolver {

void applySVGProperty(CSSPropertyID, CSSValue*);

PassRefPtr<StyleImage> loadPendingImage(StylePendingImage*, const ResourceLoaderOptions&);
PassRefPtr<StyleImage> loadPendingImage(StylePendingImage*);
PassRefPtr<StyleImage> loadPendingImage(const StylePendingImage&, const ResourceLoaderOptions&);
PassRefPtr<StyleImage> loadPendingImage(const StylePendingImage&);
void loadPendingImages();
#if ENABLE(CSS_SHAPES)
void loadPendingShapeImage(ShapeValue*);
Expand Down

0 comments on commit acd8be3

Please sign in to comment.