Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(444)

Unified Diff: third_party/WebKit/Source/core/fetch/ImageResource.cpp

Issue 1928823002: Simplifying finishing a load on Resource (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/fetch/ImageResource.cpp
diff --git a/third_party/WebKit/Source/core/fetch/ImageResource.cpp b/third_party/WebKit/Source/core/fetch/ImageResource.cpp
index 67abfc4a4ef71e2e5d06b0d7d1415ca037439650..3aa08806351920f2d015c432164ba8c87a718188 100644
--- a/third_party/WebKit/Source/core/fetch/ImageResource.cpp
+++ b/third_party/WebKit/Source/core/fetch/ImageResource.cpp
@@ -367,7 +367,9 @@ void ImageResource::updateImage(bool allDataReceived)
// to decode.
if (sizeAvailable || allDataReceived) {
if (!m_image || m_image->isNull()) {
- error(errorOccurred() ? getStatus() : DecodeError);
+ if (!errorOccurred())
+ setStatus(DecodeError);
+ clear();
if (memoryCache()->contains(this))
memoryCache()->remove(this);
return;
@@ -379,27 +381,31 @@ void ImageResource::updateImage(bool allDataReceived)
}
}
-void ImageResource::finish()
+void ImageResource::updateImageAndClearBuffer()
+{
+ clearImage();
+ updateImage(true);
+ m_data.clear();
+}
+
+void ImageResource::finish(double loadFinishTime)
{
if (m_multipartParser) {
m_multipartParser->finish();
- if (m_data) {
- clearImage();
- updateImage(true);
- m_data.clear();
- }
+ if (m_data)
+ updateImageAndClearBuffer();
} else {
updateImage(true);
}
- Resource::finish();
+ Resource::finish(loadFinishTime);
}
-void ImageResource::error(Resource::Status status)
+void ImageResource::error(const ResourceError& error)
{
if (m_multipartParser)
m_multipartParser->cancel();
clear();
- Resource::error(status);
+ Resource::error(error);
notifyObservers();
}
@@ -498,7 +504,10 @@ void ImageResource::reloadIfLoFi(ResourceFetcher* fetcher)
return;
m_resourceRequest.setCachePolicy(WebCachePolicy::BypassingCache);
m_resourceRequest.setLoFiState(WebURLRequest::LoFiOff);
- error(Resource::LoadError);
+ if (isLoading())
+ m_loader->cancel();
+ else
+ updateImageAndClearBuffer();
setStatus(NotStarted);
load(fetcher);
}
@@ -520,9 +529,7 @@ void ImageResource::onePartInMultipartReceived(const ResourceResponse& response)
m_multipartParsingState = MultipartParsingState::ParsingFirstPart;
return;
}
- clear();
- updateImage(true);
- m_data.clear();
+ updateImageAndClearBuffer();
if (m_multipartParsingState == MultipartParsingState::ParsingFirstPart) {
m_multipartParsingState = MultipartParsingState::FinishedParsingFirstPart;
« no previous file with comments | « third_party/WebKit/Source/core/fetch/ImageResource.h ('k') | third_party/WebKit/Source/core/fetch/ImageResourceTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698