Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / core / fetch / ImageResource.cpp
index 2414596..d9ff30e 100644 (file)
@@ -120,14 +120,14 @@ void ImageResource::switchClientsToRevalidatedResource()
     ASSERT(resourceToRevalidate()->isImage());
     // Pending container size requests need to be transferred to the revalidated resource.
     if (!m_pendingContainerSizeRequests.isEmpty()) {
-        // A copy of pending size requests is needed as they are deleted during Resource::switchClientsToRevalidateResouce().
+        // A copy of pending size requests is needed as they are deleted during Resource::switchClientsToRevalidateResource().
         ContainerSizeRequests switchContainerSizeRequests;
-        for (ContainerSizeRequests::iterator it = m_pendingContainerSizeRequests.begin(); it != m_pendingContainerSizeRequests.end(); ++it)
-            switchContainerSizeRequests.set(it->key, it->value);
+        for (const auto& containerSizeRequest : m_pendingContainerSizeRequests)
+            switchContainerSizeRequests.set(containerSizeRequest.key, containerSizeRequest.value);
         Resource::switchClientsToRevalidatedResource();
         ImageResource* revalidatedImageResource = toImageResource(resourceToRevalidate());
-        for (ContainerSizeRequests::iterator it = switchContainerSizeRequests.begin(); it != switchContainerSizeRequests.end(); ++it)
-            revalidatedImageResource->setContainerSizeForRenderer(it->key, it->value.first, it->value.second);
+        for (const auto& containerSizeRequest : switchContainerSizeRequests)
+            revalidatedImageResource->setContainerSizeForRenderer(containerSizeRequest.key, containerSizeRequest.value.first, containerSizeRequest.value.second);
         return;
     }
 
@@ -329,8 +329,8 @@ inline void ImageResource::createImage()
     if (m_image) {
         // Send queued container size requests.
         if (m_image->usesContainerSize()) {
-            for (ContainerSizeRequests::iterator it = m_pendingContainerSizeRequests.begin(); it != m_pendingContainerSizeRequests.end(); ++it)
-                setContainerSizeForRenderer(it->key, it->value.first, it->value.second);
+            for (const auto& containerSizeRequest : m_pendingContainerSizeRequests)
+                setContainerSizeForRenderer(containerSizeRequest.key, containerSizeRequest.value.first, containerSizeRequest.value.second);
         }
         m_pendingContainerSizeRequests.clear();
     }
@@ -341,11 +341,11 @@ inline void ImageResource::clearImage()
     // If our Image has an observer, it's always us so we need to clear the back pointer
     // before dropping our reference.
     if (m_image)
-        m_image->setImageObserver(0);
+        m_image->setImageObserver(nullptr);
     m_image.clear();
 }
 
-void ImageResource::appendData(const char* data, int length)
+void ImageResource::appendData(const char* data, unsigned length)
 {
     Resource::appendData(data, length);
     if (!m_loadingMultipartContent)
@@ -387,8 +387,7 @@ void ImageResource::updateImage(bool allDataReceived)
 
 void ImageResource::updateBitmapImages(HashSet<ImageResource*>& images, bool redecodeImages)
 {
-    for (HashSet<ImageResource*>::iterator it = images.begin(); it != images.end(); ++it) {
-        ImageResource* imageResource = *it;
+    for (ImageResource* imageResource : images) {
         if (!imageResource->hasImage() || imageResource->image()->isNull())
             continue;
         BitmapImage* image = toBitmapImage(imageResource->image());
@@ -415,7 +414,7 @@ void ImageResource::error(Resource::Status status)
     notifyObservers();
 }
 
-void ImageResource::responseReceived(const ResourceResponse& response)
+void ImageResource::responseReceived(const ResourceResponse& response, PassOwnPtr<WebDataConsumerHandle> handle)
 {
     if (m_loadingMultipartContent && m_data)
         finishOnePart();
@@ -428,7 +427,7 @@ void ImageResource::responseReceived(const ResourceResponse& response)
             m_hasDevicePixelRatioHeaderValue = false;
         }
     }
-    Resource::responseReceived(response);
+    Resource::responseReceived(response, handle);
 }
 
 void ImageResource::decodedSizeChanged(const blink::Image* image, int delta)
@@ -488,6 +487,8 @@ bool ImageResource::currentFrameKnownToBeOpaque(const RenderObject* renderer)
 
 bool ImageResource::isAccessAllowed(SecurityOrigin* securityOrigin)
 {
+    if (response().wasFetchedViaServiceWorker())
+        return response().serviceWorkerResponseType() != WebServiceWorkerResponseTypeOpaque;
     if (!image()->currentFrameHasSingleSecurityOrigin())
         return false;
     if (passesAccessControlCheck(securityOrigin))