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

Side by Side Diff: Source/core/loader/ResourceLoader.h

Issue 19574002: Refactoring: Introduce ResouceLoaderHost interface for unloading ResourceLoader. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Another attempt Created 7 years, 5 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/core/loader/DocumentLoader.cpp ('k') | Source/core/loader/ResourceLoader.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2005, 2006, 2011 Apple Inc. All rights reserved. 2 * Copyright (C) 2005, 2006, 2011 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 22 matching lines...) Expand all
33 #include "core/platform/network/ResourceHandleClient.h" 33 #include "core/platform/network/ResourceHandleClient.h"
34 #include "core/platform/network/ResourceRequest.h" 34 #include "core/platform/network/ResourceRequest.h"
35 #include "core/platform/network/ResourceResponse.h" 35 #include "core/platform/network/ResourceResponse.h"
36 36
37 #include "wtf/Forward.h" 37 #include "wtf/Forward.h"
38 #include "wtf/RefCounted.h" 38 #include "wtf/RefCounted.h"
39 39
40 namespace WebCore { 40 namespace WebCore {
41 41
42 class CachedResource; 42 class CachedResource;
43 class CachedResourceLoader;
44 class DocumentLoader; 43 class DocumentLoader;
45 class Frame; 44 class Frame;
46 class FrameLoader; 45 class FrameLoader;
47 class KURL; 46 class KURL;
48 class ResourceBuffer; 47 class ResourceBuffer;
49 class ResourceHandle; 48 class ResourceHandle;
49 class ResourceLoaderHost;
50 50
51 class ResourceLoader : public RefCounted<ResourceLoader>, protected ResourceHand leClient { 51 class ResourceLoader : public RefCounted<ResourceLoader>, protected ResourceHand leClient {
52 public: 52 public:
53 static PassRefPtr<ResourceLoader> create(DocumentLoader*, CachedResource*, c onst ResourceRequest&, const ResourceLoaderOptions&); 53 static PassRefPtr<ResourceLoader> create(ResourceLoaderHost*, CachedResource *, const ResourceRequest&, const ResourceLoaderOptions&);
54 virtual ~ResourceLoader(); 54 virtual ~ResourceLoader();
55 55
56 void cancel(); 56 void cancel();
57 void cancel(const ResourceError&); 57 void cancel(const ResourceError&);
58 void cancelIfNotFinishing(); 58 void cancelIfNotFinishing();
59 59
60 FrameLoader* frameLoader() const;
61 DocumentLoader* documentLoader() const { return m_documentLoader.get(); }
62 CachedResource* cachedResource() { return m_resource; } 60 CachedResource* cachedResource() { return m_resource; }
63 const ResourceRequest& originalRequest() const { return m_originalRequest; } 61 const ResourceRequest& originalRequest() const { return m_originalRequest; }
64 62
65 void setDefersLoading(bool); 63 void setDefersLoading(bool);
66 bool defersLoading() const { return m_defersLoading; } 64 bool defersLoading() const { return m_defersLoading; }
67 65
68 void releaseResources(); 66 void releaseResources();
69 67
70 void didChangePriority(ResourceLoadPriority); 68 void didChangePriority(ResourceLoadPriority);
71 69
72 // ResourceHandleClient 70 // ResourceHandleClient
73 virtual void willSendRequest(ResourceHandle*, ResourceRequest&, const Resour ceResponse& redirectResponse) OVERRIDE; 71 virtual void willSendRequest(ResourceHandle*, ResourceRequest&, const Resour ceResponse& redirectResponse) OVERRIDE;
74 virtual void didSendData(ResourceHandle*, unsigned long long bytesSent, unsi gned long long totalBytesToBeSent) OVERRIDE; 72 virtual void didSendData(ResourceHandle*, unsigned long long bytesSent, unsi gned long long totalBytesToBeSent) OVERRIDE;
75 virtual void didReceiveResponse(ResourceHandle*, const ResourceResponse&) OV ERRIDE; 73 virtual void didReceiveResponse(ResourceHandle*, const ResourceResponse&) OV ERRIDE;
76 virtual void didReceiveData(ResourceHandle*, const char*, int, int encodedDa taLength) OVERRIDE; 74 virtual void didReceiveData(ResourceHandle*, const char*, int, int encodedDa taLength) OVERRIDE;
77 virtual void didReceiveCachedMetadata(ResourceHandle*, const char* data, int length) OVERRIDE; 75 virtual void didReceiveCachedMetadata(ResourceHandle*, const char* data, int length) OVERRIDE;
78 virtual void didFinishLoading(ResourceHandle*, double finishTime) OVERRIDE; 76 virtual void didFinishLoading(ResourceHandle*, double finishTime) OVERRIDE;
79 virtual void didFail(ResourceHandle*, const ResourceError&) OVERRIDE; 77 virtual void didFail(ResourceHandle*, const ResourceError&) OVERRIDE;
80 virtual void didDownloadData(ResourceHandle*, int) OVERRIDE; 78 virtual void didDownloadData(ResourceHandle*, int) OVERRIDE;
81 79
82 const KURL& url() const { return m_request.url(); } 80 const KURL& url() const { return m_request.url(); }
83 ResourceHandle* handle() const { return m_handle.get(); } 81 ResourceHandle* handle() const { return m_handle.get(); }
84 bool shouldSendResourceLoadCallbacks() const { return m_options.sendLoadCall backs == SendCallbacks; } 82 bool shouldSendResourceLoadCallbacks() const { return m_options.sendLoadCall backs == SendCallbacks; }
85 bool shouldSniffContent() const { return m_options.sniffContent == SniffCont ent; } 83 bool shouldSniffContent() const { return m_options.sniffContent == SniffCont ent; }
84 bool isLoadedBy(ResourceLoaderHost*) const;
86 85
87 bool reachedTerminalState() const { return m_state == Terminated; } 86 bool reachedTerminalState() const { return m_state == Terminated; }
88
89 const ResourceRequest& request() const { return m_request; } 87 const ResourceRequest& request() const { return m_request; }
90 88
91 private: 89 private:
92 ResourceLoader(DocumentLoader*, CachedResource*, ResourceLoaderOptions); 90 ResourceLoader(ResourceLoaderHost*, CachedResource*, const ResourceLoaderOpt ions&);
93 91
94 bool init(const ResourceRequest&); 92 bool init(const ResourceRequest&);
95 void start(); 93 void start();
96 94
97 void didFinishLoadingOnePart(double finishTime); 95 void didFinishLoadingOnePart(double finishTime);
98 96
99 RefPtr<ResourceHandle> m_handle; 97 RefPtr<ResourceHandle> m_handle;
100 RefPtr<Frame> m_frame; 98 RefPtr<ResourceLoaderHost> m_host;
101 RefPtr<DocumentLoader> m_documentLoader;
102 99
103 ResourceRequest m_request; 100 ResourceRequest m_request;
104 ResourceRequest m_originalRequest; // Before redirects. 101 ResourceRequest m_originalRequest; // Before redirects.
105 102
106 bool m_loadingMultipartContent; 103 bool m_loadingMultipartContent;
107 bool m_notifiedLoadComplete; 104 bool m_notifiedLoadComplete;
108 105
109 bool m_defersLoading; 106 bool m_defersLoading;
110 ResourceRequest m_deferredRequest; 107 ResourceRequest m_deferredRequest;
111 ResourceLoaderOptions m_options; 108 ResourceLoaderOptions m_options;
112 109
113 enum ResourceLoaderState { 110 enum ResourceLoaderState {
114 Uninitialized, 111 Uninitialized,
115 Initialized, 112 Initialized,
116 Finishing, 113 Finishing,
117 Terminated 114 Terminated
118 }; 115 };
119 116
120 class RequestCountTracker { 117 class RequestCountTracker {
121 public: 118 public:
122 RequestCountTracker(CachedResourceLoader*, CachedResource*); 119 RequestCountTracker(ResourceLoaderHost*, CachedResource*);
123 ~RequestCountTracker(); 120 ~RequestCountTracker();
124 private: 121 private:
125 CachedResourceLoader* m_cachedResourceLoader; 122 ResourceLoaderHost* m_host;
126 CachedResource* m_resource; 123 CachedResource* m_resource;
127 }; 124 };
128 125
129 CachedResource* m_resource; 126 CachedResource* m_resource;
130 ResourceLoaderState m_state; 127 ResourceLoaderState m_state;
131 OwnPtr<RequestCountTracker> m_requestCountTracker; 128 OwnPtr<RequestCountTracker> m_requestCountTracker;
132 }; 129 };
133 130
134 } 131 }
135 132
136 #endif 133 #endif
OLDNEW
« no previous file with comments | « Source/core/loader/DocumentLoader.cpp ('k') | Source/core/loader/ResourceLoader.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698