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 #include "content/browser/service_worker/service_worker_dispatcher_host.h" | 5 #include "content/browser/service_worker/service_worker_dispatcher_host.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "base/profiler/scoped_tracker.h" | 8 #include "base/profiler/scoped_tracker.h" |
9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
10 #include "base/trace_event/trace_event.h" | 10 #include "base/trace_event/trace_event.h" |
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
178 IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_ProviderDestroyed, | 178 IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_ProviderDestroyed, |
179 OnProviderDestroyed) | 179 OnProviderDestroyed) |
180 IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_SetVersionId, | 180 IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_SetVersionId, |
181 OnSetHostedVersionId) | 181 OnSetHostedVersionId) |
182 IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_PostMessageToWorker, | 182 IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_PostMessageToWorker, |
183 OnPostMessageToWorker) | 183 OnPostMessageToWorker) |
184 IPC_MESSAGE_HANDLER(EmbeddedWorkerHostMsg_WorkerReadyForInspection, | 184 IPC_MESSAGE_HANDLER(EmbeddedWorkerHostMsg_WorkerReadyForInspection, |
185 OnWorkerReadyForInspection) | 185 OnWorkerReadyForInspection) |
186 IPC_MESSAGE_HANDLER(EmbeddedWorkerHostMsg_WorkerScriptLoaded, | 186 IPC_MESSAGE_HANDLER(EmbeddedWorkerHostMsg_WorkerScriptLoaded, |
187 OnWorkerScriptLoaded) | 187 OnWorkerScriptLoaded) |
| 188 IPC_MESSAGE_HANDLER(EmbeddedWorkerHostMsg_WorkerThreadStarted, |
| 189 OnWorkerThreadStarted) |
188 IPC_MESSAGE_HANDLER(EmbeddedWorkerHostMsg_WorkerScriptLoadFailed, | 190 IPC_MESSAGE_HANDLER(EmbeddedWorkerHostMsg_WorkerScriptLoadFailed, |
189 OnWorkerScriptLoadFailed) | 191 OnWorkerScriptLoadFailed) |
190 IPC_MESSAGE_HANDLER(EmbeddedWorkerHostMsg_WorkerScriptEvaluated, | 192 IPC_MESSAGE_HANDLER(EmbeddedWorkerHostMsg_WorkerScriptEvaluated, |
191 OnWorkerScriptEvaluated) | 193 OnWorkerScriptEvaluated) |
192 IPC_MESSAGE_HANDLER(EmbeddedWorkerHostMsg_WorkerStarted, | 194 IPC_MESSAGE_HANDLER(EmbeddedWorkerHostMsg_WorkerStarted, |
193 OnWorkerStarted) | 195 OnWorkerStarted) |
194 IPC_MESSAGE_HANDLER(EmbeddedWorkerHostMsg_WorkerStopped, | 196 IPC_MESSAGE_HANDLER(EmbeddedWorkerHostMsg_WorkerStopped, |
195 OnWorkerStopped) | 197 OnWorkerStopped) |
196 IPC_MESSAGE_HANDLER(EmbeddedWorkerHostMsg_ReportException, | 198 IPC_MESSAGE_HANDLER(EmbeddedWorkerHostMsg_ReportException, |
197 OnReportException) | 199 OnReportException) |
(...skipping 684 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
882 TRACE_EVENT0("ServiceWorker", | 884 TRACE_EVENT0("ServiceWorker", |
883 "ServiceWorkerDispatcherHost::OnWorkerReadyForInspection"); | 885 "ServiceWorkerDispatcherHost::OnWorkerReadyForInspection"); |
884 if (!GetContext()) | 886 if (!GetContext()) |
885 return; | 887 return; |
886 EmbeddedWorkerRegistry* registry = GetContext()->embedded_worker_registry(); | 888 EmbeddedWorkerRegistry* registry = GetContext()->embedded_worker_registry(); |
887 if (!registry->CanHandle(embedded_worker_id)) | 889 if (!registry->CanHandle(embedded_worker_id)) |
888 return; | 890 return; |
889 registry->OnWorkerReadyForInspection(render_process_id_, embedded_worker_id); | 891 registry->OnWorkerReadyForInspection(render_process_id_, embedded_worker_id); |
890 } | 892 } |
891 | 893 |
892 void ServiceWorkerDispatcherHost::OnWorkerScriptLoaded( | 894 void ServiceWorkerDispatcherHost::OnWorkerScriptLoaded(int embedded_worker_id) { |
893 int embedded_worker_id, | |
894 int thread_id, | |
895 int provider_id) { | |
896 TRACE_EVENT0("ServiceWorker", | 895 TRACE_EVENT0("ServiceWorker", |
897 "ServiceWorkerDispatcherHost::OnWorkerScriptLoaded"); | 896 "ServiceWorkerDispatcherHost::OnWorkerScriptLoaded"); |
898 if (!GetContext()) | 897 if (!GetContext()) |
899 return; | 898 return; |
900 | 899 |
| 900 EmbeddedWorkerRegistry* registry = GetContext()->embedded_worker_registry(); |
| 901 if (!registry->CanHandle(embedded_worker_id)) |
| 902 return; |
| 903 registry->OnWorkerScriptLoaded(render_process_id_, embedded_worker_id); |
| 904 } |
| 905 |
| 906 void ServiceWorkerDispatcherHost::OnWorkerThreadStarted(int embedded_worker_id, |
| 907 int thread_id, |
| 908 int provider_id) { |
| 909 TRACE_EVENT0("ServiceWorker", |
| 910 "ServiceWorkerDispatcherHost::OnWorkerThreadStarted"); |
| 911 if (!GetContext()) |
| 912 return; |
| 913 |
901 ServiceWorkerProviderHost* provider_host = | 914 ServiceWorkerProviderHost* provider_host = |
902 GetContext()->GetProviderHost(render_process_id_, provider_id); | 915 GetContext()->GetProviderHost(render_process_id_, provider_id); |
903 if (!provider_host) { | 916 if (!provider_host) { |
904 bad_message::ReceivedBadMessage( | 917 bad_message::ReceivedBadMessage( |
905 this, bad_message::SWDH_WORKER_SCRIPT_LOAD_NO_HOST); | 918 this, bad_message::SWDH_WORKER_SCRIPT_LOAD_NO_HOST); |
906 return; | 919 return; |
907 } | 920 } |
908 | 921 |
909 provider_host->SetReadyToSendMessagesToWorker(thread_id); | 922 provider_host->SetReadyToSendMessagesToWorker(thread_id); |
910 | 923 |
911 EmbeddedWorkerRegistry* registry = GetContext()->embedded_worker_registry(); | 924 EmbeddedWorkerRegistry* registry = GetContext()->embedded_worker_registry(); |
912 if (!registry->CanHandle(embedded_worker_id)) | 925 if (!registry->CanHandle(embedded_worker_id)) |
913 return; | 926 return; |
914 registry->OnWorkerScriptLoaded( | 927 registry->OnWorkerThreadStarted(render_process_id_, thread_id, |
915 render_process_id_, thread_id, embedded_worker_id); | 928 embedded_worker_id); |
916 } | 929 } |
917 | 930 |
918 void ServiceWorkerDispatcherHost::OnWorkerScriptLoadFailed( | 931 void ServiceWorkerDispatcherHost::OnWorkerScriptLoadFailed( |
919 int embedded_worker_id) { | 932 int embedded_worker_id) { |
920 TRACE_EVENT0("ServiceWorker", | 933 TRACE_EVENT0("ServiceWorker", |
921 "ServiceWorkerDispatcherHost::OnWorkerScriptLoadFailed"); | 934 "ServiceWorkerDispatcherHost::OnWorkerScriptLoadFailed"); |
922 if (!GetContext()) | 935 if (!GetContext()) |
923 return; | 936 return; |
924 EmbeddedWorkerRegistry* registry = GetContext()->embedded_worker_registry(); | 937 EmbeddedWorkerRegistry* registry = GetContext()->embedded_worker_registry(); |
925 if (!registry->CanHandle(embedded_worker_id)) | 938 if (!registry->CanHandle(embedded_worker_id)) |
(...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1259 if (!handle) { | 1272 if (!handle) { |
1260 bad_message::ReceivedBadMessage(this, | 1273 bad_message::ReceivedBadMessage(this, |
1261 bad_message::SWDH_TERMINATE_BAD_HANDLE); | 1274 bad_message::SWDH_TERMINATE_BAD_HANDLE); |
1262 return; | 1275 return; |
1263 } | 1276 } |
1264 handle->version()->StopWorker( | 1277 handle->version()->StopWorker( |
1265 base::Bind(&ServiceWorkerUtils::NoOpStatusCallback)); | 1278 base::Bind(&ServiceWorkerUtils::NoOpStatusCallback)); |
1266 } | 1279 } |
1267 | 1280 |
1268 } // namespace content | 1281 } // namespace content |
OLD | NEW |