Index: Source/modules/serviceworkers/ServiceWorkerContainerClient.cpp |
diff --git a/Source/modules/serviceworkers/ServiceWorkerContainerClient.cpp b/Source/modules/serviceworkers/ServiceWorkerContainerClient.cpp |
index fca53dfd79bb8bcd49e3c88883c6e0786021bc9f..e0f70dea39c5bedc92aae0d4c0738851b9252639 100644 |
--- a/Source/modules/serviceworkers/ServiceWorkerContainerClient.cpp |
+++ b/Source/modules/serviceworkers/ServiceWorkerContainerClient.cpp |
@@ -32,12 +32,14 @@ ServiceWorkerContainerClient* ServiceWorkerContainerClient::from(ExecutionContex |
{ |
if (context->isDocument()) { |
Document* document = toDocument(context); |
+ if (!document->frame()) |
+ return 0; |
+ |
ServiceWorkerContainerClient* client = static_cast<ServiceWorkerContainerClient*>(Supplement<Page>::from(document->page(), supplementName())); |
if (client) |
return client; |
- // If it's not provided yet create it lazily. |
- ASSERT(document->frame()); |
+ // If it's not provided yet, create it lazily. |
document->page()->provideSupplement(ServiceWorkerContainerClient::supplementName(), ServiceWorkerContainerClient::create(document->frame()->loader().client()->createServiceWorkerProvider())); |
return static_cast<ServiceWorkerContainerClient*>(Supplement<Page>::from(document->page(), supplementName())); |
} |