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

Side by Side Diff: content/browser/service_worker/service_worker_cache.cc

Issue 649203005: [ServiceWorkerCache] Put should replace an existing entry to meet spec. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@staticize
Patch Set: Created 6 years, 2 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 #include "content/browser/service_worker/service_worker_cache.h" 5 #include "content/browser/service_worker/service_worker_cache.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/files/file_path.h" 9 #include "base/files/file_path.h"
10 #include "base/guid.h" 10 #include "base/guid.h"
(...skipping 799 matching lines...) Expand 10 before | Expand all | Expand 10 after
810 810
811 // static 811 // static
812 void ServiceWorkerCache::PutImpl(scoped_ptr<PutContext> put_context) { 812 void ServiceWorkerCache::PutImpl(scoped_ptr<PutContext> put_context) {
813 if (!put_context->cache || !put_context->cache->backend_) { 813 if (!put_context->cache || !put_context->cache->backend_) {
814 put_context->callback.Run(ErrorTypeStorage, 814 put_context->callback.Run(ErrorTypeStorage,
815 scoped_ptr<ServiceWorkerResponse>(), 815 scoped_ptr<ServiceWorkerResponse>(),
816 scoped_ptr<storage::BlobDataHandle>()); 816 scoped_ptr<storage::BlobDataHandle>());
817 return; 817 return;
818 } 818 }
819 819
820 ServiceWorkerFetchRequest* request_ptr = put_context->request.get();
821 disk_cache::Backend* backend_ptr = put_context->cache->backend_.get();
822
823 net::CompletionCallback doom_entry_callback =
824 base::Bind(PutDidDoomEntry, base::Passed(put_context.Pass()));
825
826 int rv = backend_ptr->DoomEntry(request_ptr->url.spec(), doom_entry_callback);
827 if (rv != net::ERR_IO_PENDING)
828 doom_entry_callback.Run(rv);
829 }
830
831 // static
832 void ServiceWorkerCache::PutDidDoomEntry(scoped_ptr<PutContext> put_context,
833 int doom_rv) {
834 if (!put_context->cache || !put_context->cache->backend_) {
835 put_context->callback.Run(ErrorTypeStorage,
836 scoped_ptr<ServiceWorkerResponse>(),
837 scoped_ptr<storage::BlobDataHandle>());
838 }
839
820 disk_cache::Entry** entry_ptr = &put_context->cache_entry; 840 disk_cache::Entry** entry_ptr = &put_context->cache_entry;
821 ServiceWorkerFetchRequest* request_ptr = put_context->request.get(); 841 ServiceWorkerFetchRequest* request_ptr = put_context->request.get();
822 disk_cache::Backend* backend_ptr = put_context->cache->backend_.get(); 842 disk_cache::Backend* backend_ptr = put_context->cache->backend_.get();
823 843
824 net::CompletionCallback create_entry_callback = 844 net::CompletionCallback create_entry_callback =
825 base::Bind(PutDidCreateEntry, base::Passed(put_context.Pass())); 845 base::Bind(PutDidCreateEntry, base::Passed(put_context.Pass()));
826 846
827 int create_rv = backend_ptr->CreateEntry( 847 int create_rv = backend_ptr->CreateEntry(
828 request_ptr->url.spec(), entry_ptr, create_entry_callback); 848 request_ptr->url.spec(), entry_ptr, create_entry_callback);
829 849
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after
1094 initialized_ = true; 1114 initialized_ = true;
1095 for (std::vector<base::Closure>::iterator it = init_callbacks_.begin(); 1115 for (std::vector<base::Closure>::iterator it = init_callbacks_.begin();
1096 it != init_callbacks_.end(); 1116 it != init_callbacks_.end();
1097 ++it) { 1117 ++it) {
1098 it->Run(); 1118 it->Run();
1099 } 1119 }
1100 init_callbacks_.clear(); 1120 init_callbacks_.clear();
1101 } 1121 }
1102 1122
1103 } // namespace content 1123 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698