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

Side by Side Diff: webkit/appcache/appcache_update_job.h

Issue 5384002: net: Remove typedef net::URLRequest URLRequest; (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review Created 10 years 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 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef WEBKIT_APPCACHE_APPCACHE_UPDATE_JOB_H_ 5 #ifndef WEBKIT_APPCACHE_APPCACHE_UPDATE_JOB_H_
6 #define WEBKIT_APPCACHE_APPCACHE_UPDATE_JOB_H_ 6 #define WEBKIT_APPCACHE_APPCACHE_UPDATE_JOB_H_
7 7
8 #include <deque> 8 #include <deque>
9 #include <map> 9 #include <map>
10 #include <set> 10 #include <set>
(...skipping 11 matching lines...) Expand all
22 #include "webkit/appcache/appcache_interfaces.h" 22 #include "webkit/appcache/appcache_interfaces.h"
23 #include "webkit/appcache/appcache_response.h" 23 #include "webkit/appcache/appcache_response.h"
24 #include "webkit/appcache/appcache_storage.h" 24 #include "webkit/appcache/appcache_storage.h"
25 25
26 namespace appcache { 26 namespace appcache {
27 27
28 class UpdateJobInfo; 28 class UpdateJobInfo;
29 class HostNotifier; 29 class HostNotifier;
30 30
31 // Application cache Update algorithm and state. 31 // Application cache Update algorithm and state.
32 class AppCacheUpdateJob : public URLRequest::Delegate, 32 class AppCacheUpdateJob : public net::URLRequest::Delegate,
33 public AppCacheStorage::Delegate, 33 public AppCacheStorage::Delegate,
34 public AppCacheHost::Observer { 34 public AppCacheHost::Observer {
35 public: 35 public:
36 AppCacheUpdateJob(AppCacheService* service, AppCacheGroup* group); 36 AppCacheUpdateJob(AppCacheService* service, AppCacheGroup* group);
37 ~AppCacheUpdateJob(); 37 ~AppCacheUpdateJob();
38 38
39 // Triggers the update process or adds more info if this update is already 39 // Triggers the update process or adds more info if this update is already
40 // in progress. 40 // in progress.
41 void StartUpdate(AppCacheHost* host, const GURL& new_master_resource); 41 void StartUpdate(AppCacheHost* host, const GURL& new_master_resource);
42 42
43 private: 43 private:
44 friend class ScopedRunnableMethodFactory<AppCacheUpdateJob>; 44 friend class ScopedRunnableMethodFactory<AppCacheUpdateJob>;
45 friend class AppCacheUpdateJobTest; 45 friend class AppCacheUpdateJobTest;
46 friend class UpdateJobInfo; 46 friend class UpdateJobInfo;
47 47
48 // Master entries have multiple hosts, for example, the same page is opened 48 // Master entries have multiple hosts, for example, the same page is opened
49 // in different tabs. 49 // in different tabs.
50 typedef std::vector<AppCacheHost*> PendingHosts; 50 typedef std::vector<AppCacheHost*> PendingHosts;
51 typedef std::map<GURL, PendingHosts> PendingMasters; 51 typedef std::map<GURL, PendingHosts> PendingMasters;
52 typedef std::map<GURL, URLRequest*> PendingUrlFetches; 52 typedef std::map<GURL, net::URLRequest*> PendingUrlFetches;
53 typedef std::map<int64, GURL> LoadingResponses; 53 typedef std::map<int64, GURL> LoadingResponses;
54 54
55 static const int kRerunDelayMs = 1000; 55 static const int kRerunDelayMs = 1000;
56 56
57 // TODO(michaeln): Rework the set of states vs update types vs stored states. 57 // TODO(michaeln): Rework the set of states vs update types vs stored states.
58 // The NO_UPDATE state is really more of an update type. For all update types 58 // The NO_UPDATE state is really more of an update type. For all update types
59 // storing the results is relevant. 59 // storing the results is relevant.
60 60
61 enum UpdateType { 61 enum UpdateType {
62 UNKNOWN_TYPE, 62 UNKNOWN_TYPE,
(...skipping 21 matching lines...) Expand all
84 84
85 struct UrlToFetch { 85 struct UrlToFetch {
86 UrlToFetch(const GURL& url, bool checked, AppCacheResponseInfo* info); 86 UrlToFetch(const GURL& url, bool checked, AppCacheResponseInfo* info);
87 ~UrlToFetch(); 87 ~UrlToFetch();
88 88
89 GURL url; 89 GURL url;
90 bool storage_checked; 90 bool storage_checked;
91 scoped_refptr<AppCacheResponseInfo> existing_response_info; 91 scoped_refptr<AppCacheResponseInfo> existing_response_info;
92 }; 92 };
93 93
94 UpdateJobInfo* GetUpdateJobInfo(URLRequest* request); 94 UpdateJobInfo* GetUpdateJobInfo(net::URLRequest* request);
95 95
96 // Methods for URLRequest::Delegate. 96 // Overridden from net::URLRequest::Delegate:
97 void OnResponseStarted(URLRequest* request); 97 virtual void OnResponseStarted(net::URLRequest* request);
98 void OnReadCompleted(URLRequest* request, int bytes_read); 98 virtual void OnReadCompleted(net::URLRequest* request, int bytes_read);
99 void OnReceivedRedirect(URLRequest* request, 99 virtual void OnReceivedRedirect(net::URLRequest* request,
100 const GURL& new_url, 100 const GURL& new_url,
101 bool* defer_redirect); 101 bool* defer_redirect);
102 // TODO(jennb): any other delegate callbacks to handle? certificate? 102 // TODO(jennb): any other delegate callbacks to handle? certificate?
103 103
104 // Methods for AppCacheStorage::Delegate. 104 // Methods for AppCacheStorage::Delegate.
105 void OnResponseInfoLoaded(AppCacheResponseInfo* response_info, 105 void OnResponseInfoLoaded(AppCacheResponseInfo* response_info,
106 int64 response_id); 106 int64 response_id);
107 void OnGroupAndNewestCacheStored(AppCacheGroup* group, AppCache* newest_cache, 107 void OnGroupAndNewestCacheStored(AppCacheGroup* group, AppCache* newest_cache,
108 bool success, bool would_exceed_quota); 108 bool success, bool would_exceed_quota);
109 void OnGroupMadeObsolete(AppCacheGroup* group, bool success); 109 void OnGroupMadeObsolete(AppCacheGroup* group, bool success);
110 110
111 // Methods for AppCacheHost::Observer. 111 // Methods for AppCacheHost::Observer.
112 void OnCacheSelectionComplete(AppCacheHost* host) {} // N/A 112 void OnCacheSelectionComplete(AppCacheHost* host) {} // N/A
113 void OnDestructionImminent(AppCacheHost* host); 113 void OnDestructionImminent(AppCacheHost* host);
114 114
115 void CheckPolicy(); 115 void CheckPolicy();
116 void OnPolicyCheckComplete(int rv); 116 void OnPolicyCheckComplete(int rv);
117 117
118 void HandleCacheFailure(const std::string& error_message); 118 void HandleCacheFailure(const std::string& error_message);
119 119
120 void FetchManifest(bool is_first_fetch); 120 void FetchManifest(bool is_first_fetch);
121 121
122 // Add extra conditional HTTP headers to the request based on the 122 // Add extra conditional HTTP headers to the request based on the
123 // currently cached response headers. 123 // currently cached response headers.
124 void AddConditionalHeaders(URLRequest* request, 124 void AddConditionalHeaders(net::URLRequest* request,
125 const net::HttpResponseInfo* info); 125 const net::HttpResponseInfo* info);
126 126
127 void OnResponseCompleted(URLRequest* request); 127 void OnResponseCompleted(net::URLRequest* request);
128 128
129 // Retries a 503 request with retry-after header of 0. 129 // Retries a 503 request with retry-after header of 0.
130 // Returns true if request should be retried and deletes original request. 130 // Returns true if request should be retried and deletes original request.
131 bool RetryRequest(URLRequest* request); 131 bool RetryRequest(net::URLRequest* request);
132 132
133 void ReadResponseData(URLRequest* request); 133 void ReadResponseData(net::URLRequest* request);
134 134
135 // Returns false if response data is processed asynchronously, in which 135 // Returns false if response data is processed asynchronously, in which
136 // case ReadResponseData will be invoked when it is safe to continue 136 // case ReadResponseData will be invoked when it is safe to continue
137 // reading more response data from the request. 137 // reading more response data from the request.
138 bool ConsumeResponseData(URLRequest* request, 138 bool ConsumeResponseData(net::URLRequest* request,
139 UpdateJobInfo* info, 139 UpdateJobInfo* info,
140 int bytes_read); 140 int bytes_read);
141 void OnWriteResponseComplete(int result, URLRequest* request, 141 void OnWriteResponseComplete(int result, net::URLRequest* request,
142 UpdateJobInfo* info); 142 UpdateJobInfo* info);
143 143
144 void HandleManifestFetchCompleted(URLRequest* request); 144 void HandleManifestFetchCompleted(net::URLRequest* request);
145 void ContinueHandleManifestFetchCompleted(bool changed); 145 void ContinueHandleManifestFetchCompleted(bool changed);
146 146
147 void HandleUrlFetchCompleted(URLRequest* request); 147 void HandleUrlFetchCompleted(net::URLRequest* request);
148 void HandleMasterEntryFetchCompleted(URLRequest* request); 148 void HandleMasterEntryFetchCompleted(net::URLRequest* request);
149 149
150 void HandleManifestRefetchCompleted(URLRequest* request); 150 void HandleManifestRefetchCompleted(net::URLRequest* request);
151 void OnManifestInfoWriteComplete(int result); 151 void OnManifestInfoWriteComplete(int result);
152 void OnManifestDataWriteComplete(int result); 152 void OnManifestDataWriteComplete(int result);
153 153
154 void StoreGroupAndCache(); 154 void StoreGroupAndCache();
155 155
156 void NotifySingleHost(AppCacheHost* host, EventID event_id); 156 void NotifySingleHost(AppCacheHost* host, EventID event_id);
157 void NotifyAllAssociatedHosts(EventID event_id); 157 void NotifyAllAssociatedHosts(EventID event_id);
158 void NotifyAllProgress(const GURL& url); 158 void NotifyAllProgress(const GURL& url);
159 void NotifyAllFinalProgress(); 159 void NotifyAllFinalProgress();
160 void NotifyAllError(const std::string& error_message); 160 void NotifyAllError(const std::string& error_message);
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
245 // Helper container to track which urls have not been fetched yet. URLs are 245 // Helper container to track which urls have not been fetched yet. URLs are
246 // removed when the fetch is initiated. Flag indicates whether an attempt 246 // removed when the fetch is initiated. Flag indicates whether an attempt
247 // to load the URL from storage has already been tried and failed. 247 // to load the URL from storage has already been tried and failed.
248 std::deque<UrlToFetch> urls_to_fetch_; 248 std::deque<UrlToFetch> urls_to_fetch_;
249 249
250 // Helper container to track which urls are being loaded from response 250 // Helper container to track which urls are being loaded from response
251 // storage. 251 // storage.
252 LoadingResponses loading_responses_; 252 LoadingResponses loading_responses_;
253 253
254 // Keep track of pending URL requests so we can cancel them if necessary. 254 // Keep track of pending URL requests so we can cancel them if necessary.
255 URLRequest* manifest_url_request_; 255 net::URLRequest* manifest_url_request_;
256 PendingUrlFetches pending_url_fetches_; 256 PendingUrlFetches pending_url_fetches_;
257 257
258 // Temporary storage of manifest response data for parsing and comparison. 258 // Temporary storage of manifest response data for parsing and comparison.
259 std::string manifest_data_; 259 std::string manifest_data_;
260 std::string manifest_refetch_data_; 260 std::string manifest_refetch_data_;
261 scoped_ptr<net::HttpResponseInfo> manifest_response_info_; 261 scoped_ptr<net::HttpResponseInfo> manifest_response_info_;
262 scoped_ptr<AppCacheResponseWriter> manifest_response_writer_; 262 scoped_ptr<AppCacheResponseWriter> manifest_response_writer_;
263 scoped_refptr<net::IOBuffer> read_manifest_buffer_; 263 scoped_refptr<net::IOBuffer> read_manifest_buffer_;
264 std::string loaded_manifest_data_; 264 std::string loaded_manifest_data_;
265 scoped_ptr<AppCacheResponseReader> manifest_response_reader_; 265 scoped_ptr<AppCacheResponseReader> manifest_response_reader_;
(...skipping 24 matching lines...) Expand all
290 policy_callback_; 290 policy_callback_;
291 291
292 FRIEND_TEST_ALL_PREFIXES(AppCacheGroupTest, QueueUpdate); 292 FRIEND_TEST_ALL_PREFIXES(AppCacheGroupTest, QueueUpdate);
293 293
294 DISALLOW_COPY_AND_ASSIGN(AppCacheUpdateJob); 294 DISALLOW_COPY_AND_ASSIGN(AppCacheUpdateJob);
295 }; 295 };
296 296
297 } // namespace appcache 297 } // namespace appcache
298 298
299 #endif // WEBKIT_APPCACHE_APPCACHE_UPDATE_JOB_H_ 299 #endif // WEBKIT_APPCACHE_APPCACHE_UPDATE_JOB_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698