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

Side by Side Diff: public/web/WebServiceWorkerContextProxy.h

Issue 383063008: Expose the ServiceWorker's v8 context to embedders. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@pinned
Patch Set: Add a test and some comments Created 6 years, 5 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
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 15 matching lines...) Expand all
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 */ 29 */
30 30
31 #ifndef WebServiceWorkerContextProxy_h 31 #ifndef WebServiceWorkerContextProxy_h
32 #define WebServiceWorkerContextProxy_h 32 #define WebServiceWorkerContextProxy_h
33 33
34 #include "public/platform/WebMessagePortChannel.h" 34 #include "public/platform/WebMessagePortChannel.h"
35 35
36 namespace v8 {
37 class Context;
38 class Isolate;
39 template <class T>
40 class Handle;
41 }
42
36 namespace blink { 43 namespace blink {
37 44
38 class WebServiceWorkerRequest; 45 class WebServiceWorkerRequest;
39 class WebString; 46 class WebString;
40 47
41 // A proxy interface to talk to the worker's GlobalScope implementation. 48 // A proxy interface to talk to the worker's GlobalScope implementation.
42 // All methods of this class must be called on the worker thread. 49 // All methods of this class must be called on the worker thread.
43 class WebServiceWorkerContextProxy { 50 class WebServiceWorkerContextProxy {
44 public: 51 public:
45 virtual ~WebServiceWorkerContextProxy() { } 52 virtual ~WebServiceWorkerContextProxy() { }
46 53
47 virtual void dispatchActivateEvent(int eventID) = 0; 54 virtual void dispatchActivateEvent(int eventID) = 0;
48 // FIXME: This needs to pass the active service worker info. 55 // FIXME: This needs to pass the active service worker info.
49 virtual void dispatchInstallEvent(int installEventID) = 0; 56 virtual void dispatchInstallEvent(int installEventID) = 0;
50 virtual void dispatchFetchEvent(int fetchEventID, const WebServiceWorkerRequ est& webRequest) = 0; 57 virtual void dispatchFetchEvent(int fetchEventID, const WebServiceWorkerRequ est& webRequest) = 0;
51 58
52 virtual void dispatchMessageEvent(const WebString& message, const WebMessage PortChannelArray& channels) = 0; 59 virtual void dispatchMessageEvent(const WebString& message, const WebMessage PortChannelArray& channels) = 0;
53 60
54 virtual void dispatchPushEvent(int eventID, const WebString& data) = 0; 61 virtual void dispatchPushEvent(int eventID, const WebString& data) = 0;
55 62
56 // Once the ServiceWorker has finished handling the sync event 63 // Once the ServiceWorker has finished handling the sync event
57 // didHandleSyncEvent is called on the context client. 64 // didHandleSyncEvent is called on the context client.
58 virtual void dispatchSyncEvent(int syncEventID) = 0; 65 virtual void dispatchSyncEvent(int syncEventID) = 0;
66
67 // Returns the raw v8 context for the Service Worker. This must be called
68 // with an active HandleScope, and the handle is non-null in non-cleanup
69 // tasks from workerContextStarted() to willDestroyWorkerContext().
70 virtual v8::Handle<v8::Context> v8Context() = 0;
59 }; 71 };
60 72
61 } // namespace blink 73 } // namespace blink
62 74
63 #endif // WebServiceWorkerContextProxy_h 75 #endif // WebServiceWorkerContextProxy_h
OLDNEW
« Source/web/tests/ServiceWorkerGlobalScopeProxyTest.cpp ('K') | « Source/web/web.gypi ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698