tree: 42d8be783ac79e99ad23631096aaa594ffd2a30a [path history] [tgz]
  1. BUILD.gn
  2. DEPS
  3. embedded_worker_instance.cc
  4. embedded_worker_instance.h
  5. embedded_worker_instance_unittest.cc
  6. embedded_worker_registry.cc
  7. embedded_worker_registry.h
  8. embedded_worker_status.h
  9. embedded_worker_test_helper.cc
  10. embedded_worker_test_helper.h
  11. OWNERS
  12. payment_handler_support.cc
  13. payment_handler_support.h
  14. README.md
  15. service_worker_blob_reader.cc
  16. service_worker_blob_reader.h
  17. service_worker_browsertest.cc
  18. service_worker_cache_writer.cc
  19. service_worker_cache_writer.h
  20. service_worker_cache_writer_unittest.cc
  21. service_worker_client_info.cc
  22. service_worker_client_info.h
  23. service_worker_client_utils.cc
  24. service_worker_client_utils.h
  25. service_worker_consts.cc
  26. service_worker_consts.h
  27. service_worker_content_settings_proxy_impl.cc
  28. service_worker_content_settings_proxy_impl.h
  29. service_worker_context_core.cc
  30. service_worker_context_core.h
  31. service_worker_context_core_observer.h
  32. service_worker_context_core_unittest.cc
  33. service_worker_context_request_handler.cc
  34. service_worker_context_request_handler.h
  35. service_worker_context_request_handler_unittest.cc
  36. service_worker_context_unittest.cc
  37. service_worker_context_watcher.cc
  38. service_worker_context_watcher.h
  39. service_worker_context_watcher_unittest.cc
  40. service_worker_context_wrapper.cc
  41. service_worker_context_wrapper.h
  42. service_worker_controllee_request_handler.cc
  43. service_worker_controllee_request_handler.h
  44. service_worker_controllee_request_handler_unittest.cc
  45. service_worker_data_pipe_reader.cc
  46. service_worker_data_pipe_reader.h
  47. service_worker_data_pipe_reader_unittest.cc
  48. service_worker_database.cc
  49. service_worker_database.h
  50. service_worker_database.proto
  51. service_worker_database_unittest.cc
  52. service_worker_disk_cache.cc
  53. service_worker_disk_cache.h
  54. service_worker_dispatcher_host.cc
  55. service_worker_dispatcher_host.h
  56. service_worker_dispatcher_host_unittest.cc
  57. service_worker_fetch_dispatcher.cc
  58. service_worker_fetch_dispatcher.h
  59. service_worker_info.cc
  60. service_worker_info.h
  61. service_worker_installed_script_loader.cc
  62. service_worker_installed_script_loader.h
  63. service_worker_installed_script_reader.cc
  64. service_worker_installed_script_reader.h
  65. service_worker_installed_scripts_sender.cc
  66. service_worker_installed_scripts_sender.h
  67. service_worker_installed_scripts_sender_unittest.cc
  68. service_worker_internals_ui.cc
  69. service_worker_internals_ui.h
  70. service_worker_job_coordinator.cc
  71. service_worker_job_coordinator.h
  72. service_worker_job_unittest.cc
  73. service_worker_lifetime_tracker.cc
  74. service_worker_lifetime_tracker.h
  75. service_worker_lifetime_tracker_unittest.cc
  76. service_worker_metrics.cc
  77. service_worker_metrics.h
  78. service_worker_metrics_unittest.cc
  79. service_worker_navigation_handle.cc
  80. service_worker_navigation_handle.h
  81. service_worker_navigation_handle_core.cc
  82. service_worker_navigation_handle_core.h
  83. service_worker_navigation_loader.cc
  84. service_worker_navigation_loader.h
  85. service_worker_navigation_loader_unittest.cc
  86. service_worker_new_script_loader.cc
  87. service_worker_new_script_loader.h
  88. service_worker_new_script_loader_unittest.cc
  89. service_worker_object_host.cc
  90. service_worker_object_host.h
  91. service_worker_object_host_unittest.cc
  92. service_worker_ping_controller.cc
  93. service_worker_ping_controller.h
  94. service_worker_process_manager.cc
  95. service_worker_process_manager.h
  96. service_worker_process_manager_unittest.cc
  97. service_worker_provider_host.cc
  98. service_worker_provider_host.h
  99. service_worker_provider_host_unittest.cc
  100. service_worker_quota_client.cc
  101. service_worker_quota_client.h
  102. service_worker_read_from_cache_job.cc
  103. service_worker_read_from_cache_job.h
  104. service_worker_read_from_cache_job_unittest.cc
  105. service_worker_register_job.cc
  106. service_worker_register_job.h
  107. service_worker_register_job_base.h
  108. service_worker_registration.cc
  109. service_worker_registration.h
  110. service_worker_registration_object_host.cc
  111. service_worker_registration_object_host.h
  112. service_worker_registration_status.cc
  113. service_worker_registration_status.h
  114. service_worker_registration_unittest.cc
  115. service_worker_request_handler.cc
  116. service_worker_request_handler.h
  117. service_worker_request_handler_unittest.cc
  118. service_worker_response_info.cc
  119. service_worker_response_info.h
  120. service_worker_response_type.h
  121. service_worker_script_cache_map.cc
  122. service_worker_script_cache_map.h
  123. service_worker_script_loader_factory.cc
  124. service_worker_script_loader_factory.h
  125. service_worker_script_loader_factory_unittest.cc
  126. service_worker_storage.cc
  127. service_worker_storage.h
  128. service_worker_storage_unittest.cc
  129. service_worker_test_utils.cc
  130. service_worker_test_utils.h
  131. service_worker_type_converters.cc
  132. service_worker_type_converters.h
  133. service_worker_unregister_job.cc
  134. service_worker_unregister_job.h
  135. service_worker_url_job_wrapper.cc
  136. service_worker_url_job_wrapper.h
  137. service_worker_url_request_job.cc
  138. service_worker_url_request_job.h
  139. service_worker_url_request_job_unittest.cc
  140. service_worker_version.cc
  141. service_worker_version.h
  142. service_worker_version_unittest.cc
  143. service_worker_write_to_cache_job.cc
  144. service_worker_write_to_cache_job.h
  145. service_worker_write_to_cache_job_unittest.cc
content/browser/service_worker/README.md

Service workers

This is Chromium's implementation of service workers. See the Service Worker specification.

Directory structure

UseCounter integration

Blink has a UseCounter mechanism intended to measure the percentage of page loads on the web that used a given feature. Service workers complicate this measurement because a feature use in a service worker potentially affects many page loads, including ones in the future.

Therefore, service workers integrate with the UseCounter mechanism as follows:

  • If a feature use occurs before the service worker finished installing, it is recorded in storage along with the service worker. Any page thereafter that the service worker controls is counted as using the feature.
  • If a feature use occurs after the service worker finished installing, all currently controlled pages are counted as using the feature.

For more details and rationale, see Design of UseCounter for workers and crbug 376039.

Code pointers include:

Other documentation