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

Side by Side Diff: content/child/service_worker/service_worker_dispatcher.h

Issue 182863004: Wire provider_id into scriptable API provider to start listening events (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 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
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 CONTENT_CHILD_SERVICE_WORKER_SERVICE_WORKER_DISPATCHER_H_ 5 #ifndef CONTENT_CHILD_SERVICE_WORKER_SERVICE_WORKER_DISPATCHER_H_
6 #define CONTENT_CHILD_SERVICE_WORKER_SERVICE_WORKER_DISPATCHER_H_ 6 #define CONTENT_CHILD_SERVICE_WORKER_SERVICE_WORKER_DISPATCHER_H_
7 7
8 #include "base/id_map.h" 8 #include "base/id_map.h"
9 #include "base/memory/ref_counted.h" 9 #include "base/memory/ref_counted.h"
10 #include "base/strings/string16.h" 10 #include "base/strings/string16.h"
(...skipping 20 matching lines...) Expand all
31 // registration of the service worker, exposed to renderer and worker 31 // registration of the service worker, exposed to renderer and worker
32 // scripts through methods like navigator.registerServiceWorker(). 32 // scripts through methods like navigator.registerServiceWorker().
33 class ServiceWorkerDispatcher : public WorkerTaskRunner::Observer { 33 class ServiceWorkerDispatcher : public WorkerTaskRunner::Observer {
34 public: 34 public:
35 explicit ServiceWorkerDispatcher(ThreadSafeSender* thread_safe_sender); 35 explicit ServiceWorkerDispatcher(ThreadSafeSender* thread_safe_sender);
36 virtual ~ServiceWorkerDispatcher(); 36 virtual ~ServiceWorkerDispatcher();
37 37
38 void OnMessageReceived(const IPC::Message& msg); 38 void OnMessageReceived(const IPC::Message& msg);
39 bool Send(IPC::Message* msg); 39 bool Send(IPC::Message* msg);
40 40
41 // Corresponds to navigator.registerServiceWorker() 41 // Corresponds to navigator.serviceWorker.register()
42 void RegisterServiceWorker( 42 void RegisterServiceWorker(
43 const GURL& pattern, 43 const GURL& pattern,
44 const GURL& script_url, 44 const GURL& script_url,
45 blink::WebServiceWorkerProvider::WebServiceWorkerCallbacks* callbacks); 45 blink::WebServiceWorkerProvider::WebServiceWorkerCallbacks* callbacks);
46 // Corresponds to navigator.unregisterServiceWorker() 46 // Corresponds to navigator.serviceWorker.unregister()
47 void UnregisterServiceWorker( 47 void UnregisterServiceWorker(
48 const GURL& pattern, 48 const GURL& pattern,
49 blink::WebServiceWorkerProvider::WebServiceWorkerCallbacks* callbacks); 49 blink::WebServiceWorkerProvider::WebServiceWorkerCallbacks* callbacks);
50 50
51 // Called when navigator.serviceWorker is instantiated (or detached,
52 // when null client is given). This dispatcher is created one per thread
53 // and client is also expected to be added at most one per thread (in the
54 // current implementation).
55 void SetScriptClient(
56 int provider_id,
57 blink::WebServiceWorkerProviderClient* client);
58
51 // |thread_safe_sender| needs to be passed in because if the call leads to 59 // |thread_safe_sender| needs to be passed in because if the call leads to
52 // construction it will be needed. 60 // construction it will be needed.
53 static ServiceWorkerDispatcher* ThreadSpecificInstance( 61 static ServiceWorkerDispatcher* ThreadSpecificInstance(
54 ThreadSafeSender* thread_safe_sender); 62 ThreadSafeSender* thread_safe_sender);
55 63
56 private: 64 private:
57 // WorkerTaskRunner::Observer implementation. 65 // WorkerTaskRunner::Observer implementation.
58 virtual void OnWorkerRunLoopStopped() OVERRIDE; 66 virtual void OnWorkerRunLoopStopped() OVERRIDE;
59 67
60 // The asynchronous success response to RegisterServiceWorker. 68 // The asynchronous success response to RegisterServiceWorker.
61 void OnRegistered(int32 thread_id, int32 request_id, int64 registration_id); 69 void OnRegistered(int32 thread_id, int32 request_id, int64 registration_id);
62 // The asynchronous success response to UregisterServiceWorker. 70 // The asynchronous success response to UregisterServiceWorker.
63 void OnUnregistered(int32 thread_id, 71 void OnUnregistered(int32 thread_id,
64 int32 request_id); 72 int32 request_id);
65 void OnRegistrationError(int32 thread_id, 73 void OnRegistrationError(int32 thread_id,
66 int32 request_id, 74 int32 request_id,
67 blink::WebServiceWorkerError::ErrorType error_type, 75 blink::WebServiceWorkerError::ErrorType error_type,
68 const base::string16& message); 76 const base::string16& message);
69 77
70 IDMap<blink::WebServiceWorkerProvider::WebServiceWorkerCallbacks, 78 IDMap<blink::WebServiceWorkerProvider::WebServiceWorkerCallbacks,
71 IDMapOwnPointer> pending_callbacks_; 79 IDMapOwnPointer> pending_callbacks_;
72 80
73 scoped_refptr<ThreadSafeSender> thread_safe_sender_; 81 scoped_refptr<ThreadSafeSender> thread_safe_sender_;
82 blink::WebServiceWorkerProviderClient* client_;
74 83
75 DISALLOW_COPY_AND_ASSIGN(ServiceWorkerDispatcher); 84 DISALLOW_COPY_AND_ASSIGN(ServiceWorkerDispatcher);
76 }; 85 };
77 86
78 } // namespace content 87 } // namespace content
79 88
80 #endif // CONTENT_CHILD_SERVICE_WORKER_SERVICE_WORKER_DISPATCHER_H_ 89 #endif // CONTENT_CHILD_SERVICE_WORKER_SERVICE_WORKER_DISPATCHER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698