| OLD | NEW |
| 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 #include "content/renderer/service_worker/service_worker_script_context.h" | 5 #include "content/renderer/service_worker/service_worker_script_context.h" |
| 6 | 6 |
| 7 #include "base/debug/trace_event.h" | 7 #include "base/debug/trace_event.h" |
| 8 #include "base/logging.h" | 8 #include "base/logging.h" |
| 9 #include "base/metrics/histogram.h" | 9 #include "base/metrics/histogram.h" |
| 10 #include "content/child/thread_safe_sender.h" | 10 #include "content/child/thread_safe_sender.h" |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 79 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_SyncEvent, OnSyncEvent) | 79 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_SyncEvent, OnSyncEvent) |
| 80 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_NotificationClickEvent, | 80 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_NotificationClickEvent, |
| 81 OnNotificationClickEvent) | 81 OnNotificationClickEvent) |
| 82 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_PushEvent, OnPushEvent) | 82 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_PushEvent, OnPushEvent) |
| 83 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_GeofencingEvent, OnGeofencingEvent) | 83 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_GeofencingEvent, OnGeofencingEvent) |
| 84 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_MessageToWorker, OnPostMessage) | 84 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_MessageToWorker, OnPostMessage) |
| 85 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetClientDocuments, | 85 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetClientDocuments, |
| 86 OnDidGetClientDocuments) | 86 OnDidGetClientDocuments) |
| 87 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_FocusClientResponse, | 87 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_FocusClientResponse, |
| 88 OnFocusClientResponse) | 88 OnFocusClientResponse) |
| 89 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidSkipWaiting, OnDidSkipWaiting) |
| 89 IPC_MESSAGE_UNHANDLED(handled = false) | 90 IPC_MESSAGE_UNHANDLED(handled = false) |
| 90 IPC_END_MESSAGE_MAP() | 91 IPC_END_MESSAGE_MAP() |
| 91 | 92 |
| 92 // TODO(gavinp): Would it be preferable to put an AddListener() method to | 93 // TODO(gavinp): Would it be preferable to put an AddListener() method to |
| 93 // EmbeddedWorkerContextClient? | 94 // EmbeddedWorkerContextClient? |
| 94 if (!handled) | 95 if (!handled) |
| 95 handled = cache_storage_dispatcher_->OnMessageReceived(message); | 96 handled = cache_storage_dispatcher_->OnMessageReceived(message); |
| 96 | 97 |
| 97 DCHECK(handled); | 98 DCHECK(handled); |
| 98 } | 99 } |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 189 } | 190 } |
| 190 | 191 |
| 191 void ServiceWorkerScriptContext::FocusClient( | 192 void ServiceWorkerScriptContext::FocusClient( |
| 192 int client_id, blink::WebServiceWorkerClientFocusCallback* callback) { | 193 int client_id, blink::WebServiceWorkerClientFocusCallback* callback) { |
| 193 DCHECK(callback); | 194 DCHECK(callback); |
| 194 int request_id = pending_focus_client_callbacks_.Add(callback); | 195 int request_id = pending_focus_client_callbacks_.Add(callback); |
| 195 Send(new ServiceWorkerHostMsg_FocusClient( | 196 Send(new ServiceWorkerHostMsg_FocusClient( |
| 196 GetRoutingID(), request_id, client_id)); | 197 GetRoutingID(), request_id, client_id)); |
| 197 } | 198 } |
| 198 | 199 |
| 200 void ServiceWorkerScriptContext::SkipWaiting( |
| 201 blink::WebServiceWorkerSkipWaitingCallbacks* callbacks) { |
| 202 DCHECK(callbacks); |
| 203 int request_id = pending_skip_waiting_callbacks_.Add(callbacks); |
| 204 Send(new ServiceWorkerHostMsg_SkipWaiting(GetRoutingID(), request_id)); |
| 205 } |
| 206 |
| 199 void ServiceWorkerScriptContext::Send(IPC::Message* message) { | 207 void ServiceWorkerScriptContext::Send(IPC::Message* message) { |
| 200 embedded_context_->Send(message); | 208 embedded_context_->Send(message); |
| 201 } | 209 } |
| 202 | 210 |
| 203 int ServiceWorkerScriptContext::GetRoutingID() const { | 211 int ServiceWorkerScriptContext::GetRoutingID() const { |
| 204 return embedded_context_->embedded_worker_id(); | 212 return embedded_context_->embedded_worker_id(); |
| 205 } | 213 } |
| 206 | 214 |
| 207 void ServiceWorkerScriptContext::OnActivateEvent(int request_id) { | 215 void ServiceWorkerScriptContext::OnActivateEvent(int request_id) { |
| 208 TRACE_EVENT0("ServiceWorker", | 216 TRACE_EVENT0("ServiceWorker", |
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 361 blink::WebServiceWorkerClientFocusCallback* callback = | 369 blink::WebServiceWorkerClientFocusCallback* callback = |
| 362 pending_focus_client_callbacks_.Lookup(request_id); | 370 pending_focus_client_callbacks_.Lookup(request_id); |
| 363 if (!callback) { | 371 if (!callback) { |
| 364 NOTREACHED() << "Got stray response: " << request_id; | 372 NOTREACHED() << "Got stray response: " << request_id; |
| 365 return; | 373 return; |
| 366 } | 374 } |
| 367 callback->onSuccess(&result); | 375 callback->onSuccess(&result); |
| 368 pending_focus_client_callbacks_.Remove(request_id); | 376 pending_focus_client_callbacks_.Remove(request_id); |
| 369 } | 377 } |
| 370 | 378 |
| 379 void ServiceWorkerScriptContext::OnDidSkipWaiting(int request_id) { |
| 380 TRACE_EVENT0("ServiceWorker", |
| 381 "ServiceWorkerScriptContext::OnDidSkipWaiting"); |
| 382 blink::WebServiceWorkerSkipWaitingCallbacks* callbacks = |
| 383 pending_skip_waiting_callbacks_.Lookup(request_id); |
| 384 if (!callbacks) { |
| 385 NOTREACHED() << "Got stray response: " << request_id; |
| 386 return; |
| 387 } |
| 388 callbacks->onSuccess(); |
| 389 pending_skip_waiting_callbacks_.Remove(request_id); |
| 390 } |
| 391 |
| 371 } // namespace content | 392 } // namespace content |
| OLD | NEW |