tree: bfe8ae3fd3c85ffd24c479616cd8611f210223d7 [path history] [tgz]
  1. url_loader/
  2. back_forward_cache_loader_helper.h
  3. background_code_cache_host.cc
  4. background_code_cache_host.h
  5. body_text_decoder.h
  6. buffering_bytes_consumer.cc
  7. buffering_bytes_consumer.h
  8. buffering_bytes_consumer_test.cc
  9. bytes_consumer.cc
  10. bytes_consumer.h
  11. bytes_consumer_test.cc
  12. cached_metadata.cc
  13. cached_metadata.h
  14. cached_metadata_test.cc
  15. client_hints_preferences.cc
  16. client_hints_preferences.h
  17. client_hints_preferences_test.cc
  18. code_cache_host.h
  19. console_logger.h
  20. cross_origin_attribute_value.h
  21. data_pipe_bytes_consumer.cc
  22. data_pipe_bytes_consumer.h
  23. data_pipe_bytes_consumer_test.cc
  24. delivery_type_names.json5
  25. DEPS
  26. detachable_use_counter.h
  27. early_hints_preload_entry.h
  28. fetch_api_request_body_mojom_traits.cc
  29. fetch_api_request_body_mojom_traits.h
  30. fetch_api_request_body_mojom_traits_test.cc
  31. fetch_client_settings_object.h
  32. fetch_client_settings_object_snapshot.cc
  33. fetch_client_settings_object_snapshot.h
  34. fetch_context.cc
  35. fetch_context.h
  36. fetch_initiator_info.h
  37. fetch_initiator_type_names.json5
  38. fetch_parameters.cc
  39. fetch_parameters.h
  40. fetch_utils.cc
  41. fetch_utils.h
  42. fetch_utils_test.cc
  43. https_state.cc
  44. https_state.h
  45. integrity_metadata.cc
  46. integrity_metadata.h
  47. loader_freeze_mode.h
  48. loading_attribute_value.h
  49. loading_behavior_observer.h
  50. media_timing.h
  51. memory_cache.cc
  52. memory_cache.h
  53. memory_cache_correctness_test.cc
  54. memory_cache_test.cc
  55. null_resource_fetcher_properties.cc
  56. null_resource_fetcher_properties.h
  57. OWNERS
  58. preload_key.h
  59. raw_resource.cc
  60. raw_resource.h
  61. raw_resource_test.cc
  62. README.md
  63. render_blocking_behavior.h
  64. resource.cc
  65. resource.h
  66. resource_client.cc
  67. resource_client.h
  68. resource_client_walker.h
  69. resource_error.cc
  70. resource_error.h
  71. resource_fetcher.cc
  72. resource_fetcher.h
  73. resource_fetcher_properties.cc
  74. resource_fetcher_properties.h
  75. resource_fetcher_properties_test.cc
  76. resource_fetcher_test.cc
  77. resource_finish_observer.h
  78. resource_load_observer.h
  79. resource_load_priority.h
  80. resource_load_scheduler.cc
  81. resource_load_scheduler.h
  82. resource_load_scheduler_test.cc
  83. resource_load_timing.cc
  84. resource_load_timing.h
  85. resource_loader.cc
  86. resource_loader.h
  87. resource_loader_options.cc
  88. resource_loader_options.h
  89. resource_loader_test.cc
  90. resource_loading_log.h
  91. resource_priority.h
  92. resource_request.cc
  93. resource_request.h
  94. resource_request_test.cc
  95. resource_request_utils.cc
  96. resource_request_utils.h
  97. resource_request_utils_test.cc
  98. resource_response.cc
  99. resource_response.h
  100. resource_response_test.cc
  101. resource_status.h
  102. resource_test.cc
  103. resource_timing_utils.cc
  104. resource_timing_utils.h
  105. response_body_loader.cc
  106. response_body_loader.h
  107. response_body_loader_client.h
  108. response_body_loader_test.cc
  109. script_cached_metadata_handler.cc
  110. script_cached_metadata_handler.h
  111. script_fetch_options.cc
  112. script_fetch_options.h
  113. service_worker_router_info.cc
  114. service_worker_router_info.h
  115. shared_buffer_bytes_consumer.cc
  116. shared_buffer_bytes_consumer.h
  117. shared_buffer_bytes_consumer_test.cc
  118. stale_revalidation_resource_client.cc
  119. stale_revalidation_resource_client.h
  120. subresource_web_bundle.h
  121. subresource_web_bundle_list.cc
  122. subresource_web_bundle_list.h
  123. text_resource_decoder_options.cc
  124. text_resource_decoder_options.h
  125. trust_token_params_conversion.cc
  126. trust_token_params_conversion.h
  127. unique_identifier.cc
  128. unique_identifier.h
  129. webui_bundled_cached_metadata_handler.cc
  130. webui_bundled_cached_metadata_handler.h
  131. worker_resource_timing_notifier.h
third_party/blink/renderer/platform/loader/fetch/README.md

Low-level fetching code.

Fetching/loading code is divided into:

  • core/fetch: Fetch API
  • core/loader: high-level fetching
  • platform/loader/fetch: low-level fetching

Request Prioritization

The request priority used for any given fetch is a browser-specific internal attribute that is generated by considering the destination of the resource, any explicit priority hints as well as browser-specific heuristics. In Chrome's case, it includes:

  • Position in the document so that late-body scripts are not given as high of a priority as early render-blocking scripts.
  • If a fetch is generated by a preload or if it is for the underlying resource directly.

There is a web.dev article describing the priority scheme used by Chrome here.

Determining request priority is spread across 3 different locations in Chrome: