Index: third_party/WebKit/Source/core/fetch/RawResource.h |
diff --git a/third_party/WebKit/Source/core/fetch/RawResource.h b/third_party/WebKit/Source/core/fetch/RawResource.h |
deleted file mode 100644 |
index 95401e137c4f951c0d800e32fd6e722190dbfc1e..0000000000000000000000000000000000000000 |
--- a/third_party/WebKit/Source/core/fetch/RawResource.h |
+++ /dev/null |
@@ -1,196 +0,0 @@ |
-/* |
- Copyright (C) 1998 Lars Knoll (knoll@mpi-hd.mpg.de) |
- Copyright (C) 2001 Dirk Mueller <mueller@kde.org> |
- Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com) |
- Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved. |
- |
- This library is free software; you can redistribute it and/or |
- modify it under the terms of the GNU Library General Public |
- License as published by the Free Software Foundation; either |
- version 2 of the License, or (at your option) any later version. |
- |
- This library is distributed in the hope that it will be useful, |
- but WITHOUT ANY WARRANTY; without even the implied warranty of |
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
- Library General Public License for more details. |
- |
- You should have received a copy of the GNU Library General Public License |
- along with this library; see the file COPYING.LIB. If not, write to |
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
- Boston, MA 02110-1301, USA. |
-*/ |
- |
-#ifndef RawResource_h |
-#define RawResource_h |
- |
-#include "core/CoreExport.h" |
-#include "core/fetch/Resource.h" |
-#include "core/fetch/ResourceClient.h" |
-#include "public/platform/WebDataConsumerHandle.h" |
-#include "wtf/WeakPtr.h" |
-#include <memory> |
- |
-namespace blink { |
-class FetchRequest; |
-class RawResourceClient; |
-class ResourceFetcher; |
-class SubstituteData; |
- |
-class CORE_EXPORT RawResource final : public Resource { |
- public: |
- using ClientType = RawResourceClient; |
- |
- static RawResource* fetchSynchronously(FetchRequest&, ResourceFetcher*); |
- static RawResource* fetch(FetchRequest&, ResourceFetcher*); |
- static RawResource* fetchMainResource(FetchRequest&, |
- ResourceFetcher*, |
- const SubstituteData&); |
- static RawResource* fetchImport(FetchRequest&, ResourceFetcher*); |
- static RawResource* fetchMedia(FetchRequest&, ResourceFetcher*); |
- static RawResource* fetchTextTrack(FetchRequest&, ResourceFetcher*); |
- static RawResource* fetchManifest(FetchRequest&, ResourceFetcher*); |
- |
- // Exposed for testing |
- static RawResource* create(const ResourceRequest& request, Type type) { |
- return new RawResource(request, type, ResourceLoaderOptions()); |
- } |
- |
- // FIXME: AssociatedURLLoader shouldn't be a DocumentThreadableLoader and |
- // therefore shouldn't use RawResource. However, it is, and it needs to be |
- // able to defer loading. This can be fixed by splitting CORS preflighting out |
- // of DocumentThreadableLoader. |
- void setDefersLoading(bool); |
- |
- // Resource implementation |
- bool canReuse(const ResourceRequest&) const override; |
- bool willFollowRedirect(const ResourceRequest&, |
- const ResourceResponse&) override; |
- |
- private: |
- class RawResourceFactory : public ResourceFactory { |
- public: |
- explicit RawResourceFactory(Resource::Type type) : ResourceFactory(type) {} |
- |
- Resource* create(const ResourceRequest& request, |
- const ResourceLoaderOptions& options, |
- const String& charset) const override { |
- return new RawResource(request, m_type, options); |
- } |
- }; |
- |
- RawResource(const ResourceRequest&, Type, const ResourceLoaderOptions&); |
- |
- // Resource implementation |
- void didAddClient(ResourceClient*) override; |
- void appendData(const char*, size_t) override; |
- bool shouldIgnoreHTTPStatusCodeErrors() const override { |
- return !isLinkPreload(); |
- } |
- void willNotFollowRedirect() override; |
- void responseReceived(const ResourceResponse&, |
- std::unique_ptr<WebDataConsumerHandle>) override; |
- void setSerializedCachedMetadata(const char*, size_t) override; |
- void didSendData(unsigned long long bytesSent, |
- unsigned long long totalBytesToBeSent) override; |
- void didDownloadData(int) override; |
- void reportResourceTimingToClients(const ResourceTimingInfo&) override; |
-}; |
- |
-#if ENABLE(SECURITY_ASSERT) |
-inline bool isRawResource(const Resource& resource) { |
- Resource::Type type = resource.getType(); |
- return type == Resource::MainResource || type == Resource::Raw || |
- type == Resource::TextTrack || type == Resource::Media || |
- type == Resource::Manifest || type == Resource::ImportResource; |
-} |
-#endif |
-inline RawResource* toRawResource(Resource* resource) { |
- SECURITY_DCHECK(!resource || isRawResource(*resource)); |
- return static_cast<RawResource*>(resource); |
-} |
- |
-class CORE_EXPORT RawResourceClient : public ResourceClient { |
- public: |
- static bool isExpectedType(ResourceClient* client) { |
- return client->getResourceClientType() == RawResourceType; |
- } |
- ResourceClientType getResourceClientType() const final { |
- return RawResourceType; |
- } |
- |
- // The order of the callbacks is as follows: |
- // [Case 1] A successful load: |
- // 0+ redirectReceived() and/or dataSent() |
- // 1 responseReceived() |
- // 0-1 setSerializedCachedMetadata() |
- // 0+ dataReceived() or dataDownloaded(), but never both |
- // 1 notifyFinished() with errorOccurred() = false |
- // [Case 2] When redirect is blocked: |
- // 0+ redirectReceived() and/or dataSent() |
- // 1 redirectBlocked() |
- // 1 notifyFinished() with errorOccurred() = true |
- // [Case 3] Other failures: |
- // notifyFinished() with errorOccurred() = true is called at any time |
- // (unless notifyFinished() is already called). |
- // In all cases: |
- // No callbacks are made after notifyFinished() or |
- // removeClient() is called. |
- virtual void dataSent(Resource*, |
- unsigned long long /* bytesSent */, |
- unsigned long long /* totalBytesToBeSent */) {} |
- virtual void responseReceived(Resource*, |
- const ResourceResponse&, |
- std::unique_ptr<WebDataConsumerHandle>) {} |
- virtual void setSerializedCachedMetadata(Resource*, const char*, size_t) {} |
- virtual void dataReceived(Resource*, |
- const char* /* data */, |
- size_t /* length */) {} |
- virtual bool redirectReceived(Resource*, |
- const ResourceRequest&, |
- const ResourceResponse&) { |
- return true; |
- } |
- virtual void redirectBlocked() {} |
- virtual void dataDownloaded(Resource*, int) {} |
- virtual void didReceiveResourceTiming(Resource*, const ResourceTimingInfo&) {} |
-}; |
- |
-// Checks the sequence of callbacks of RawResourceClient. This can be used only |
-// when a RawResourceClient is added as a client to at most one RawResource. |
-class CORE_EXPORT RawResourceClientStateChecker final { |
- public: |
- RawResourceClientStateChecker(); |
- ~RawResourceClientStateChecker(); |
- |
- // Call before addClient()/removeClient() is called. |
- void willAddClient(); |
- void willRemoveClient(); |
- |
- // Call RawResourceClientStateChecker::f() at the beginning of |
- // RawResourceClient::f(). |
- void redirectReceived(); |
- void redirectBlocked(); |
- void dataSent(); |
- void responseReceived(); |
- void setSerializedCachedMetadata(); |
- void dataReceived(); |
- void dataDownloaded(); |
- void notifyFinished(Resource*); |
- |
- private: |
- enum State { |
- NotAddedAsClient, |
- Started, |
- RedirectBlocked, |
- ResponseReceived, |
- SetSerializedCachedMetadata, |
- DataReceived, |
- DataDownloaded, |
- NotifyFinished |
- }; |
- State m_state; |
-}; |
- |
-} // namespace blink |
- |
-#endif // RawResource_h |