| Index: webkit/appcache/web_application_cache_host_impl.cc
|
| ===================================================================
|
| --- webkit/appcache/web_application_cache_host_impl.cc (revision 81647)
|
| +++ webkit/appcache/web_application_cache_host_impl.cc (working copy)
|
| @@ -53,7 +53,7 @@
|
| }
|
|
|
| WebApplicationCacheHostImpl* WebApplicationCacheHostImpl::FromFrame(
|
| - WebFrame* frame) {
|
| + const WebFrame* frame) {
|
| if (!frame)
|
| return NULL;
|
| WebDataSource* data_source = frame->dataSource();
|
| @@ -166,10 +166,15 @@
|
| DCHECK(method == StringToUpperASCII(method));
|
|
|
| if (frame) {
|
| - if (WebApplicationCacheHostImpl* parent = FromFrame(frame->parent()))
|
| - backend_->SetSpawningHostId(host_id_, parent->host_id());
|
| - else if (WebApplicationCacheHostImpl* opener = FromFrame(frame->opener()))
|
| - backend_->SetSpawningHostId(host_id_, opener->host_id());
|
| + const WebFrame* spawning_frame = frame->parent();
|
| + if (!spawning_frame)
|
| + spawning_frame = frame->opener();
|
| + if (!spawning_frame)
|
| + spawning_frame = frame;
|
| +
|
| + WebApplicationCacheHostImpl* spawning_host = FromFrame(spawning_frame);
|
| + if (spawning_host && (spawning_host != this))
|
| + backend_->SetSpawningHostId(host_id_, spawning_host->host_id());
|
| }
|
| }
|
|
|
|
|