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

Side by Side Diff: content/browser/service_worker/service_worker_dispatcher_host.cc

Issue 2787883003: [ServiceWorker] Add EmbeddedWorkerInstanceHost Interface. (Closed)
Patch Set: Refine code comments Created 3 years, 8 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 // 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 <utility> 7 #include <utility>
8 8
9 #include "base/debug/crash_logging.h" 9 #include "base/debug/crash_logging.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
173 IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_UnregisterServiceWorker, 173 IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_UnregisterServiceWorker,
174 OnUnregisterServiceWorker) 174 OnUnregisterServiceWorker)
175 IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_GetRegistration, 175 IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_GetRegistration,
176 OnGetRegistration) 176 OnGetRegistration)
177 IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_GetRegistrations, 177 IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_GetRegistrations,
178 OnGetRegistrations) 178 OnGetRegistrations)
179 IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_GetRegistrationForReady, 179 IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_GetRegistrationForReady,
180 OnGetRegistrationForReady) 180 OnGetRegistrationForReady)
181 IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_PostMessageToWorker, 181 IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_PostMessageToWorker,
182 OnPostMessageToWorker) 182 OnPostMessageToWorker)
183 IPC_MESSAGE_HANDLER(EmbeddedWorkerHostMsg_WorkerReadyForInspection,
184 OnWorkerReadyForInspection)
185 IPC_MESSAGE_HANDLER(EmbeddedWorkerHostMsg_WorkerScriptLoaded,
186 OnWorkerScriptLoaded)
187 IPC_MESSAGE_HANDLER(EmbeddedWorkerHostMsg_WorkerThreadStarted,
188 OnWorkerThreadStarted)
189 IPC_MESSAGE_HANDLER(EmbeddedWorkerHostMsg_WorkerScriptLoadFailed,
190 OnWorkerScriptLoadFailed)
191 IPC_MESSAGE_HANDLER(EmbeddedWorkerHostMsg_WorkerScriptEvaluated,
192 OnWorkerScriptEvaluated)
193 IPC_MESSAGE_HANDLER(EmbeddedWorkerHostMsg_WorkerStarted,
194 OnWorkerStarted)
195 IPC_MESSAGE_HANDLER(EmbeddedWorkerHostMsg_WorkerStopped,
196 OnWorkerStopped)
197 IPC_MESSAGE_HANDLER(EmbeddedWorkerHostMsg_CountFeature, OnCountFeature) 183 IPC_MESSAGE_HANDLER(EmbeddedWorkerHostMsg_CountFeature, OnCountFeature)
198 IPC_MESSAGE_HANDLER(EmbeddedWorkerHostMsg_ReportException,
199 OnReportException)
200 IPC_MESSAGE_HANDLER(EmbeddedWorkerHostMsg_ReportConsoleMessage,
201 OnReportConsoleMessage)
202 IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_IncrementServiceWorkerRefCount, 184 IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_IncrementServiceWorkerRefCount,
203 OnIncrementServiceWorkerRefCount) 185 OnIncrementServiceWorkerRefCount)
204 IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_DecrementServiceWorkerRefCount, 186 IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_DecrementServiceWorkerRefCount,
205 OnDecrementServiceWorkerRefCount) 187 OnDecrementServiceWorkerRefCount)
206 IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_IncrementRegistrationRefCount, 188 IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_IncrementRegistrationRefCount,
207 OnIncrementRegistrationRefCount) 189 OnIncrementRegistrationRefCount)
208 IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_DecrementRegistrationRefCount, 190 IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_DecrementRegistrationRefCount,
209 OnDecrementRegistrationRefCount) 191 OnDecrementRegistrationRefCount)
210 IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_TerminateWorker, OnTerminateWorker) 192 IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_TerminateWorker, OnTerminateWorker)
211 IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_EnableNavigationPreload, 193 IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_EnableNavigationPreload,
(...skipping 1136 matching lines...) Expand 10 before | Expand all | Expand 10 after
1348 DCHECK(registration); 1330 DCHECK(registration);
1349 1331
1350 ServiceWorkerRegistrationObjectInfo info; 1332 ServiceWorkerRegistrationObjectInfo info;
1351 ServiceWorkerVersionAttributes attrs; 1333 ServiceWorkerVersionAttributes attrs;
1352 GetRegistrationObjectInfoAndVersionAttributes(provider_host->AsWeakPtr(), 1334 GetRegistrationObjectInfoAndVersionAttributes(provider_host->AsWeakPtr(),
1353 registration, &info, &attrs); 1335 registration, &info, &attrs);
1354 1336
1355 Send(new ServiceWorkerMsg_ServiceWorkerUpdated(thread_id, request_id)); 1337 Send(new ServiceWorkerMsg_ServiceWorkerUpdated(thread_id, request_id));
1356 } 1338 }
1357 1339
1358 void ServiceWorkerDispatcherHost::OnWorkerReadyForInspection(
1359 int embedded_worker_id) {
1360 TRACE_EVENT0("ServiceWorker",
1361 "ServiceWorkerDispatcherHost::OnWorkerReadyForInspection");
1362 if (!GetContext())
1363 return;
1364 EmbeddedWorkerRegistry* registry = GetContext()->embedded_worker_registry();
1365 if (!registry->CanHandle(embedded_worker_id))
1366 return;
1367 registry->OnWorkerReadyForInspection(render_process_id_, embedded_worker_id);
1368 }
1369
1370 void ServiceWorkerDispatcherHost::OnWorkerScriptLoaded(int embedded_worker_id) {
1371 TRACE_EVENT0("ServiceWorker",
1372 "ServiceWorkerDispatcherHost::OnWorkerScriptLoaded");
1373 if (!GetContext())
1374 return;
1375
1376 EmbeddedWorkerRegistry* registry = GetContext()->embedded_worker_registry();
1377 if (!registry->CanHandle(embedded_worker_id))
1378 return;
1379 registry->OnWorkerScriptLoaded(render_process_id_, embedded_worker_id);
1380 }
1381
1382 void ServiceWorkerDispatcherHost::OnWorkerThreadStarted(int embedded_worker_id,
1383 int thread_id,
1384 int provider_id) {
1385 TRACE_EVENT0("ServiceWorker",
1386 "ServiceWorkerDispatcherHost::OnWorkerThreadStarted");
1387 if (!GetContext())
1388 return;
1389
1390 ServiceWorkerProviderHost* provider_host =
1391 GetContext()->GetProviderHost(render_process_id_, provider_id);
1392 if (!provider_host) {
1393 bad_message::ReceivedBadMessage(
1394 this, bad_message::SWDH_WORKER_SCRIPT_LOAD_NO_HOST);
1395 return;
1396 }
1397
1398 provider_host->SetReadyToSendMessagesToWorker(thread_id);
1399
1400 EmbeddedWorkerRegistry* registry = GetContext()->embedded_worker_registry();
1401 if (!registry->CanHandle(embedded_worker_id))
1402 return;
1403 registry->OnWorkerThreadStarted(render_process_id_, thread_id,
1404 embedded_worker_id);
1405 }
1406
1407 void ServiceWorkerDispatcherHost::OnWorkerScriptLoadFailed(
1408 int embedded_worker_id) {
1409 TRACE_EVENT0("ServiceWorker",
1410 "ServiceWorkerDispatcherHost::OnWorkerScriptLoadFailed");
1411 if (!GetContext())
1412 return;
1413 EmbeddedWorkerRegistry* registry = GetContext()->embedded_worker_registry();
1414 if (!registry->CanHandle(embedded_worker_id))
1415 return;
1416 registry->OnWorkerScriptLoadFailed(render_process_id_, embedded_worker_id);
1417 }
1418
1419 void ServiceWorkerDispatcherHost::OnWorkerScriptEvaluated(
1420 int embedded_worker_id,
1421 bool success) {
1422 TRACE_EVENT0("ServiceWorker",
1423 "ServiceWorkerDispatcherHost::OnWorkerScriptEvaluated");
1424 if (!GetContext())
1425 return;
1426 EmbeddedWorkerRegistry* registry = GetContext()->embedded_worker_registry();
1427 if (!registry->CanHandle(embedded_worker_id))
1428 return;
1429 registry->OnWorkerScriptEvaluated(
1430 render_process_id_, embedded_worker_id, success);
1431 }
1432
1433 void ServiceWorkerDispatcherHost::OnWorkerStarted(int embedded_worker_id) {
1434 TRACE_EVENT0("ServiceWorker",
1435 "ServiceWorkerDispatcherHost::OnWorkerStarted");
1436 if (!GetContext())
1437 return;
1438 EmbeddedWorkerRegistry* registry = GetContext()->embedded_worker_registry();
1439 if (!registry->CanHandle(embedded_worker_id))
1440 return;
1441 registry->OnWorkerStarted(render_process_id_, embedded_worker_id);
1442 }
1443
1444 void ServiceWorkerDispatcherHost::OnWorkerStopped(int embedded_worker_id) {
1445 TRACE_EVENT0("ServiceWorker",
1446 "ServiceWorkerDispatcherHost::OnWorkerStopped");
1447 if (!GetContext())
1448 return;
1449 EmbeddedWorkerRegistry* registry = GetContext()->embedded_worker_registry();
1450 if (!registry->CanHandle(embedded_worker_id))
1451 return;
1452 registry->OnWorkerStopped(render_process_id_, embedded_worker_id);
1453 }
1454
1455 void ServiceWorkerDispatcherHost::OnCountFeature(int64_t version_id, 1340 void ServiceWorkerDispatcherHost::OnCountFeature(int64_t version_id,
1456 uint32_t feature) { 1341 uint32_t feature) {
1457 if (!GetContext()) 1342 if (!GetContext())
1458 return; 1343 return;
1459 ServiceWorkerVersion* version = GetContext()->GetLiveVersion(version_id); 1344 ServiceWorkerVersion* version = GetContext()->GetLiveVersion(version_id);
1460 if (!version) 1345 if (!version)
1461 return; 1346 return;
1462 version->CountFeature(feature); 1347 version->CountFeature(feature);
1463 } 1348 }
1464 1349
1465 void ServiceWorkerDispatcherHost::OnReportException(
1466 int embedded_worker_id,
1467 const base::string16& error_message,
1468 int line_number,
1469 int column_number,
1470 const GURL& source_url) {
1471 TRACE_EVENT0("ServiceWorker",
1472 "ServiceWorkerDispatcherHost::OnReportException");
1473 if (!GetContext())
1474 return;
1475 EmbeddedWorkerRegistry* registry = GetContext()->embedded_worker_registry();
1476 if (!registry->CanHandle(embedded_worker_id))
1477 return;
1478 registry->OnReportException(embedded_worker_id,
1479 error_message,
1480 line_number,
1481 column_number,
1482 source_url);
1483 }
1484
1485 void ServiceWorkerDispatcherHost::OnReportConsoleMessage(
1486 int embedded_worker_id,
1487 const EmbeddedWorkerHostMsg_ReportConsoleMessage_Params& params) {
1488 TRACE_EVENT0("ServiceWorker",
1489 "ServiceWorkerDispatcherHost::OnReportConsoleMessage");
1490 if (!GetContext())
1491 return;
1492 EmbeddedWorkerRegistry* registry = GetContext()->embedded_worker_registry();
1493 if (!registry->CanHandle(embedded_worker_id))
1494 return;
1495 registry->OnReportConsoleMessage(embedded_worker_id,
1496 params.source_identifier,
1497 params.message_level,
1498 params.message,
1499 params.line_number,
1500 params.source_url);
1501 }
1502
1503 void ServiceWorkerDispatcherHost::OnIncrementServiceWorkerRefCount( 1350 void ServiceWorkerDispatcherHost::OnIncrementServiceWorkerRefCount(
1504 int handle_id) { 1351 int handle_id) {
1505 TRACE_EVENT0("ServiceWorker", 1352 TRACE_EVENT0("ServiceWorker",
1506 "ServiceWorkerDispatcherHost::OnIncrementServiceWorkerRefCount"); 1353 "ServiceWorkerDispatcherHost::OnIncrementServiceWorkerRefCount");
1507 ServiceWorkerHandle* handle = handles_.Lookup(handle_id); 1354 ServiceWorkerHandle* handle = handles_.Lookup(handle_id);
1508 if (!handle) { 1355 if (!handle) {
1509 bad_message::ReceivedBadMessage( 1356 bad_message::ReceivedBadMessage(
1510 this, bad_message::SWDH_INCREMENT_WORKER_BAD_HANDLE); 1357 this, bad_message::SWDH_INCREMENT_WORKER_BAD_HANDLE);
1511 return; 1358 return;
1512 } 1359 }
(...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after
1780 if (!handle) { 1627 if (!handle) {
1781 bad_message::ReceivedBadMessage(this, 1628 bad_message::ReceivedBadMessage(this,
1782 bad_message::SWDH_TERMINATE_BAD_HANDLE); 1629 bad_message::SWDH_TERMINATE_BAD_HANDLE);
1783 return; 1630 return;
1784 } 1631 }
1785 handle->version()->StopWorker( 1632 handle->version()->StopWorker(
1786 base::Bind(&ServiceWorkerUtils::NoOpStatusCallback)); 1633 base::Bind(&ServiceWorkerUtils::NoOpStatusCallback));
1787 } 1634 }
1788 1635
1789 } // namespace content 1636 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698