Ignore:
Timestamp:
Jan 14, 2014, 10:16:42 AM (11 years ago)
Author:
[email protected]
Message:

[CSS Shapes] Shape images are now <image> types, not just URIs
https://bugs.webkit.org/show_bug.cgi?id=125224

Reviewed by Andreas Kling.

Source/WebCore:

Added support for image-set valued shapes. Added an optional ResourceLoaderOptions
parameter to CSSImageSetValue::cachedImageSet() to enable CORS-enabled fetch of
image-set images. This change is based on a similar patch for ordinary shape image values:
https://bugs.webkit.org/show_bug.cgi?id=123114.

Tests: fast/shapes/shape-inside/shape-inside-image-set.html

fast/shapes/shape-outside-floats/shape-outside-image-set.html

  • css/CSSImageSetValue.cpp:

(WebCore::CSSImageSetValue::cachedImageSet):

  • css/CSSImageSetValue.h:
  • css/CSSParser.cpp:

(WebCore::CSSParser::parseShapeProperty):

  • css/DeprecatedStyleBuilder.cpp:

(WebCore::ApplyPropertyShape::applyValue):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::loadPendingImage):
(WebCore::StyleResolver::loadPendingShapeImage):

  • css/StyleResolver.h:
  • rendering/shapes/Shape.cpp:

(WebCore::Shape::createShape):

LayoutTests:

  • fast/shapes/shape-inside/shape-inside-image-set-expected.html: Added.
  • fast/shapes/shape-inside/shape-inside-image-set.html: Added.
  • fast/shapes/shape-outside-floats/shape-outside-image-set-expected.html: Added.
  • fast/shapes/shape-outside-floats/shape-outside-image-set.html: Added.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/css/CSSImageSetValue.cpp

    r160479 r161980  
    3535#include "CachedResourceRequest.h"
    3636#include "CachedResourceRequestInitiators.h"
     37#include "CrossOriginAccessControl.h"
    3738#include "Document.h"
    3839#include "Page.h"
     
    101102}
    102103
    103 StyleCachedImageSet* CSSImageSetValue::cachedImageSet(CachedResourceLoader* loader)
     104StyleCachedImageSet* CSSImageSetValue::cachedImageSet(CachedResourceLoader* loader, const ResourceLoaderOptions& options)
    104105{
    105106    ASSERT(loader);
     
    119120        // and any CSS transforms. https://bugs.webkit.org/show_bug.cgi?id=81698
    120121        ImageWithScale image = bestImageForScaleFactor();
    121         CachedResourceRequest request(ResourceRequest(document->completeURL(image.imageURL)));
     122        CachedResourceRequest request(ResourceRequest(document->completeURL(image.imageURL)), options);
    122123        request.setInitiator(cachedResourceRequestInitiators().css);
     124        if (options.requestOriginPolicy == PotentiallyCrossOriginEnabled)
     125            updateRequestForAccessControl(request.mutableResourceRequest(), document->securityOrigin(), options.allowCredentials);
    123126        if (CachedResourceHandle<CachedImage> cachedImage = loader->requestImage(request)) {
    124127            detachPendingImage();
     
    129132
    130133    return (m_imageSet && m_imageSet->isCachedImageSet()) ? static_cast<StyleCachedImageSet*>(m_imageSet.get()) : 0;
     134}
     135
     136StyleCachedImageSet* CSSImageSetValue::cachedImageSet(CachedResourceLoader* loader)
     137{
     138    return cachedImageSet(loader, CachedResourceLoader::defaultCachedResourceOptions());
    131139}
    132140
Note: See TracChangeset for help on using the changeset viewer.