Index: third_party/WebKit/Source/platform/loader/fetch/RawResource.cpp |
diff --git a/third_party/WebKit/Source/platform/loader/fetch/RawResource.cpp b/third_party/WebKit/Source/platform/loader/fetch/RawResource.cpp |
index 4c008f6b78af945050ad33306b6b24c8d54bb862..87fa5b04962c33fb9f04d1b2cb2d67d712e8db7d 100644 |
--- a/third_party/WebKit/Source/platform/loader/fetch/RawResource.cpp |
+++ b/third_party/WebKit/Source/platform/loader/fetch/RawResource.cpp |
@@ -183,6 +183,14 @@ void RawResource::WillNotFollowRedirect() { |
void RawResource::ResponseReceived( |
const ResourceResponse& response, |
std::unique_ptr<WebDataConsumerHandle> handle) { |
+ if (response.WasFallbackRequiredByServiceWorker()) { |
+ // The ServiceWorker asked us to re-fetch the request. This resource must |
+ // not be reused. |
+ // Note: This logic is needed here because DocumentThreadableLoader handles |
+ // CORS independently from ResourceLoader. Fix it. |
+ GetMemoryCache()->Remove(this); |
+ } |
+ |
bool is_successful_revalidation = |
IsCacheValidator() && response.HttpStatusCode() == 304; |
Resource::ResponseReceived(response, nullptr); |