| OLD | NEW |
| 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 <map> | 8 #include <map> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 45 : public WorkerTaskRunner::Observer { | 45 : public WorkerTaskRunner::Observer { |
| 46 public: | 46 public: |
| 47 typedef blink::WebServiceWorkerProvider::WebServiceWorkerRegistrationCallbacks | 47 typedef blink::WebServiceWorkerProvider::WebServiceWorkerRegistrationCallbacks |
| 48 WebServiceWorkerRegistrationCallbacks; | 48 WebServiceWorkerRegistrationCallbacks; |
| 49 typedef | 49 typedef |
| 50 blink::WebServiceWorkerProvider::WebServiceWorkerUnregistrationCallbacks | 50 blink::WebServiceWorkerProvider::WebServiceWorkerUnregistrationCallbacks |
| 51 WebServiceWorkerUnregistrationCallbacks; | 51 WebServiceWorkerUnregistrationCallbacks; |
| 52 typedef | 52 typedef |
| 53 blink::WebServiceWorkerProvider::WebServiceWorkerGetRegistrationCallbacks | 53 blink::WebServiceWorkerProvider::WebServiceWorkerGetRegistrationCallbacks |
| 54 WebServiceWorkerGetRegistrationCallbacks; | 54 WebServiceWorkerGetRegistrationCallbacks; |
| 55 typedef |
| 56 blink::WebServiceWorkerProvider::WebServiceWorkerGetRegistrationsCallbacks |
| 57 WebServiceWorkerGetRegistrationsCallbacks; |
| 55 typedef blink::WebServiceWorkerProvider:: | 58 typedef blink::WebServiceWorkerProvider:: |
| 56 WebServiceWorkerGetRegistrationForReadyCallbacks | 59 WebServiceWorkerGetRegistrationForReadyCallbacks |
| 57 WebServiceWorkerGetRegistrationForReadyCallbacks; | 60 WebServiceWorkerGetRegistrationForReadyCallbacks; |
| 58 | 61 |
| 59 explicit ServiceWorkerDispatcher(ThreadSafeSender* thread_safe_sender); | 62 explicit ServiceWorkerDispatcher(ThreadSafeSender* thread_safe_sender); |
| 60 ~ServiceWorkerDispatcher() override; | 63 ~ServiceWorkerDispatcher() override; |
| 61 | 64 |
| 62 void OnMessageReceived(const IPC::Message& msg); | 65 void OnMessageReceived(const IPC::Message& msg); |
| 63 bool Send(IPC::Message* msg); | 66 bool Send(IPC::Message* msg); |
| 64 | 67 |
| 65 // Corresponds to navigator.serviceWorker.register() | 68 // Corresponds to navigator.serviceWorker.register() |
| 66 void RegisterServiceWorker( | 69 void RegisterServiceWorker( |
| 67 int provider_id, | 70 int provider_id, |
| 68 const GURL& pattern, | 71 const GURL& pattern, |
| 69 const GURL& script_url, | 72 const GURL& script_url, |
| 70 WebServiceWorkerRegistrationCallbacks* callbacks); | 73 WebServiceWorkerRegistrationCallbacks* callbacks); |
| 71 // Corresponds to navigator.serviceWorker.unregister() | 74 // Corresponds to navigator.serviceWorker.unregister() |
| 72 void UnregisterServiceWorker( | 75 void UnregisterServiceWorker( |
| 73 int provider_id, | 76 int provider_id, |
| 74 const GURL& pattern, | 77 const GURL& pattern, |
| 75 WebServiceWorkerUnregistrationCallbacks* callbacks); | 78 WebServiceWorkerUnregistrationCallbacks* callbacks); |
| 76 // Corresponds to navigator.serviceWorker.getRegistration() | 79 // Corresponds to navigator.serviceWorker.getRegistration() |
| 77 void GetRegistration( | 80 void GetRegistration( |
| 78 int provider_id, | 81 int provider_id, |
| 79 const GURL& document_url, | 82 const GURL& document_url, |
| 80 WebServiceWorkerRegistrationCallbacks* callbacks); | 83 WebServiceWorkerRegistrationCallbacks* callbacks); |
| 84 // Corresponds to navigator.serviceWorker.getRegistrations() |
| 85 void GetRegistrations( |
| 86 int provider_id, |
| 87 const GURL& document_url, |
| 88 WebServiceWorkerGetRegistrationsCallbacks* callbacks); |
| 81 | 89 |
| 82 void GetRegistrationForReady( | 90 void GetRegistrationForReady( |
| 83 int provider_id, | 91 int provider_id, |
| 84 WebServiceWorkerGetRegistrationForReadyCallbacks* callbacks); | 92 WebServiceWorkerGetRegistrationForReadyCallbacks* callbacks); |
| 85 | 93 |
| 86 // Called when a new provider context for a document is created. Usually | 94 // Called when a new provider context for a document is created. Usually |
| 87 // this happens when a new document is being loaded, and is called much | 95 // this happens when a new document is being loaded, and is called much |
| 88 // earlier than AddScriptClient. | 96 // earlier than AddScriptClient. |
| 89 // (This is attached only to the document thread's ServiceWorkerDispatcher) | 97 // (This is attached only to the document thread's ServiceWorkerDispatcher) |
| 90 void AddProviderContext(ServiceWorkerProviderContext* provider_context); | 98 void AddProviderContext(ServiceWorkerProviderContext* provider_context); |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 130 // instance if thread-local instance doesn't exist. | 138 // instance if thread-local instance doesn't exist. |
| 131 static ServiceWorkerDispatcher* GetThreadSpecificInstance(); | 139 static ServiceWorkerDispatcher* GetThreadSpecificInstance(); |
| 132 | 140 |
| 133 private: | 141 private: |
| 134 typedef IDMap<WebServiceWorkerRegistrationCallbacks, | 142 typedef IDMap<WebServiceWorkerRegistrationCallbacks, |
| 135 IDMapOwnPointer> RegistrationCallbackMap; | 143 IDMapOwnPointer> RegistrationCallbackMap; |
| 136 typedef IDMap<WebServiceWorkerUnregistrationCallbacks, | 144 typedef IDMap<WebServiceWorkerUnregistrationCallbacks, |
| 137 IDMapOwnPointer> UnregistrationCallbackMap; | 145 IDMapOwnPointer> UnregistrationCallbackMap; |
| 138 typedef IDMap<WebServiceWorkerGetRegistrationCallbacks, | 146 typedef IDMap<WebServiceWorkerGetRegistrationCallbacks, |
| 139 IDMapOwnPointer> GetRegistrationCallbackMap; | 147 IDMapOwnPointer> GetRegistrationCallbackMap; |
| 148 typedef IDMap<WebServiceWorkerGetRegistrationsCallbacks, |
| 149 IDMapOwnPointer> GetRegistrationsCallbackMap; |
| 140 typedef IDMap<WebServiceWorkerGetRegistrationForReadyCallbacks, | 150 typedef IDMap<WebServiceWorkerGetRegistrationForReadyCallbacks, |
| 141 IDMapOwnPointer> GetRegistrationForReadyCallbackMap; | 151 IDMapOwnPointer> GetRegistrationForReadyCallbackMap; |
| 142 | 152 |
| 143 typedef std::map<int, blink::WebServiceWorkerProviderClient*> | 153 typedef std::map<int, blink::WebServiceWorkerProviderClient*> |
| 144 ProviderClientMap; | 154 ProviderClientMap; |
| 145 typedef std::map<int, ServiceWorkerProviderContext*> ProviderContextMap; | 155 typedef std::map<int, ServiceWorkerProviderContext*> ProviderContextMap; |
| 146 typedef std::map<int, ServiceWorkerProviderContext*> WorkerToProviderMap; | 156 typedef std::map<int, ServiceWorkerProviderContext*> WorkerToProviderMap; |
| 147 typedef std::map<int, WebServiceWorkerImpl*> WorkerObjectMap; | 157 typedef std::map<int, WebServiceWorkerImpl*> WorkerObjectMap; |
| 148 typedef std::map<int, WebServiceWorkerRegistrationImpl*> | 158 typedef std::map<int, WebServiceWorkerRegistrationImpl*> |
| 149 RegistrationObjectMap; | 159 RegistrationObjectMap; |
| (...skipping 20 matching lines...) Expand all Loading... |
| 170 int request_id, | 180 int request_id, |
| 171 const ServiceWorkerRegistrationObjectInfo& info, | 181 const ServiceWorkerRegistrationObjectInfo& info, |
| 172 const ServiceWorkerVersionAttributes& attrs); | 182 const ServiceWorkerVersionAttributes& attrs); |
| 173 void OnUnregistered(int thread_id, | 183 void OnUnregistered(int thread_id, |
| 174 int request_id, | 184 int request_id, |
| 175 bool is_success); | 185 bool is_success); |
| 176 void OnDidGetRegistration(int thread_id, | 186 void OnDidGetRegistration(int thread_id, |
| 177 int request_id, | 187 int request_id, |
| 178 const ServiceWorkerRegistrationObjectInfo& info, | 188 const ServiceWorkerRegistrationObjectInfo& info, |
| 179 const ServiceWorkerVersionAttributes& attrs); | 189 const ServiceWorkerVersionAttributes& attrs); |
| 190 void OnDidGetRegistrations( |
| 191 int thread_id, |
| 192 int request_id, |
| 193 const std::vector<ServiceWorkerRegistrationObjectInfo>& infos, |
| 194 const std::vector<ServiceWorkerVersionAttributes>& attrs); |
| 180 void OnDidGetRegistrationForReady( | 195 void OnDidGetRegistrationForReady( |
| 181 int thread_id, | 196 int thread_id, |
| 182 int request_id, | 197 int request_id, |
| 183 const ServiceWorkerRegistrationObjectInfo& info, | 198 const ServiceWorkerRegistrationObjectInfo& info, |
| 184 const ServiceWorkerVersionAttributes& attrs); | 199 const ServiceWorkerVersionAttributes& attrs); |
| 185 void OnRegistrationError(int thread_id, | 200 void OnRegistrationError(int thread_id, |
| 186 int request_id, | 201 int request_id, |
| 187 blink::WebServiceWorkerError::ErrorType error_type, | 202 blink::WebServiceWorkerError::ErrorType error_type, |
| 188 const base::string16& message); | 203 const base::string16& message); |
| 189 void OnUnregistrationError(int thread_id, | 204 void OnUnregistrationError(int thread_id, |
| 190 int request_id, | 205 int request_id, |
| 191 blink::WebServiceWorkerError::ErrorType error_type, | 206 blink::WebServiceWorkerError::ErrorType error_type, |
| 192 const base::string16& message); | 207 const base::string16& message); |
| 193 void OnGetRegistrationError( | 208 void OnGetRegistrationError( |
| 194 int thread_id, | 209 int thread_id, |
| 195 int request_id, | 210 int request_id, |
| 196 blink::WebServiceWorkerError::ErrorType error_type, | 211 blink::WebServiceWorkerError::ErrorType error_type, |
| 197 const base::string16& message); | 212 const base::string16& message); |
| 213 void OnGetRegistrationsError( |
| 214 int thread_id, |
| 215 int request_id, |
| 216 blink::WebServiceWorkerError::ErrorType error_type, |
| 217 const base::string16& message); |
| 198 void OnServiceWorkerStateChanged(int thread_id, | 218 void OnServiceWorkerStateChanged(int thread_id, |
| 199 int handle_id, | 219 int handle_id, |
| 200 blink::WebServiceWorkerState state); | 220 blink::WebServiceWorkerState state); |
| 201 void OnSetVersionAttributes(int thread_id, | 221 void OnSetVersionAttributes(int thread_id, |
| 202 int provider_id, | 222 int provider_id, |
| 203 int registration_handle_id, | 223 int registration_handle_id, |
| 204 int changed_mask, | 224 int changed_mask, |
| 205 const ServiceWorkerVersionAttributes& attributes); | 225 const ServiceWorkerVersionAttributes& attributes); |
| 206 void OnUpdateFound(int thread_id, | 226 void OnUpdateFound(int thread_id, |
| 207 int registration_handle_id); | 227 int registration_handle_id); |
| (...skipping 24 matching lines...) Expand all Loading... |
| 232 // references and always adopts them. | 252 // references and always adopts them. |
| 233 // TODO(nhiroki): This assumption seems to impair readability. We could | 253 // TODO(nhiroki): This assumption seems to impair readability. We could |
| 234 // explictly pass ServiceWorker(Registration)HandleReference instead. | 254 // explictly pass ServiceWorker(Registration)HandleReference instead. |
| 235 WebServiceWorkerRegistrationImpl* FindOrCreateRegistration( | 255 WebServiceWorkerRegistrationImpl* FindOrCreateRegistration( |
| 236 const ServiceWorkerRegistrationObjectInfo& info, | 256 const ServiceWorkerRegistrationObjectInfo& info, |
| 237 const ServiceWorkerVersionAttributes& attrs); | 257 const ServiceWorkerVersionAttributes& attrs); |
| 238 | 258 |
| 239 RegistrationCallbackMap pending_registration_callbacks_; | 259 RegistrationCallbackMap pending_registration_callbacks_; |
| 240 UnregistrationCallbackMap pending_unregistration_callbacks_; | 260 UnregistrationCallbackMap pending_unregistration_callbacks_; |
| 241 GetRegistrationCallbackMap pending_get_registration_callbacks_; | 261 GetRegistrationCallbackMap pending_get_registration_callbacks_; |
| 262 GetRegistrationsCallbackMap pending_get_registrations_callbacks_; |
| 242 GetRegistrationForReadyCallbackMap get_for_ready_callbacks_; | 263 GetRegistrationForReadyCallbackMap get_for_ready_callbacks_; |
| 243 | 264 |
| 244 ProviderClientMap provider_clients_; | 265 ProviderClientMap provider_clients_; |
| 245 ProviderContextMap provider_contexts_; | 266 ProviderContextMap provider_contexts_; |
| 246 | 267 |
| 247 WorkerObjectMap service_workers_; | 268 WorkerObjectMap service_workers_; |
| 248 RegistrationObjectMap registrations_; | 269 RegistrationObjectMap registrations_; |
| 249 | 270 |
| 250 // A map for ServiceWorkers that are associated to a particular document | 271 // A map for ServiceWorkers that are associated to a particular document |
| 251 // (e.g. as .current). | 272 // (e.g. as .current). |
| 252 WorkerToProviderMap worker_to_provider_; | 273 WorkerToProviderMap worker_to_provider_; |
| 253 | 274 |
| 254 scoped_refptr<ThreadSafeSender> thread_safe_sender_; | 275 scoped_refptr<ThreadSafeSender> thread_safe_sender_; |
| 255 | 276 |
| 256 DISALLOW_COPY_AND_ASSIGN(ServiceWorkerDispatcher); | 277 DISALLOW_COPY_AND_ASSIGN(ServiceWorkerDispatcher); |
| 257 }; | 278 }; |
| 258 | 279 |
| 259 } // namespace content | 280 } // namespace content |
| 260 | 281 |
| 261 #endif // CONTENT_CHILD_SERVICE_WORKER_SERVICE_WORKER_DISPATCHER_H_ | 282 #endif // CONTENT_CHILD_SERVICE_WORKER_SERVICE_WORKER_DISPATCHER_H_ |
| OLD | NEW |