Index: chrome/browser/renderer_host/resource_request_details.h |
diff --git a/chrome/browser/renderer_host/resource_request_details.h b/chrome/browser/renderer_host/resource_request_details.h |
index c34af0f1403c0027a3cc6dbb796dc93b0aaa6c13..ad0df97db73e2e037237862509950e8caa1e71b6 100644 |
--- a/chrome/browser/renderer_host/resource_request_details.h |
+++ b/chrome/browser/renderer_host/resource_request_details.h |
@@ -46,8 +46,18 @@ class ResourceRequestDetails { |
// such as ssl state etc. |
const WorkerProcessHost::WorkerInstance* worker_instance = |
WorkerService::GetInstance()->FindWorkerInstance(info->child_id()); |
- origin_child_id_ = |
- worker_instance ? worker_instance->renderer_id() : info->child_id(); |
+ if (worker_instance) { |
+ DCHECK(!worker_instance->worker_document_set()->IsEmpty()); |
+ const WorkerDocumentSet::DocumentInfoSet& parents = |
+ worker_instance->worker_document_set()->documents(); |
+ // TODO(atwilson): need to notify all associated renderers in the case |
+ // of ssl state change (http://crbug.com/25357). For now, just notify |
+ // the first one (works for dedicated workers and shared workers with |
+ // a single process). |
+ origin_child_id_ = parents.begin()->renderer_id(); |
+ } else { |
+ origin_child_id_ = info->child_id(); |
+ } |
} |
virtual ~ResourceRequestDetails() {} |