Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(299)

Unified Diff: third_party/WebKit/Source/core/fetch/RawResource.h

Issue 2584423002: Loading: move core/fetch to platform/loader/fetch (Closed)
Patch Set: another try Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/WebKit/Source/core/fetch/OWNERS ('k') | third_party/WebKit/Source/core/fetch/RawResource.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « third_party/WebKit/Source/core/fetch/OWNERS ('k') | third_party/WebKit/Source/core/fetch/RawResource.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698