Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(41)

Side by Side Diff: Source/modules/serviceworkers/ServiceWorker.cpp

Issue 330173003: Make ServiceWorker an ActiveDOMObject (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: fix hasPendingActivity Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 60
61 virtual ScriptValue call(ScriptValue value) OVERRIDE 61 virtual ScriptValue call(ScriptValue value) OVERRIDE
62 { 62 {
63 m_observer->onPromiseResolved(); 63 m_observer->onPromiseResolved();
64 return value; 64 return value;
65 } 65 }
66 66
67 RefPtr<ServiceWorker> m_observer; 67 RefPtr<ServiceWorker> m_observer;
68 }; 68 };
69 69
70 bool ServiceWorker::hasPendingActivity() const
71 {
72 if (m_contextStopped)
73 return false;
74 return m_outerWorker->state() != blink::WebServiceWorkerStateDeactivated;
75 }
76
77 void ServiceWorker::stop()
78 {
79 m_contextStopped = true;
dominicc (has gone to gerrit) 2014/06/12 22:23:38 Would it make sense to tie m_contextStopped and m_
falken 2014/06/13 19:22:59 Hmm, right it would be good to make the possible c
80 }
81
70 const AtomicString& ServiceWorker::interfaceName() const 82 const AtomicString& ServiceWorker::interfaceName() const
71 { 83 {
72 return EventTargetNames::ServiceWorker; 84 return EventTargetNames::ServiceWorker;
73 } 85 }
74 86
75 void ServiceWorker::postMessage(PassRefPtr<SerializedScriptValue> message, const MessagePortArray* ports, ExceptionState& exceptionState) 87 void ServiceWorker::postMessage(PassRefPtr<SerializedScriptValue> message, const MessagePortArray* ports, ExceptionState& exceptionState)
76 { 88 {
77 // Disentangle the port in preparation for sending it to the remote context. 89 // Disentangle the port in preparation for sending it to the remote context.
78 OwnPtr<MessagePortChannelArray> channels = MessagePort::disentanglePorts(por ts, exceptionState); 90 OwnPtr<MessagePortChannelArray> channels = MessagePort::disentanglePorts(por ts, exceptionState);
79 if (exceptionState.hadException()) 91 if (exceptionState.hadException())
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
181 RefPtr<ServiceWorker> worker = adoptRef(new ServiceWorker(executionContext, outerWorker)); 193 RefPtr<ServiceWorker> worker = adoptRef(new ServiceWorker(executionContext, outerWorker));
182 worker->suspendIfNeeded(); 194 worker->suspendIfNeeded();
183 return worker.release(); 195 return worker.release();
184 } 196 }
185 197
186 ServiceWorker::ServiceWorker(ExecutionContext* executionContext, PassOwnPtr<blin k::WebServiceWorker> worker) 198 ServiceWorker::ServiceWorker(ExecutionContext* executionContext, PassOwnPtr<blin k::WebServiceWorker> worker)
187 : AbstractWorker(executionContext) 199 : AbstractWorker(executionContext)
188 , WebServiceWorkerProxy(this) 200 , WebServiceWorkerProxy(this)
189 , m_outerWorker(worker) 201 , m_outerWorker(worker)
190 , m_isPromisePending(false) 202 , m_isPromisePending(false)
203 , m_contextStopped(false)
191 { 204 {
192 ScriptWrappable::init(this); 205 ScriptWrappable::init(this);
193 ASSERT(m_outerWorker); 206 ASSERT(m_outerWorker);
194 m_outerWorker->setProxy(this); 207 m_outerWorker->setProxy(this);
195 } 208 }
196 209
197 } // namespace WebCore 210 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698