Index: third_party/WebKit/Source/core/fetch/Resource.cpp |
diff --git a/third_party/WebKit/Source/core/fetch/Resource.cpp b/third_party/WebKit/Source/core/fetch/Resource.cpp |
index 20b69e38de6bd385ea801e11c98a8aafe177faef..0ff2bb809716f64697148de0abb1fc729df91eb5 100644 |
--- a/third_party/WebKit/Source/core/fetch/Resource.cpp |
+++ b/third_party/WebKit/Source/core/fetch/Resource.cpp |
@@ -109,6 +109,8 @@ public: |
// Sets the serialized metadata retrieved from the platform's cache. |
void setSerializedCachedMetadata(const char*, size_t); |
+ void prune() override; |
+ |
protected: |
explicit CachedMetadataHandlerImpl(Resource*); |
virtual void sendToPlatform(); |
@@ -180,6 +182,11 @@ void Resource::CachedMetadataHandlerImpl::sendToPlatform() |
} |
} |
+void Resource::CachedMetadataHandlerImpl::prune() |
+{ |
+ clearCachedMetadata(CachedMetadataHandler::CacheLocally); |
+} |
+ |
class Resource::ServiceWorkerResponseCachedMetadataHandler : public Resource::CachedMetadataHandlerImpl { |
public: |
static Resource::CachedMetadataHandlerImpl* create(Resource* resource, SecurityOrigin* securityOrigin) |
@@ -828,6 +835,8 @@ void Resource::finishPendingClients() |
void Resource::prune() |
{ |
destroyDecodedDataIfPossible(); |
+ if (m_cacheHandler) |
+ m_cacheHandler->prune(); |
unlock(); |
} |