Chromium Code Reviews| Index: Source/modules/serviceworkers/ServiceWorkerGlobalScope.cpp |
| diff --git a/Source/modules/serviceworkers/ServiceWorkerGlobalScope.cpp b/Source/modules/serviceworkers/ServiceWorkerGlobalScope.cpp |
| index d0b455dfd9bb1dc9b772c2cf460ee669cd71647e..ace8395a7e86b699f3575030d6935d7f6839fbff 100644 |
| --- a/Source/modules/serviceworkers/ServiceWorkerGlobalScope.cpp |
| +++ b/Source/modules/serviceworkers/ServiceWorkerGlobalScope.cpp |
| @@ -65,6 +65,7 @@ PassRefPtrWillBeRawPtr<ServiceWorkerGlobalScope> ServiceWorkerGlobalScope::creat |
| ServiceWorkerGlobalScope::ServiceWorkerGlobalScope(const KURL& url, const String& userAgent, ServiceWorkerThread* thread, double timeOrigin, const SecurityOrigin* starterOrigin, PassOwnPtrWillBeRawPtr<WorkerClients> workerClients) |
| : WorkerGlobalScope(url, userAgent, thread, timeOrigin, starterOrigin, workerClients) |
| , m_fetchManager(adoptPtr(new FetchManager(this))) |
| + , m_scriptEvaluated(false) |
|
kouhei (in TOK)
2014/10/22 09:11:47
Nit: m_didEvaluateScript? https://code.google.com/
shimazu
2014/10/23 00:52:22
Done.
|
| { |
| } |
| @@ -72,6 +73,11 @@ ServiceWorkerGlobalScope::~ServiceWorkerGlobalScope() |
| { |
| } |
| +void ServiceWorkerGlobalScope::didEvaluateWorkerScript() |
| +{ |
| + m_scriptEvaluated = true; |
| +} |
| + |
| void ServiceWorkerGlobalScope::stopFetch() |
| { |
| m_fetchManager.clear(); |
| @@ -165,6 +171,20 @@ void ServiceWorkerGlobalScope::close(ExceptionState& exceptionState) |
| exceptionState.throwDOMException(InvalidAccessError, "Not supported."); |
| } |
| +bool ServiceWorkerGlobalScope::addEventListener(const AtomicString& eventType, PassRefPtr<EventListener> listener, bool useCapture) |
| +{ |
| + if (m_scriptEvaluated) { |
| + if (eventType == EventTypeNames::install) { |
| + RefPtrWillBeRawPtr<ConsoleMessage> consoleMessage = ConsoleMessage::create(JSMessageSource, WarningMessageLevel, "Event handler of 'install' event must be added on the initial evaluation of worker script."); |
| + addMessageToWorkerConsole(consoleMessage.release()); |
| + } else if (eventType == EventTypeNames::activate) { |
| + RefPtrWillBeRawPtr<ConsoleMessage> consoleMessage = ConsoleMessage::create(JSMessageSource, WarningMessageLevel, "Event handler of 'activate' event must be added on the initial evaluation of worker script."); |
| + addMessageToWorkerConsole(consoleMessage.release()); |
| + } |
| + } |
| + return WorkerGlobalScope::addEventListener(eventType, listener, useCapture); |
| +} |
| + |
| const AtomicString& ServiceWorkerGlobalScope::interfaceName() const |
| { |
| return EventTargetNames::ServiceWorkerGlobalScope; |