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

Side by Side Diff: Source/modules/serviceworkers/RespondWithObserver.h

Issue 180843003: Start to implement FetchEvent for ServiceWorker (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: patch for landing Created 6 years, 9 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
(Empty)
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
3 // found in the LICENSE file.
4
5 #ifndef RespondWithObserver_h
6 #define RespondWithObserver_h
7
8 #include "core/dom/ContextLifecycleObserver.h"
9 #include "wtf/Forward.h"
10 #include "wtf/RefCounted.h"
11
12 namespace WebCore {
13
14 class ExecutionContext;
15 class Response;
16 class ScriptValue;
17
18 // This class observes the service worker's handling of a FetchEvent and
19 // notifies the client.
20 class RespondWithObserver FINAL : public ContextLifecycleObserver, public RefCou nted<RespondWithObserver> {
21 public:
22 static PassRefPtr<RespondWithObserver> create(ExecutionContext*, int eventID );
23 ~RespondWithObserver();
24
25 virtual void contextDestroyed() OVERRIDE;
26
27 void didDispatchEvent();
28
29 // Observes the promise and delays calling didHandleFetchEvent() until the
30 // given promise is resolved or rejected.
31 void respondWith(const ScriptValue&);
32
33 void responseWasRejected();
34 void responseWasFulfilled(const ScriptValue&);
35
36 private:
37 class ThenFunction;
38
39 RespondWithObserver(ExecutionContext*, int eventID);
40
41 // Sends a response back to the client. The null response means to fallback
42 // to native.
43 void sendResponse(PassRefPtr<Response>);
44
45 int m_eventID;
46
47 enum State { Initial, Pending, Done };
48 State m_state;
49 };
50
51 } // namespace WebCore
52
53 #endif // RespondWithObserver_h
OLDNEW
« no previous file with comments | « Source/modules/serviceworkers/FetchEvent.idl ('k') | Source/modules/serviceworkers/RespondWithObserver.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698