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

Unified Diff: content/browser/cache_storage/cache_storage_cache.cc

Issue 1829663002: test Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 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
Index: content/browser/cache_storage/cache_storage_cache.cc
diff --git a/content/browser/cache_storage/cache_storage_cache.cc b/content/browser/cache_storage/cache_storage_cache.cc
index 1e83b43c664c994c7fb37f480d314ae649147e5e..8992a830c8c4d5521c51a1bce9083bde295f01e7 100644
--- a/content/browser/cache_storage/cache_storage_cache.cc
+++ b/content/browser/cache_storage/cache_storage_cache.cc
@@ -506,6 +506,75 @@ bool CacheStorageCache::LazyInitialize() {
return false;
}
+void CacheStorageCache::QueryCache(scoped_ptr<ServiceWorkerFetchRequest> request,
+ const CacheStorageCacheQueryParams& options) {
+ printf("perform query cache\n");
+}
+
+void CacheStorageCache::OpenEntry(scoped_ptr<ServiceWorkerFetchRequest> request,
+ const OpenAllEntriesCallback& callback) {
+ scoped_ptr<OpenAllEntriesContext> entries_context(new OpenAllEntriesContext);
+
+ disk_cache::Entry** entry_ptr = &entries_context->enumerated_entry;
+
+ net::CompletionCallback open_entry_callback = base::Bind(
+ &CacheStorageCache::DidOpenEntry, weak_ptr_factory_.GetWeakPtr(),
+ base::Passed(std::move(entries_context)), callback);
+
+ int rv = backend_->OpenEntry(request.get()->url.spec(), entry_ptr, open_entry_callback);
+ if (rv != net::ERR_IO_PENDING)
+ open_entry_callback.Run(rv);
+}
+
+void CacheStorageCache::DidOpenEntry(scoped_ptr<OpenAllEntriesContext> entries_context,
+ const OpenAllEntriesCallback& callback,
+ int rv) {
+ if (rv != net::OK) {
+ callback.Run(std::move(entries_context), CACHE_STORAGE_ERROR_NOT_FOUND);
+ return;
+ }
+
+ //DCHECK(entries_context->enumerated_entry);
+
+ // Store the entry.
+ entries_context->entries.push_back(entries_context->enumerated_entry);
+ entries_context->enumerated_entry = nullptr;
+
+ callback.Run(std::move(entries_context), CACHE_STORAGE_OK);
+}
+
+void CacheStorageCache::OpenEntries(scoped_ptr<ServiceWorkerFetchRequest> request,
+ const CacheStorageCacheQueryParams& options,
+ const OpenAllEntriesCallback& callback) {
+ scoped_ptr<OpenAllEntriesContext> entries_context(new OpenAllEntriesContext);
+
+
+ int rv;
+ if (request->url.is_empty() || options.ignore_search) {
+ entries_context->backend_iterator = backend_->CreateIterator();
+ disk_cache::Backend::Iterator& iterator = *entries_context->backend_iterator;
+ disk_cache::Entry** enumerated_entry = &entries_context->enumerated_entry;
+
+ net::CompletionCallback open_entry_callback = base::Bind(
+ &CacheStorageCache::DidOpenNextEntry, weak_ptr_factory_.GetWeakPtr(),
+ /*base::Passed(std::move(request)), options,*/ base::Passed(std::move(entries_context)), callback);
+
+ rv = iterator.OpenNextEntry(enumerated_entry, open_entry_callback);
+ if (rv != net::ERR_IO_PENDING)
+ open_entry_callback.Run(rv);
+ } else {
+ disk_cache::Entry** entry_ptr = &entries_context->enumerated_entry;
+
+ net::CompletionCallback open_entry_callback = base::Bind(
+ &CacheStorageCache::DidOpenEntry, weak_ptr_factory_.GetWeakPtr(),
+ /*base::Passed(std::move(request)), options,*/ base::Passed(std::move(entries_context)), callback);
+
+ rv = backend_->OpenEntry(request->url.spec(), entry_ptr, open_entry_callback);
+ if (rv != net::ERR_IO_PENDING)
+ open_entry_callback.Run(rv);
+ }
+}
+
void CacheStorageCache::OpenAllEntries(const OpenAllEntriesCallback& callback) {
scoped_ptr<OpenAllEntriesContext> entries_context(new OpenAllEntriesContext);
entries_context->backend_iterator = backend_->CreateIterator();
@@ -1049,6 +1118,12 @@ void CacheStorageCache::DeleteImpl(
return;
}
+ ServiceWorkerFetchRequest* r = new ServiceWorkerFetchRequest(*request);
+ OpenEntries(scoped_ptr<ServiceWorkerFetchRequest>(r), match_params, base::Bind(&CacheStorageCache::DeleteDidOpenAllEntries,
+ weak_ptr_factory_.GetWeakPtr(),
+ base::Passed(std::move(request)), callback));
+/*
+
if (match_params.ignore_search) {
OpenAllEntries(base::Bind(&CacheStorageCache::DeleteDidOpenAllEntries,
weak_ptr_factory_.GetWeakPtr(),
@@ -1056,23 +1131,21 @@ void CacheStorageCache::DeleteImpl(
return;
}
- scoped_ptr<disk_cache::Entry*> entry(new disk_cache::Entry*);
-
- disk_cache::Entry** entry_ptr = entry.get();
-
- ServiceWorkerFetchRequest* request_ptr = request.get();
-
- net::CompletionCallback open_entry_callback = base::Bind(
- &CacheStorageCache::DeleteDidOpenEntry, weak_ptr_factory_.GetWeakPtr(),
- origin_, base::Passed(std::move(request)), callback,
- base::Passed(std::move(entry)));
+ ServiceWorkerFetchRequest* r = new ServiceWorkerFetchRequest(*request);
+ OpenEntry(scoped_ptr<ServiceWorkerFetchRequest>(r), base::Bind(&CacheStorageCache::DeleteDidOpenAllEntries,
+ weak_ptr_factory_.GetWeakPtr(),
+ base::Passed(std::move(request)), callback));*/
+}
- int rv = backend_->OpenEntry(request_ptr->url.spec(), entry_ptr,
- open_entry_callback);
- if (rv != net::ERR_IO_PENDING)
- open_entry_callback.Run(rv);
+void CacheStorageCache::DeleteDidOpenAllEntries2(
+ scoped_ptr<ServiceWorkerFetchRequest> request,
+ const ErrorCallback& callback,
+ scoped_ptr<OpenAllEntriesContext> entries_context,
+ CacheStorageError error) {
+ callback.Run(CACHE_STORAGE_OK);
}
+
void CacheStorageCache::DeleteDidOpenAllEntries(
scoped_ptr<ServiceWorkerFetchRequest> request,
const ErrorCallback& callback,
@@ -1083,12 +1156,12 @@ void CacheStorageCache::DeleteDidOpenAllEntries(
return;
}
- GURL request_url_without_query = RemoveQueryParam(request->url);
- for (Entries::iterator iter = entries_context->entries.begin();
- iter != entries_context->entries.end(); iter++) {
- disk_cache::Entry* entry(*iter);
- if (request_url_without_query == RemoveQueryParam(GURL(entry->GetKey())))
- entry->Doom();
+ if (request) {
+ GURL request_url_without_query = RemoveQueryParam(request->url);
+ for (size_t i = 0, max = entries_context->entries.size(); i < max; ++i) {
+ if (request_url_without_query == RemoveQueryParam(GURL(entries_context->entries[i]->GetKey())))
+ entries_context->entries[i]->Doom();
+ }
}
entries_context.reset();
« no previous file with comments | « content/browser/cache_storage/cache_storage_cache.h ('k') | content/browser/cache_storage/cache_storage_cache_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698