Index: webkit/appcache/web_application_cache_host_impl.cc |
=================================================================== |
--- webkit/appcache/web_application_cache_host_impl.cc (revision 53710) |
+++ webkit/appcache/web_application_cache_host_impl.cc (working copy) |
@@ -21,6 +21,7 @@ |
using WebKit::WebURLRequest; |
using WebKit::WebURL; |
using WebKit::WebURLResponse; |
+using WebKit::WebVector; |
namespace appcache { |
@@ -87,10 +88,12 @@ |
all_hosts()->Remove(host_id_); |
} |
-void WebApplicationCacheHostImpl::OnCacheSelected(int64 selected_cache_id, |
- appcache::Status status) { |
- status_ = status; |
+void WebApplicationCacheHostImpl::OnCacheSelected( |
+ const appcache::AppCacheInfo& info) { |
+ status_ = info.status; |
has_status_ = true; |
+ cache_info_ = info; |
+ client_->didChangeCacheAssociation(); |
} |
void WebApplicationCacheHostImpl::OnStatusChanged(appcache::Status status) { |
@@ -169,6 +172,38 @@ |
GURL()); |
} |
+void WebApplicationCacheHostImpl::getAssociatedCacheInfo( |
+ WebApplicationCacheHost::CacheInfo* info) { |
+ if (!cache_info_.is_complete) |
+ return; |
+ info->manifestURL = cache_info_.manifest_url; |
+ info->creationTime = cache_info_.creation_time.ToDoubleT(); |
+ info->updateTime = cache_info_.last_update_time.ToDoubleT(); |
+ info->totalSize = cache_info_.size; |
+} |
+ |
+void WebApplicationCacheHostImpl::getResourceList( |
+ WebVector<ResourceInfo>* resources) { |
+ if (!cache_info_.is_complete) |
+ return; |
+ std::vector<AppCacheResourceInfo> resource_infos; |
+ backend_->GetResourceList(host_id_, &resource_infos); |
+ |
+ WebVector<ResourceInfo> web_resources(resource_infos.size()); |
+ // Convert resource_infos to WebKit API. |
+ for (size_t i = 0; i < resource_infos.size(); ++i) { |
+ web_resources[i].size = resource_infos[i].size; |
+ web_resources[i].isMaster = resource_infos[i].is_master; |
+ web_resources[i].isExplicit = resource_infos[i].is_explicit; |
+ web_resources[i].isManifest = resource_infos[i].is_manifest; |
+ web_resources[i].isForeign = resource_infos[i].is_foreign; |
+ web_resources[i].isFallback = resource_infos[i].is_fallback; |
+ web_resources[i].url = resource_infos[i].url; |
+ } |
+ |
+ resources->swap(web_resources); |
+} |
+ |
bool WebApplicationCacheHostImpl::selectCacheWithManifest( |
const WebURL& manifest_url) { |
// Reset any previous status values we've received from the backend |