Index: content/renderer/service_worker/service_worker_script_context.cc |
diff --git a/content/renderer/service_worker/service_worker_script_context.cc b/content/renderer/service_worker/service_worker_script_context.cc |
index 14661847051a74b91dcb8f6c4c6e3ae4b4e6ccb1..ecc0c9585aee0e313b2d8d96365f5ef7e1f17d18 100644 |
--- a/content/renderer/service_worker/service_worker_script_context.cc |
+++ b/content/renderer/service_worker/service_worker_script_context.cc |
@@ -468,6 +468,7 @@ void ServiceWorkerScriptContext::OnDidGetClientDocuments( |
void ServiceWorkerScriptContext::OnOpenWindowResponse( |
int request_id, |
+ const GURL& url, |
const ServiceWorkerClientInfo& client) { |
TRACE_EVENT0("ServiceWorker", |
"ServiceWorkerScriptContext::OnOpenWindowResponse"); |
@@ -483,7 +484,10 @@ void ServiceWorkerScriptContext::OnOpenWindowResponse( |
web_client.reset(new blink::WebServiceWorkerClientInfo( |
ToWebServiceWorkerClientInfo(client))); |
} |
- callbacks->onSuccess(web_client.release()); |
+ if (url.GetOrigin() != client.url.GetOrigin()) |
+ callbacks->onSuccess(nullptr); |
+ else |
+ callbacks->onSuccess(web_client.release()); |
pending_client_callbacks_.Remove(request_id); |
} |