| OLD | NEW | 
|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include "config.h" | 5 #include "config.h" | 
| 6 #include "ServiceWorkerContainerClient.h" | 6 #include "ServiceWorkerContainerClient.h" | 
| 7 | 7 | 
| 8 #include "core/dom/Document.h" | 8 #include "core/dom/Document.h" | 
| 9 #include "core/dom/ExecutionContext.h" | 9 #include "core/dom/ExecutionContext.h" | 
| 10 #include "core/frame/LocalFrame.h" | 10 #include "core/frame/LocalFrame.h" | 
| (...skipping 17 matching lines...) Expand all  Loading... | 
| 28     return "ServiceWorkerContainerClient"; | 28     return "ServiceWorkerContainerClient"; | 
| 29 } | 29 } | 
| 30 | 30 | 
| 31 ServiceWorkerContainerClient* ServiceWorkerContainerClient::from(ExecutionContex
    t* context) | 31 ServiceWorkerContainerClient* ServiceWorkerContainerClient::from(ExecutionContex
    t* context) | 
| 32 { | 32 { | 
| 33     if (context->isDocument()) { | 33     if (context->isDocument()) { | 
| 34         Document* document = toDocument(context); | 34         Document* document = toDocument(context); | 
| 35         if (!document->frame()) | 35         if (!document->frame()) | 
| 36             return 0; | 36             return 0; | 
| 37 | 37 | 
| 38         ServiceWorkerContainerClient* client = static_cast<ServiceWorkerContaine
    rClient*>(DocumentSupplement::from(document, supplementName())); | 38         ServiceWorkerContainerClient* client = static_cast<ServiceWorkerContaine
    rClient*>(WillBeHeapSupplement<Document>::from(document, supplementName())); | 
| 39         if (client) | 39         if (client) | 
| 40             return client; | 40             return client; | 
| 41 | 41 | 
| 42         // If it's not provided yet, create it lazily. | 42         // If it's not provided yet, create it lazily. | 
| 43         document->DocumentSupplementable::provideSupplement(ServiceWorkerContain
    erClient::supplementName(), ServiceWorkerContainerClient::create(document->frame
    ()->loader().client()->createServiceWorkerProvider())); | 43         document->WillBeHeapSupplementable<Document>::provideSupplement(ServiceW
    orkerContainerClient::supplementName(), ServiceWorkerContainerClient::create(doc
    ument->frame()->loader().client()->createServiceWorkerProvider())); | 
| 44         return static_cast<ServiceWorkerContainerClient*>(DocumentSupplement::fr
    om(document, supplementName())); | 44         return static_cast<ServiceWorkerContainerClient*>(WillBeHeapSupplement<D
    ocument>::from(document, supplementName())); | 
| 45     } | 45     } | 
| 46 | 46 | 
| 47     if (context->isServiceWorkerGlobalScope()) { | 47     if (context->isServiceWorkerGlobalScope()) { | 
| 48         ServiceWorkerContainerClient* client = static_cast<ServiceWorkerContaine
    rClient*>(WillBeHeapSupplement<WorkerClients>::from(toWorkerGlobalScope(context)
    ->clients(), supplementName())); | 48         ServiceWorkerContainerClient* client = static_cast<ServiceWorkerContaine
    rClient*>(WillBeHeapSupplement<WorkerClients>::from(toWorkerGlobalScope(context)
    ->clients(), supplementName())); | 
| 49         ASSERT(client); | 49         ASSERT(client); | 
| 50         return client; | 50         return client; | 
| 51     } | 51     } | 
| 52 | 52 | 
| 53     ASSERT(context->isWorkerGlobalScope()); | 53     ASSERT(context->isWorkerGlobalScope()); | 
| 54     return static_cast<ServiceWorkerContainerClient*>(WillBeHeapSupplement<Worke
    rClients>::from(toWorkerGlobalScope(context)->clients(), supplementName())); | 54     return static_cast<ServiceWorkerContainerClient*>(WillBeHeapSupplement<Worke
    rClients>::from(toWorkerGlobalScope(context)->clients(), supplementName())); | 
| 55 } | 55 } | 
| 56 | 56 | 
| 57 ServiceWorkerContainerClient::ServiceWorkerContainerClient(PassOwnPtr<WebService
    WorkerProvider> provider) | 57 ServiceWorkerContainerClient::ServiceWorkerContainerClient(PassOwnPtr<WebService
    WorkerProvider> provider) | 
| 58     : m_provider(provider) | 58     : m_provider(provider) | 
| 59 { | 59 { | 
| 60 } | 60 } | 
| 61 | 61 | 
| 62 void provideServiceWorkerContainerClientToWorker(WorkerClients* clients, PassOwn
    Ptr<WebServiceWorkerProvider> provider) | 62 void provideServiceWorkerContainerClientToWorker(WorkerClients* clients, PassOwn
    Ptr<WebServiceWorkerProvider> provider) | 
| 63 { | 63 { | 
| 64     clients->provideSupplement(ServiceWorkerContainerClient::supplementName(), S
    erviceWorkerContainerClient::create(provider)); | 64     clients->provideSupplement(ServiceWorkerContainerClient::supplementName(), S
    erviceWorkerContainerClient::create(provider)); | 
| 65 } | 65 } | 
| 66 | 66 | 
| 67 } // namespace blink | 67 } // namespace blink | 
| OLD | NEW | 
|---|