summaryrefslogtreecommitdiffstats
path: root/webkit/appcache/appcache_storage.cc
diff options
context:
space:
mode:
authormichaeln@google.com <michaeln@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-21 19:18:36 +0000
committermichaeln@google.com <michaeln@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-21 19:18:36 +0000
commit4252f6098889f2c5a8649d1688b269e53a51d42d (patch)
treebbb1040a665b91ac297685ee6b7add579822a911 /webkit/appcache/appcache_storage.cc
parent29a6c9738ebb608d40567189452fd9c19f55569c (diff)
downloadchromium_src-4252f6098889f2c5a8649d1688b269e53a51d42d.zip
chromium_src-4252f6098889f2c5a8649d1688b269e53a51d42d.tar.gz
chromium_src-4252f6098889f2c5a8649d1688b269e53a51d42d.tar.bz2
More groundwork for filestream based response storage.
This CL touches many files, but it amounts to mindless plumbing of a group_id value. This doesn't involve any new database or fileio or task scheduling. In order to read or write a response, callers now need to provide the group_id of the corresponding manifest, so the AppCacheStorage CreateRepsonseReader() and CreateResponseWriter() methods now take this additional parameter. The current disk_cache based impl doesn't use this param for anything, but the filestream based impl will use it to keep responses for a group in a particular subdirectory. When looking up the main resource for a page load via FindResponseForMainRequest, the group_id needs to be returned so the response may later be read, the AppCacheStorage::Delegate OnMainResponseFound() method has a param for that. A bunch of callsites, tests, and mocks are updated accordingly. BUG=78359 Review URL: http://codereview.chromium.org/8343018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@106755 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/appcache/appcache_storage.cc')
-rw-r--r--webkit/appcache/appcache_storage.cc9
1 files changed, 6 insertions, 3 deletions
diff --git a/webkit/appcache/appcache_storage.cc b/webkit/appcache/appcache_storage.cc
index 47e64db..7247c40 100644
--- a/webkit/appcache/appcache_storage.cc
+++ b/webkit/appcache/appcache_storage.cc
@@ -39,10 +39,12 @@ AppCacheStorage::DelegateReference::~DelegateReference() {
AppCacheStorage::ResponseInfoLoadTask::ResponseInfoLoadTask(
const GURL& manifest_url,
+ int64 group_id,
int64 response_id,
AppCacheStorage* storage)
: storage_(storage),
manifest_url_(manifest_url),
+ group_id_(group_id),
response_id_(response_id),
info_buffer_(new HttpResponseInfoIOBuffer),
ALLOW_THIS_IN_INITIALIZER_LIST(read_callback_(
@@ -58,7 +60,7 @@ void AppCacheStorage::ResponseInfoLoadTask::StartIfNeeded() {
if (reader_.get())
return;
reader_.reset(
- storage_->CreateResponseReader(manifest_url_, response_id_));
+ storage_->CreateResponseReader(manifest_url_, group_id_, response_id_));
reader_->ReadInfo(info_buffer_, &read_callback_);
}
@@ -76,15 +78,16 @@ void AppCacheStorage::ResponseInfoLoadTask::OnReadComplete(int result) {
}
void AppCacheStorage::LoadResponseInfo(
- const GURL& manifest_url, int64 id, Delegate* delegate) {
+ const GURL& manifest_url, int64 group_id, int64 id, Delegate* delegate) {
AppCacheResponseInfo* info = working_set_.GetResponseInfo(id);
if (info) {
delegate->OnResponseInfoLoaded(info, id);
return;
}
ResponseInfoLoadTask* info_load =
- GetOrCreateResponseInfoLoadTask(manifest_url, id);
+ GetOrCreateResponseInfoLoadTask(manifest_url, group_id, id);
DCHECK(manifest_url == info_load->manifest_url());
+ DCHECK(group_id == info_load->group_id());
DCHECK(id == info_load->response_id());
info_load->AddDelegate(GetOrCreateDelegateReference(delegate));
info_load->StartIfNeeded();