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

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

Issue 2527353002: Phase II Step 3: Reload LoFi/placeholder images via new ImageResource
Patch Set: tests Created 4 years 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/ImageResourceContent.cpp
diff --git a/third_party/WebKit/Source/core/fetch/ImageResourceContent.cpp b/third_party/WebKit/Source/core/fetch/ImageResourceContent.cpp
index 7877d17df0114948b3e627d8a7ee1b8007f4372e..582a462c96bd2cd7eba19635f5e6af436fd85907 100644
--- a/third_party/WebKit/Source/core/fetch/ImageResourceContent.cpp
+++ b/third_party/WebKit/Source/core/fetch/ImageResourceContent.cpp
@@ -35,16 +35,13 @@ class NullImageResourceInfo final
private:
const KURL& url() const override { return m_url; }
- bool isSchedulingReload() const override { return false; }
bool hasDevicePixelRatioHeaderValue() const override { return false; }
float devicePixelRatioHeaderValue() const override { return 1.0; }
const ResourceResponse& response() const override { return m_response; }
ResourceStatus getStatus() const override { return ResourceStatus::Cached; }
bool isPlaceholder() const override { return false; }
bool isCacheValidator() const override { return false; }
- bool schedulingReloadOrShouldReloadBrokenPlaceholder() const override {
- return false;
- }
+ bool shouldReloadBrokenPlaceholder() const override { return false; }
bool isAccessAllowed(
SecurityOrigin*,
bool doesCurrentFrameHasSingleSecurityOrigin) const override {
@@ -52,6 +49,7 @@ class NullImageResourceInfo final
}
bool hasCacheControlNoStoreHeader() const override { return false; }
const ResourceError& resourceError() const override { return m_error; }
+ ImageResource* resourceForTest() const override { return nullptr; }
const KURL m_url;
const ResourceResponse m_response;
@@ -106,8 +104,7 @@ void ImageResourceContent::addObserver(ImageResourceObserver* observer) {
observer->imageChanged(this);
}
- if (isLoaded() && m_observers.contains(observer) &&
- !m_info->schedulingReloadOrShouldReloadBrokenPlaceholder()) {
+ if (isLoaded() && m_observers.contains(observer)) {
markObserverFinished(observer);
observer->imageNotifyFinished(this);
}
@@ -248,8 +245,7 @@ void ImageResourceContent::notifyObservers(
if (m_observers.contains(observer)) {
observer->imageChanged(this, changeRect);
if (notifyingFinishOption == ShouldNotifyFinish &&
- m_observers.contains(observer) &&
- !m_info->schedulingReloadOrShouldReloadBrokenPlaceholder()) {
+ m_observers.contains(observer)) {
markObserverFinished(observer);
observer->imageNotifyFinished(this);
}
@@ -278,7 +274,8 @@ inline void ImageResourceContent::clearImage() {
void ImageResourceContent::updateImage(PassRefPtr<SharedBuffer> data,
ClearImageOption clearImageOption,
- bool allDataReceived) {
+ bool allDataReceived,
+ ResourceFetcher* fetcherForReload) {
TRACE_EVENT0("blink", "ImageResourceContent::updateImage");
if (clearImageOption == ImageResourceContent::ClearExistingImage) {
@@ -318,6 +315,11 @@ void ImageResourceContent::updateImage(PassRefPtr<SharedBuffer> data,
}
}
+ if (m_info->shouldReloadBrokenPlaceholder()) {
+ if (m_info->reloadIfLoFiOrPlaceholder(fetcherForReload))
+ return;
+ }
+
if (!m_image || m_image->isNull()) {
clearImage();
m_info->decodeError(allDataReceived);
@@ -446,5 +448,8 @@ const ResourceResponse& ImageResourceContent::response() const {
const ResourceError& ImageResourceContent::resourceError() const {
return m_info->resourceError();
}
+ImageResource* ImageResourceContent::resourceForTest() const {
+ return m_info->resourceForTest();
+}
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698