Index: webkit/appcache/appcache_storage_impl.cc |
=================================================================== |
--- webkit/appcache/appcache_storage_impl.cc (revision 64524) |
+++ webkit/appcache/appcache_storage_impl.cc (working copy) |
@@ -553,6 +553,7 @@ |
std::set<int64> cache_ids_in_use_; |
AppCacheEntry entry_; |
AppCacheEntry fallback_entry_; |
+ GURL fallback_url_; |
int64 cache_id_; |
GURL manifest_url_; |
}; |
@@ -636,7 +637,10 @@ |
NOTREACHED() << "A cache without a group is not expected."; |
continue; |
} |
+ if (entry_record.flags & AppCacheEntry::FOREIGN) |
+ continue; |
kinuko
2010/11/02 07:47:23
do we want to check this before looking up a group
michaeln
2010/11/02 20:25:36
Yes, thank you!
|
cache_id_ = iter->cache_id; |
+ fallback_url_ = iter->fallback_entry_url; |
manifest_url_ = group_record.manifest_url; |
fallback_entry_ = AppCacheEntry( |
entry_record.flags, entry_record.response_id); |
@@ -651,7 +655,8 @@ |
void AppCacheStorageImpl::FindMainResponseTask::RunCompleted() { |
storage_->CheckPolicyAndCallOnMainResponseFound( |
- &delegates_, url_, entry_, fallback_entry_, cache_id_, manifest_url_); |
+ &delegates_, url_, entry_, fallback_url_, fallback_entry_, |
+ cache_id_, manifest_url_); |
} |
// MarkEntryAsForeignTask ------- |
@@ -1047,15 +1052,17 @@ |
if (delegate_ref->delegate) { |
DelegateReferenceVector delegates(1, delegate_ref); |
CheckPolicyAndCallOnMainResponseFound( |
- &delegates, url, found_entry, AppCacheEntry(), |
+ &delegates, url, found_entry, |
+ GURL(), AppCacheEntry(), |
cache.get() ? cache->cache_id() : kNoCacheId, |
group.get() ? group->manifest_url() : GURL()); |
} |
} |
void AppCacheStorageImpl::CheckPolicyAndCallOnMainResponseFound( |
- DelegateReferenceVector* delegates, const GURL& url, |
- const AppCacheEntry& entry, const AppCacheEntry& fallback_entry, |
+ DelegateReferenceVector* delegates, |
+ const GURL& url, const AppCacheEntry& entry, |
+ const GURL& fallback_url, const AppCacheEntry& fallback_entry, |
int64 cache_id, const GURL& manifest_url) { |
if (!manifest_url.is_empty()) { |
// Check the policy prior to returning a main resource from the appcache. |
@@ -1063,7 +1070,8 @@ |
if (policy && !policy->CanLoadAppCache(manifest_url)) { |
FOR_EACH_DELEGATE( |
(*delegates), |
- OnMainResponseFound(url, AppCacheEntry(), AppCacheEntry(), |
+ OnMainResponseFound(url, AppCacheEntry(), |
+ GURL(), AppCacheEntry(), |
kNoCacheId, manifest_url, true)); |
return; |
} |
@@ -1071,7 +1079,8 @@ |
FOR_EACH_DELEGATE( |
(*delegates), |
- OnMainResponseFound(url, entry, fallback_entry, |
+ OnMainResponseFound(url, entry, |
+ fallback_url, fallback_entry, |
cache_id, manifest_url, false)); |
} |