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

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: 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
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 29 matching lines...) Expand all
40 namespace WebCore { 40 namespace WebCore {
41 41
42 class CachedResource; 42 class CachedResource;
43 class CachedResourceLoader; 43 class CachedResourceLoader;
44 class DocumentLoader; 44 class DocumentLoader;
45 class Frame; 45 class Frame;
46 class FrameLoader; 46 class FrameLoader;
47 class KURL; 47 class KURL;
48 class ResourceBuffer; 48 class ResourceBuffer;
49 class ResourceHandle; 49 class ResourceHandle;
50 class ResourceLoaderHost;
50 51
51 class ResourceLoader : public RefCounted<ResourceLoader>, protected ResourceHand leClient { 52 class ResourceLoader : public RefCounted<ResourceLoader>, protected ResourceHand leClient {
52 public: 53 public:
53 static PassRefPtr<ResourceLoader> create(DocumentLoader*, CachedResource*, c onst ResourceRequest&, const ResourceLoaderOptions&); 54 static PassRefPtr<ResourceLoader> create(ResourceLoaderHost*, CachedResource *, const ResourceRequest&, const ResourceLoaderOptions&);
54 virtual ~ResourceLoader(); 55 virtual ~ResourceLoader();
55 56
56 void cancel(); 57 void cancel();
57 void cancel(const ResourceError&); 58 void cancel(const ResourceError&);
58 void cancelIfNotFinishing(); 59 void cancelIfNotFinishing();
59 60
60 FrameLoader* frameLoader() const;
61 DocumentLoader* documentLoader() const { return m_documentLoader.get(); }
62 CachedResource* cachedResource() { return m_resource; } 61 CachedResource* cachedResource() { return m_resource; }
63 const ResourceRequest& originalRequest() const { return m_originalRequest; } 62 const ResourceRequest& originalRequest() const { return m_originalRequest; }
64 63
65 ResourceError cancelledError(); 64 ResourceError cancelledError();
66 ResourceError cannotShowURLError(); 65 ResourceError cannotShowURLError();
67 66
68 void setDefersLoading(bool); 67 void setDefersLoading(bool);
69 bool defersLoading() const { return m_defersLoading; } 68 bool defersLoading() const { return m_defersLoading; }
70 69
71 void releaseResources(); 70 void releaseResources();
72 71
73 void didChangePriority(ResourceLoadPriority); 72 void didChangePriority(ResourceLoadPriority);
74 73
75 // ResourceHandleClient 74 // ResourceHandleClient
76 virtual void willSendRequest(ResourceHandle*, ResourceRequest&, const Resour ceResponse& redirectResponse) OVERRIDE; 75 virtual void willSendRequest(ResourceHandle*, ResourceRequest&, const Resour ceResponse& redirectResponse) OVERRIDE;
77 virtual void didSendData(ResourceHandle*, unsigned long long bytesSent, unsi gned long long totalBytesToBeSent) OVERRIDE; 76 virtual void didSendData(ResourceHandle*, unsigned long long bytesSent, unsi gned long long totalBytesToBeSent) OVERRIDE;
78 virtual void didReceiveResponse(ResourceHandle*, const ResourceResponse&) OV ERRIDE; 77 virtual void didReceiveResponse(ResourceHandle*, const ResourceResponse&) OV ERRIDE;
79 virtual void didReceiveData(ResourceHandle*, const char*, int, int encodedDa taLength) OVERRIDE; 78 virtual void didReceiveData(ResourceHandle*, const char*, int, int encodedDa taLength) OVERRIDE;
80 virtual void didReceiveCachedMetadata(ResourceHandle*, const char* data, int length) OVERRIDE; 79 virtual void didReceiveCachedMetadata(ResourceHandle*, const char* data, int length) OVERRIDE;
81 virtual void didFinishLoading(ResourceHandle*, double finishTime) OVERRIDE; 80 virtual void didFinishLoading(ResourceHandle*, double finishTime) OVERRIDE;
82 virtual void didFail(ResourceHandle*, const ResourceError&) OVERRIDE; 81 virtual void didFail(ResourceHandle*, const ResourceError&) OVERRIDE;
83 virtual void didDownloadData(ResourceHandle*, int) OVERRIDE; 82 virtual void didDownloadData(ResourceHandle*, int) OVERRIDE;
84 83
85 const KURL& url() const { return m_request.url(); } 84 const KURL& url() const { return m_request.url(); }
86 ResourceHandle* handle() const { return m_handle.get(); } 85 ResourceHandle* handle() const { return m_handle.get(); }
87 bool shouldSendResourceLoadCallbacks() const { return m_options.sendLoadCall backs == SendCallbacks; } 86 bool shouldSendResourceLoadCallbacks() const { return m_options.sendLoadCall backs == SendCallbacks; }
88 bool shouldSniffContent() const { return m_options.sniffContent == SniffCont ent; } 87 bool shouldSniffContent() const { return m_options.sniffContent == SniffCont ent; }
88 bool isLoadedBy(CachedResourceLoader*) const;
89 89
90 bool reachedTerminalState() const { return m_state == Terminated; } 90 bool reachedTerminalState() const { return m_state == Terminated; }
91
92 const ResourceRequest& request() const { return m_request; } 91 const ResourceRequest& request() const { return m_request; }
93 92
94 void reportMemoryUsage(MemoryObjectInfo*) const; 93 void reportMemoryUsage(MemoryObjectInfo*) const;
95 94
96 private: 95 private:
97 ResourceLoader(DocumentLoader*, CachedResource*, ResourceLoaderOptions); 96 ResourceLoader(ResourceLoaderHost*, CachedResource*, const ResourceLoaderOpt ions&);
98 97
99 bool init(const ResourceRequest&); 98 bool init(const ResourceRequest&);
100 void start(); 99 void start();
101 100
102 void didFinishLoadingOnePart(double finishTime); 101 void didFinishLoadingOnePart(double finishTime);
103 102
104 RefPtr<ResourceHandle> m_handle; 103 RefPtr<ResourceHandle> m_handle;
105 RefPtr<Frame> m_frame; 104 RefPtr<ResourceLoaderHost> m_host;
106 RefPtr<DocumentLoader> m_documentLoader;
107 105
108 ResourceRequest m_request; 106 ResourceRequest m_request;
109 ResourceRequest m_originalRequest; // Before redirects. 107 ResourceRequest m_originalRequest; // Before redirects.
110 108
111 bool m_loadingMultipartContent; 109 bool m_loadingMultipartContent;
112 bool m_notifiedLoadComplete; 110 bool m_notifiedLoadComplete;
113 111
114 bool m_defersLoading; 112 bool m_defersLoading;
115 ResourceRequest m_deferredRequest; 113 ResourceRequest m_deferredRequest;
116 ResourceLoaderOptions m_options; 114 ResourceLoaderOptions m_options;
117 115
118 enum ResourceLoaderState { 116 enum ResourceLoaderState {
119 Uninitialized, 117 Uninitialized,
120 Initialized, 118 Initialized,
121 Finishing, 119 Finishing,
122 Terminated 120 Terminated
123 }; 121 };
124 122
125 class RequestCountTracker { 123 class RequestCountTracker {
126 public: 124 public:
127 RequestCountTracker(CachedResourceLoader*, CachedResource*); 125 RequestCountTracker(ResourceLoaderHost*, CachedResource*);
128 ~RequestCountTracker(); 126 ~RequestCountTracker();
129 private: 127 private:
130 CachedResourceLoader* m_cachedResourceLoader; 128 ResourceLoaderHost* m_host;
131 CachedResource* m_resource; 129 CachedResource* m_resource;
132 }; 130 };
133 131
134 CachedResource* m_resource; 132 CachedResource* m_resource;
135 ResourceLoaderState m_state; 133 ResourceLoaderState m_state;
136 OwnPtr<RequestCountTracker> m_requestCountTracker; 134 OwnPtr<RequestCountTracker> m_requestCountTracker;
137 }; 135 };
138 136
139 } 137 }
140 138
141 #endif 139 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698