Index: third_party/WebKit/Source/core/fetch/RawResource.cpp |
diff --git a/third_party/WebKit/Source/core/fetch/RawResource.cpp b/third_party/WebKit/Source/core/fetch/RawResource.cpp |
index 37c225d31083b9380e64516edee3504b4d1296fc..fc7a7e31db91b77e17f0f333ce70d4af0081aa32 100644 |
--- a/third_party/WebKit/Source/core/fetch/RawResource.cpp |
+++ b/third_party/WebKit/Source/core/fetch/RawResource.cpp |
@@ -264,4 +264,74 @@ bool RawResource::canReuse(const ResourceRequest& newRequest) const |
return true; |
} |
+RawResourceClientStateChecker::RawResourceClientStateChecker() |
+ : m_state(NotAddedAsClient) |
+{ |
+} |
+ |
+RawResourceClientStateChecker::~RawResourceClientStateChecker() |
+{ |
+ SECURITY_CHECK(m_state == NotAddedAsClient); |
+} |
+ |
+void RawResourceClientStateChecker::willAddClient() |
+{ |
+ SECURITY_CHECK(m_state == NotAddedAsClient); |
+ m_state = Started; |
+} |
+ |
+void RawResourceClientStateChecker::willRemoveClient() |
+{ |
+ SECURITY_CHECK(m_state != NotAddedAsClient); |
+ m_state = NotAddedAsClient; |
+} |
+ |
+void RawResourceClientStateChecker::redirectReceived() |
+{ |
+ SECURITY_CHECK(m_state == Started); |
+} |
+ |
+void RawResourceClientStateChecker::redirectBlocked() |
+{ |
+ SECURITY_CHECK(m_state == Started); |
+ m_state = RedirectBlocked; |
+} |
+ |
+void RawResourceClientStateChecker::dataSent() |
+{ |
+ SECURITY_CHECK(m_state == Started); |
+} |
+ |
+void RawResourceClientStateChecker::responseReceived() |
+{ |
+ SECURITY_CHECK(m_state == Started); |
+ m_state = ResponseReceived; |
+} |
+ |
+void RawResourceClientStateChecker::setSerializedCachedMetadata() |
+{ |
+ SECURITY_CHECK(m_state == ResponseReceived); |
+ m_state = SetSerializedCachedMetadata; |
+} |
+ |
+void RawResourceClientStateChecker::dataReceived() |
+{ |
+ SECURITY_CHECK(m_state == ResponseReceived || m_state == SetSerializedCachedMetadata || m_state == DataReceived); |
+ m_state = DataReceived; |
+} |
+ |
+void RawResourceClientStateChecker::dataDownloaded() |
+{ |
+ SECURITY_CHECK(m_state == ResponseReceived || m_state == SetSerializedCachedMetadata || m_state == DataDownloaded); |
+ m_state = DataDownloaded; |
+} |
+ |
+void RawResourceClientStateChecker::notifyFinished(Resource* resource) |
+{ |
+ SECURITY_CHECK(m_state != NotAddedAsClient); |
+ SECURITY_CHECK(m_state != NotifyFinished); |
+ SECURITY_CHECK(resource->errorOccurred() || (m_state == ResponseReceived || m_state == SetSerializedCachedMetadata || m_state == DataReceived || m_state == DataDownloaded)); |
+ m_state = NotifyFinished; |
+} |
+ |
} // namespace blink |