| Index: Source/modules/serviceworkers/ServiceWorkerContainer.cpp
|
| diff --git a/Source/modules/serviceworkers/ServiceWorkerContainer.cpp b/Source/modules/serviceworkers/ServiceWorkerContainer.cpp
|
| index daa6211147cc4f3f73877e14b68dcda802e08368..d70de11ea8f64788db9ea1b6012468344023258c 100644
|
| --- a/Source/modules/serviceworkers/ServiceWorkerContainer.cpp
|
| +++ b/Source/modules/serviceworkers/ServiceWorkerContainer.cpp
|
| @@ -41,6 +41,7 @@
|
| #include "core/dom/MessagePort.h"
|
| #include "core/events/MessageEvent.h"
|
| #include "core/frame/LocalDOMWindow.h"
|
| +#include "modules/EventTargetModules.h"
|
| #include "modules/serviceworkers/ServiceWorker.h"
|
| #include "modules/serviceworkers/ServiceWorkerContainerClient.h"
|
| #include "modules/serviceworkers/ServiceWorkerError.h"
|
| @@ -99,6 +100,8 @@ void ServiceWorkerContainer::trace(Visitor* visitor)
|
| visitor->trace(m_controller);
|
| visitor->trace(m_readyRegistration);
|
| visitor->trace(m_ready);
|
| + EventTargetWithInlineData::trace(visitor);
|
| + HeapSupplementable<ServiceWorkerContainer>::trace(visitor);
|
| }
|
|
|
| ScriptPromise ServiceWorkerContainer::registerServiceWorker(ScriptState* scriptState, const String& url, const RegistrationOptions& options)
|
| @@ -231,13 +234,15 @@ static void deleteIfNoExistingOwner(WebServiceWorker* serviceWorker)
|
| delete serviceWorker;
|
| }
|
|
|
| -void ServiceWorkerContainer::setController(WebServiceWorker* serviceWorker)
|
| +void ServiceWorkerContainer::setController(WebServiceWorker* serviceWorker, bool shouldNotifyControllerChange)
|
| {
|
| if (!executionContext()) {
|
| deleteIfNoExistingOwner(serviceWorker);
|
| return;
|
| }
|
| m_controller = ServiceWorker::from(executionContext(), serviceWorker);
|
| + if (shouldNotifyControllerChange)
|
| + dispatchEvent(Event::create(EventTypeNames::controllerchange));
|
| }
|
|
|
| void ServiceWorkerContainer::setReadyRegistration(WebServiceWorkerRegistration* registration)
|
| @@ -270,6 +275,11 @@ void ServiceWorkerContainer::dispatchMessageEvent(const WebString& message, cons
|
| executionContext()->executingWindow()->dispatchEvent(MessageEvent::create(ports.release(), value));
|
| }
|
|
|
| +const AtomicString& ServiceWorkerContainer::interfaceName() const
|
| +{
|
| + return EventTargetNames::ServiceWorkerContainer;
|
| +}
|
| +
|
| ServiceWorkerContainer::ServiceWorkerContainer(ExecutionContext* executionContext)
|
| : ContextLifecycleObserver(executionContext)
|
| , m_provider(0)
|
|
|