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

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

Issue 314953005: Add an ASSERT about cross-world wrapper leakage into ScriptValue (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: 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 // 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 #ifndef RespondWithObserver_h 5 #ifndef RespondWithObserver_h
6 #define RespondWithObserver_h 6 #define RespondWithObserver_h
7 7
8 #include "core/dom/ContextLifecycleObserver.h" 8 #include "core/dom/ContextLifecycleObserver.h"
9 #include "wtf/Forward.h" 9 #include "wtf/Forward.h"
10 #include "wtf/RefCounted.h" 10 #include "wtf/RefCounted.h"
11 11
12 namespace WebCore { 12 namespace WebCore {
13 13
14 class ExecutionContext; 14 class ExecutionContext;
15 class Response; 15 class Response;
16 class ScriptState;
16 class ScriptValue; 17 class ScriptValue;
17 18
18 // This class observes the service worker's handling of a FetchEvent and 19 // This class observes the service worker's handling of a FetchEvent and
19 // notifies the client. 20 // notifies the client.
20 class RespondWithObserver FINAL : public ContextLifecycleObserver, public RefCou nted<RespondWithObserver> { 21 class RespondWithObserver FINAL : public ContextLifecycleObserver, public RefCou nted<RespondWithObserver> {
21 public: 22 public:
22 static PassRefPtr<RespondWithObserver> create(ExecutionContext*, int eventID ); 23 static PassRefPtr<RespondWithObserver> create(ExecutionContext*, int eventID );
23 ~RespondWithObserver(); 24 ~RespondWithObserver();
24 25
25 virtual void contextDestroyed() OVERRIDE; 26 virtual void contextDestroyed() OVERRIDE;
26 27
27 void didDispatchEvent(); 28 void didDispatchEvent();
28 29
29 // Observes the promise and delays calling didHandleFetchEvent() until the 30 // Observes the promise and delays calling didHandleFetchEvent() until the
30 // given promise is resolved or rejected. 31 // given promise is resolved or rejected.
31 void respondWith(const ScriptValue&); 32 void respondWith(ScriptState*, const ScriptValue&);
32 33
33 void responseWasRejected(); 34 void responseWasRejected();
34 void responseWasFulfilled(const ScriptValue&); 35 void responseWasFulfilled(const ScriptValue&);
35 36
36 private: 37 private:
37 class ThenFunction; 38 class ThenFunction;
38 39
39 RespondWithObserver(ExecutionContext*, int eventID); 40 RespondWithObserver(ExecutionContext*, int eventID);
40 41
41 // Sends a response back to the client. The null response means to fallback 42 // Sends a response back to the client. The null response means to fallback
42 // to native. 43 // to native.
43 void sendResponse(PassRefPtr<Response>); 44 void sendResponse(PassRefPtr<Response>);
44 45
45 int m_eventID; 46 int m_eventID;
46 47
47 enum State { Initial, Pending, Done }; 48 enum State { Initial, Pending, Done };
48 State m_state; 49 State m_state;
49 }; 50 };
50 51
51 } // namespace WebCore 52 } // namespace WebCore
52 53
53 #endif // RespondWithObserver_h 54 #endif // RespondWithObserver_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698