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

Side by Side Diff: content/browser/cache_storage/cache_storage_cache.h

Issue 2242883002: [CacheStorage] Use QueryCache everywhere (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address comments from PS9 Created 4 years, 4 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 CONTENT_BROWSER_CACHE_STORAGE_CACHE_STORAGE_CACHE_H_ 5 #ifndef CONTENT_BROWSER_CACHE_STORAGE_CACHE_STORAGE_CACHE_H_
6 #define CONTENT_BROWSER_CACHE_STORAGE_CACHE_STORAGE_CACHE_H_ 6 #define CONTENT_BROWSER_CACHE_STORAGE_CACHE_STORAGE_CACHE_H_
7 7
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <vector> 10 #include <vector>
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 const GURL& origin, 79 const GURL& origin,
80 const std::string& cache_name, 80 const std::string& cache_name,
81 CacheStorage* cache_storage, 81 CacheStorage* cache_storage,
82 const base::FilePath& path, 82 const base::FilePath& path,
83 scoped_refptr<net::URLRequestContextGetter> request_context_getter, 83 scoped_refptr<net::URLRequestContextGetter> request_context_getter,
84 scoped_refptr<storage::QuotaManagerProxy> quota_manager_proxy, 84 scoped_refptr<storage::QuotaManagerProxy> quota_manager_proxy,
85 base::WeakPtr<storage::BlobStorageContext> blob_context); 85 base::WeakPtr<storage::BlobStorageContext> blob_context);
86 86
87 // Returns ERROR_TYPE_NOT_FOUND if not found. 87 // Returns ERROR_TYPE_NOT_FOUND if not found.
88 void Match(std::unique_ptr<ServiceWorkerFetchRequest> request, 88 void Match(std::unique_ptr<ServiceWorkerFetchRequest> request,
89 const CacheStorageCacheQueryParams& match_params,
89 const ResponseCallback& callback); 90 const ResponseCallback& callback);
90 91
91 // Returns CACHE_STORAGE_OK and matched responses in this cache. If there are 92 // Returns CACHE_STORAGE_OK and matched responses in this cache. If there are
92 // no responses, returns CACHE_STORAGE_OK and an empty vector. 93 // no responses, returns CACHE_STORAGE_OK and an empty vector.
93 void MatchAll(std::unique_ptr<ServiceWorkerFetchRequest> request, 94 void MatchAll(std::unique_ptr<ServiceWorkerFetchRequest> request,
94 const CacheStorageCacheQueryParams& match_params, 95 const CacheStorageCacheQueryParams& match_params,
95 const ResponsesCallback& callback); 96 const ResponsesCallback& callback);
96 97
97 // Writes the side data (ex: V8 code cache) for the specified cache entry. 98 // Writes the side data (ex: V8 code cache) for the specified cache entry.
98 // If it doesn't exist, or the |expected_response_time| differs from the 99 // If it doesn't exist, or the |expected_response_time| differs from the
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 // Async operations in progress will cancel and not run their callbacks. 153 // Async operations in progress will cancel and not run their callbacks.
153 virtual ~CacheStorageCache(); 154 virtual ~CacheStorageCache();
154 155
155 base::FilePath path() const { return path_; } 156 base::FilePath path() const { return path_; }
156 157
157 std::string cache_name() const { return cache_name_; } 158 std::string cache_name() const { return cache_name_; }
158 159
159 base::WeakPtr<CacheStorageCache> AsWeakPtr(); 160 base::WeakPtr<CacheStorageCache> AsWeakPtr();
160 161
161 private: 162 private:
163 enum class QueryCacheType { REQUESTS_AND_RESPONSES, CACHE_ENTRIES };
164
162 friend class base::RefCounted<CacheStorageCache>; 165 friend class base::RefCounted<CacheStorageCache>;
163 friend class TestCacheStorageCache; 166 friend class TestCacheStorageCache;
164 167
165 struct OpenAllEntriesContext; 168 struct OpenAllEntriesContext;
166 struct PutContext; 169 struct PutContext;
167 170
168 // The backend progresses from uninitialized, to open, to closed, and cannot 171 // The backend progresses from uninitialized, to open, to closed, and cannot
169 // reverse direction. The open step may be skipped. 172 // reverse direction. The open step may be skipped.
170 enum BackendState { 173 enum BackendState {
171 BACKEND_UNINITIALIZED, // No backend, create backend on first operation. 174 BACKEND_UNINITIALIZED, // No backend, create backend on first operation.
(...skipping 17 matching lines...) Expand all
189 scoped_refptr<net::URLRequestContextGetter> request_context_getter, 192 scoped_refptr<net::URLRequestContextGetter> request_context_getter,
190 scoped_refptr<storage::QuotaManagerProxy> quota_manager_proxy, 193 scoped_refptr<storage::QuotaManagerProxy> quota_manager_proxy,
191 base::WeakPtr<storage::BlobStorageContext> blob_context); 194 base::WeakPtr<storage::BlobStorageContext> blob_context);
192 195
193 // Returns all entries in this cache. 196 // Returns all entries in this cache.
194 void OpenAllEntries(const OpenAllEntriesCallback& callback); 197 void OpenAllEntries(const OpenAllEntriesCallback& callback);
195 void DidOpenNextEntry(std::unique_ptr<OpenAllEntriesContext> entries_context, 198 void DidOpenNextEntry(std::unique_ptr<OpenAllEntriesContext> entries_context,
196 const OpenAllEntriesCallback& callback, 199 const OpenAllEntriesCallback& callback,
197 int rv); 200 int rv);
198 201
202 // Runs |callback| with matching requests/response data. The data provided
203 // in the QueryCacheResults depends on the |query_type|. If |query_type| is
204 // CACHE_ENTRIES then only out_entries is valid. If |query_type| is
205 // REQUESTS_AND_RESPONSES then only out_requests, out_responses, and
206 // out_blob_data_handles are valid.
199 void QueryCache(std::unique_ptr<ServiceWorkerFetchRequest> request, 207 void QueryCache(std::unique_ptr<ServiceWorkerFetchRequest> request,
200 const CacheStorageCacheQueryParams& options, 208 const CacheStorageCacheQueryParams& options,
209 QueryCacheType query_type,
201 const QueryCacheResultsCallback& callback); 210 const QueryCacheResultsCallback& callback);
211 void QueryCacheDidOpenEntry(
212 std::unique_ptr<QueryCacheResults> query_cache_results,
213 std::unique_ptr<disk_cache::Entry*> entry,
214 int rv);
202 void QueryCacheDidOpenAllEntries( 215 void QueryCacheDidOpenAllEntries(
203 std::unique_ptr<QueryCacheResults> query_cache_results, 216 std::unique_ptr<QueryCacheResults> query_cache_results,
204 std::unique_ptr<OpenAllEntriesContext> entries_context, 217 std::unique_ptr<OpenAllEntriesContext> entries_context,
205 CacheStorageError error); 218 CacheStorageError error);
206 void QueryCacheProcessNextEntry( 219 void QueryCacheProcessNextEntry(
207 std::unique_ptr<QueryCacheResults> query_cache_results, 220 std::unique_ptr<QueryCacheResults> query_cache_results,
208 const Entries::iterator& iter); 221 const Entries::iterator& iter);
209 void QueryCacheDidReadMetadata( 222 void QueryCacheDidReadMetadata(
210 std::unique_ptr<QueryCacheResults> query_cache_results, 223 std::unique_ptr<QueryCacheResults> query_cache_results,
211 const Entries::iterator& iter, 224 const Entries::iterator& iter,
212 std::unique_ptr<CacheMetadata> metadata); 225 std::unique_ptr<CacheMetadata> metadata);
213 226
214 // Match callbacks 227 // Match callbacks
215 void MatchImpl(std::unique_ptr<ServiceWorkerFetchRequest> request, 228 void MatchImpl(std::unique_ptr<ServiceWorkerFetchRequest> request,
229 const CacheStorageCacheQueryParams& match_params,
216 const ResponseCallback& callback); 230 const ResponseCallback& callback);
217 void MatchDidOpenEntry(std::unique_ptr<ServiceWorkerFetchRequest> request, 231 void MatchDidMatchAll(const ResponseCallback& callback,
218 const ResponseCallback& callback, 232 CacheStorageError match_all_error,
219 std::unique_ptr<disk_cache::Entry*> entry_ptr, 233 std::unique_ptr<Responses> match_all_responses,
220 int rv); 234 std::unique_ptr<BlobDataHandles> match_all_handles);
221 void MatchDidReadMetadata(std::unique_ptr<ServiceWorkerFetchRequest> request,
222 const ResponseCallback& callback,
223 disk_cache::ScopedEntryPtr entry,
224 std::unique_ptr<CacheMetadata> headers);
225 235
226 // MatchAll callbacks 236 // MatchAll callbacks
227 void MatchAllImpl(std::unique_ptr<ServiceWorkerFetchRequest> request, 237 void MatchAllImpl(std::unique_ptr<ServiceWorkerFetchRequest> request,
228 const CacheStorageCacheQueryParams& options, 238 const CacheStorageCacheQueryParams& options,
229 const ResponsesCallback& callback); 239 const ResponsesCallback& callback);
230 void MatchAllDidQueryCache( 240 void MatchAllDidQueryCache(
231 const ResponsesCallback& callback, 241 const ResponsesCallback& callback,
232 CacheStorageError error, 242 CacheStorageError error,
233 std::unique_ptr<QueryCacheResults> query_cache_results); 243 std::unique_ptr<QueryCacheResults> query_cache_results);
234 244
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
271 disk_cache::ScopedEntryPtr entry, 281 disk_cache::ScopedEntryPtr entry,
272 int expected_bytes, 282 int expected_bytes,
273 int rv); 283 int rv);
274 284
275 // Puts the request and response object in the cache. The response body (if 285 // Puts the request and response object in the cache. The response body (if
276 // present) is stored in the cache, but not the request body. Returns OK on 286 // present) is stored in the cache, but not the request body. Returns OK on
277 // success. 287 // success.
278 void Put(const CacheStorageBatchOperation& operation, 288 void Put(const CacheStorageBatchOperation& operation,
279 const ErrorCallback& callback); 289 const ErrorCallback& callback);
280 void PutImpl(std::unique_ptr<PutContext> put_context); 290 void PutImpl(std::unique_ptr<PutContext> put_context);
281 void PutDidDelete(std::unique_ptr<PutContext> put_context, 291 void PutDidDoomEntry(std::unique_ptr<PutContext> put_context, int rv);
282 CacheStorageError delete_error);
283 void PutDidGetUsageAndQuota(std::unique_ptr<PutContext> put_context, 292 void PutDidGetUsageAndQuota(std::unique_ptr<PutContext> put_context,
284 storage::QuotaStatusCode status_code, 293 storage::QuotaStatusCode status_code,
285 int64_t usage, 294 int64_t usage,
286 int64_t quota); 295 int64_t quota);
287 void PutDidCreateEntry(std::unique_ptr<disk_cache::Entry*> entry_ptr, 296 void PutDidCreateEntry(std::unique_ptr<disk_cache::Entry*> entry_ptr,
288 std::unique_ptr<PutContext> put_context, 297 std::unique_ptr<PutContext> put_context,
289 int rv); 298 int rv);
290 void PutDidWriteHeaders(std::unique_ptr<PutContext> put_context, 299 void PutDidWriteHeaders(std::unique_ptr<PutContext> put_context,
291 int expected_bytes, 300 int expected_bytes,
292 int rv); 301 int rv);
293 void PutDidWriteBlobToCache(std::unique_ptr<PutContext> put_context, 302 void PutDidWriteBlobToCache(std::unique_ptr<PutContext> put_context,
294 BlobToDiskCacheIDMap::KeyType blob_to_cache_key, 303 BlobToDiskCacheIDMap::KeyType blob_to_cache_key,
295 disk_cache::ScopedEntryPtr entry, 304 disk_cache::ScopedEntryPtr entry,
296 bool success); 305 bool success);
297 306
298 // Asynchronously calculates the current cache size, notifies the quota 307 // Asynchronously calculates the current cache size, notifies the quota
299 // manager of any change from the last report, and sets cache_size_ to the new 308 // manager of any change from the last report, and sets cache_size_ to the new
300 // size. 309 // size.
301 void UpdateCacheSize(); 310 void UpdateCacheSize();
302 void UpdateCacheSizeGotSize(std::unique_ptr<CacheStorageCacheHandle>, 311 void UpdateCacheSizeGotSize(std::unique_ptr<CacheStorageCacheHandle>,
303 int current_cache_size); 312 int current_cache_size);
304 313
305 // Returns ERROR_NOT_FOUND if not found. Otherwise deletes and returns OK. 314 // Returns ERROR_NOT_FOUND if not found. Otherwise deletes and returns OK.
306 void Delete(const CacheStorageBatchOperation& operation, 315 void Delete(const CacheStorageBatchOperation& operation,
307 const ErrorCallback& callback); 316 const ErrorCallback& callback);
308 void DeleteImpl(std::unique_ptr<ServiceWorkerFetchRequest> request, 317 void DeleteImpl(std::unique_ptr<ServiceWorkerFetchRequest> request,
309 const CacheStorageCacheQueryParams& match_params, 318 const CacheStorageCacheQueryParams& match_params,
310 const ErrorCallback& callback); 319 const ErrorCallback& callback);
311 void DeleteDidOpenAllEntries( 320 void DeleteDidQueryCache(
312 std::unique_ptr<ServiceWorkerFetchRequest> request,
313 const ErrorCallback& callback, 321 const ErrorCallback& callback,
314 std::unique_ptr<OpenAllEntriesContext> entries_context, 322 CacheStorageError error,
315 CacheStorageError error); 323 std::unique_ptr<QueryCacheResults> query_cache_results);
316 void DeleteDidOpenEntry(const GURL& origin,
317 std::unique_ptr<ServiceWorkerFetchRequest> request,
318 const CacheStorageCache::ErrorCallback& callback,
319 std::unique_ptr<disk_cache::Entry*> entryptr,
320 int rv);
321 324
322 // Keys callbacks. 325 // Keys callbacks.
323 void KeysImpl(std::unique_ptr<ServiceWorkerFetchRequest> request, 326 void KeysImpl(std::unique_ptr<ServiceWorkerFetchRequest> request,
324 const CacheStorageCacheQueryParams& options, 327 const CacheStorageCacheQueryParams& options,
325 const RequestsCallback& callback); 328 const RequestsCallback& callback);
326 void KeysDidQueryCache( 329 void KeysDidQueryCache(
327 const RequestsCallback& callback, 330 const RequestsCallback& callback,
328 CacheStorageError error, 331 CacheStorageError error,
329 std::unique_ptr<QueryCacheResults> query_cache_results); 332 std::unique_ptr<QueryCacheResults> query_cache_results);
330 333
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
386 bool memory_only_; 389 bool memory_only_;
387 390
388 base::WeakPtrFactory<CacheStorageCache> weak_ptr_factory_; 391 base::WeakPtrFactory<CacheStorageCache> weak_ptr_factory_;
389 392
390 DISALLOW_COPY_AND_ASSIGN(CacheStorageCache); 393 DISALLOW_COPY_AND_ASSIGN(CacheStorageCache);
391 }; 394 };
392 395
393 } // namespace content 396 } // namespace content
394 397
395 #endif // CONTENT_BROWSER_CACHE_STORAGE_CACHE_STORAGE_CACHE_H_ 398 #endif // CONTENT_BROWSER_CACHE_STORAGE_CACHE_STORAGE_CACHE_H_
OLDNEW
« no previous file with comments | « content/browser/cache_storage/cache_storage.cc ('k') | content/browser/cache_storage/cache_storage_cache.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698