| 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 c1cb86504573f8f1351e602373960260d761919d..a822dba21254ade52f53d079cef7960736f1ba74 100644
|
| --- a/third_party/WebKit/Source/core/fetch/RawResource.cpp
|
| +++ b/third_party/WebKit/Source/core/fetch/RawResource.cpp
|
| @@ -260,4 +260,73 @@ bool RawResource::canReuse(const ResourceRequest& newRequest) const
|
| return true;
|
| }
|
|
|
| +RawResourceClientStateChecker::RawResourceClientStateChecker()
|
| + : m_state(NotAddedAsClient)
|
| +{
|
| +}
|
| +
|
| +RawResourceClientStateChecker::~RawResourceClientStateChecker()
|
| +{
|
| +}
|
| +
|
| +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
|
|
|