| Index: third_party/WebKit/Source/core/css/resolver/ElementStyleResources.cpp
|
| diff --git a/third_party/WebKit/Source/core/css/resolver/ElementStyleResources.cpp b/third_party/WebKit/Source/core/css/resolver/ElementStyleResources.cpp
|
| index 68935d73e97c77dab9bf49835c00c4d15d01dde6..381a8ba5b0dff05ac7a14db21e52398f09859871 100644
|
| --- a/third_party/WebKit/Source/core/css/resolver/ElementStyleResources.cpp
|
| +++ b/third_party/WebKit/Source/core/css/resolver/ElementStyleResources.cpp
|
| @@ -132,11 +132,17 @@ void ElementStyleResources::loadPendingSVGDocuments(ComputedStyle* computedStyle
|
| }
|
| }
|
|
|
| -StyleImage* ElementStyleResources::loadPendingImage(StylePendingImage* pendingImage, CrossOriginAttributeValue crossOrigin)
|
| +StyleImage* ElementStyleResources::loadPendingImage(ComputedStyle* style, StylePendingImage* pendingImage, CrossOriginAttributeValue crossOrigin)
|
| {
|
| if (CSSImageValue* imageValue = pendingImage->cssImageValue())
|
| return imageValue->cacheImage(m_document, crossOrigin);
|
|
|
| + if (CSSPaintValue* paintValue = pendingImage->cssPaintValue()) {
|
| + StyleGeneratedImage* image = StyleGeneratedImage::create(*paintValue);
|
| + style->addPaintImage(image);
|
| + return image;
|
| + }
|
| +
|
| if (CSSImageGeneratorValue* imageGeneratorValue = pendingImage->cssImageGeneratorValue()) {
|
| imageGeneratorValue->loadSubimages(m_document);
|
| return StyleGeneratedImage::create(*imageGeneratorValue);
|
| @@ -177,7 +183,7 @@ void ElementStyleResources::loadPendingImages(ComputedStyle* style)
|
| case CSSPropertyBackgroundImage: {
|
| for (FillLayer* backgroundLayer = &style->accessBackgroundLayers(); backgroundLayer; backgroundLayer = backgroundLayer->next()) {
|
| if (backgroundLayer->image() && backgroundLayer->image()->isPendingImage())
|
| - backgroundLayer->setImage(loadPendingImage(toStylePendingImage(backgroundLayer->image())));
|
| + backgroundLayer->setImage(loadPendingImage(style, toStylePendingImage(backgroundLayer->image())));
|
| }
|
| break;
|
| }
|
| @@ -186,7 +192,7 @@ void ElementStyleResources::loadPendingImages(ComputedStyle* style)
|
| if (contentData->isImage()) {
|
| StyleImage* image = toImageContentData(contentData)->image();
|
| if (image->isPendingImage())
|
| - toImageContentData(contentData)->setImage(loadPendingImage(toStylePendingImage(image)));
|
| + toImageContentData(contentData)->setImage(loadPendingImage(style, toStylePendingImage(image)));
|
| }
|
| }
|
| break;
|
| @@ -197,7 +203,7 @@ void ElementStyleResources::loadPendingImages(ComputedStyle* style)
|
| CursorData& currentCursor = cursorList->at(i);
|
| if (StyleImage* image = currentCursor.image()) {
|
| if (image->isPendingImage())
|
| - currentCursor.setImage(loadPendingImage(toStylePendingImage(image)));
|
| + currentCursor.setImage(loadPendingImage(style, toStylePendingImage(image)));
|
| }
|
| }
|
| }
|
| @@ -205,19 +211,19 @@ void ElementStyleResources::loadPendingImages(ComputedStyle* style)
|
| }
|
| case CSSPropertyListStyleImage: {
|
| if (style->listStyleImage() && style->listStyleImage()->isPendingImage())
|
| - style->setListStyleImage(loadPendingImage(toStylePendingImage(style->listStyleImage())));
|
| + style->setListStyleImage(loadPendingImage(style, toStylePendingImage(style->listStyleImage())));
|
| break;
|
| }
|
| case CSSPropertyBorderImageSource: {
|
| if (style->borderImageSource() && style->borderImageSource()->isPendingImage())
|
| - style->setBorderImageSource(loadPendingImage(toStylePendingImage(style->borderImageSource())));
|
| + style->setBorderImageSource(loadPendingImage(style, toStylePendingImage(style->borderImageSource())));
|
| break;
|
| }
|
| case CSSPropertyWebkitBoxReflect: {
|
| if (StyleReflection* reflection = style->boxReflect()) {
|
| const NinePieceImage& maskImage = reflection->mask();
|
| if (maskImage.image() && maskImage.image()->isPendingImage()) {
|
| - StyleImage* loadedImage = loadPendingImage(toStylePendingImage(maskImage.image()));
|
| + StyleImage* loadedImage = loadPendingImage(style, toStylePendingImage(maskImage.image()));
|
| reflection->setMask(NinePieceImage(loadedImage, maskImage.imageSlices(), maskImage.fill(), maskImage.borderSlices(), maskImage.outset(), maskImage.horizontalRule(), maskImage.verticalRule()));
|
| }
|
| }
|
| @@ -225,19 +231,19 @@ void ElementStyleResources::loadPendingImages(ComputedStyle* style)
|
| }
|
| case CSSPropertyWebkitMaskBoxImageSource: {
|
| if (style->maskBoxImageSource() && style->maskBoxImageSource()->isPendingImage())
|
| - style->setMaskBoxImageSource(loadPendingImage(toStylePendingImage(style->maskBoxImageSource())));
|
| + style->setMaskBoxImageSource(loadPendingImage(style, toStylePendingImage(style->maskBoxImageSource())));
|
| break;
|
| }
|
| case CSSPropertyWebkitMaskImage: {
|
| for (FillLayer* maskLayer = &style->accessMaskLayers(); maskLayer; maskLayer = maskLayer->next()) {
|
| if (maskLayer->image() && maskLayer->image()->isPendingImage())
|
| - maskLayer->setImage(loadPendingImage(toStylePendingImage(maskLayer->image())));
|
| + maskLayer->setImage(loadPendingImage(style, toStylePendingImage(maskLayer->image())));
|
| }
|
| break;
|
| }
|
| case CSSPropertyShapeOutside:
|
| if (style->shapeOutside() && style->shapeOutside()->image() && style->shapeOutside()->image()->isPendingImage())
|
| - style->shapeOutside()->setImage(loadPendingImage(toStylePendingImage(style->shapeOutside()->image()), CrossOriginAttributeAnonymous));
|
| + style->shapeOutside()->setImage(loadPendingImage(style, toStylePendingImage(style->shapeOutside()->image()), CrossOriginAttributeAnonymous));
|
| break;
|
| default:
|
| ASSERT_NOT_REACHED();
|
|
|