This CL adds functionality that correctly handles network error of
Subresource Web Bundles.

The problem is: when Web Bundle fetching fails due to a network error,
Subresource fetch doesn't fail forever.
One such case (subresource-loading-cors-error test) was
timing out previously but passes successfully with this change.

This CL also adds 2 WPT tests:
1. subresource-loading-network-error.https.tentative.sub.html
2. subresource-loading-web-bundle-fetch-failed.https.tentative.html

Test #1 is a scenario with a different network error than the CORS
one, but with the same issue of subresource fetching timing out
without the change. It passes successfully after the change.

Test #2 is a scenario with a Web bundle not found error, which is
not directly influenced by the code added in this CL, but it expands
the test coverage which was found to be lacking the error cases before.

Bug: 1168449

Change-Id: Ia3abb967e36274becc86e317bc51b1272d3ae679
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2826001
Reviewed-by: Tsuyoshi Horo <horo@chromium.org>
Reviewed-by: Hayato Ito <hayato@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Miras Myrzakerey <myrzakereyms@google.com>
Cr-Commit-Position: refs/heads/master@{#875532}
GitOrigin-RevId: 3a80aafbdac07e32ea0c4e3a67a654dcb9e703e4
1 file changed
tree: 23695b1f05c06ef47269098baaf098ae21b149c9
  1. .style.yapf
  2. DEPS
  3. DIR_METADATA
  4. OWNERS
  5. accessibility/
  6. android/
  7. apply_cpplint_header_guard.py
  8. auto-nav.py
  9. autotest.py
  10. bash-completion
  11. binary_size/
  12. bisect-builds.py
  13. bisect_repackage/
  14. bisect_test.py
  15. boilerplate.py
  16. buildstate.bat
  17. buildstate.py
  18. cfi/
  19. check_ecs_deps/
  20. check_git_config.py
  21. check_grd_for_unused_strings.py
  22. checkbins/
  23. checklicenses/
  24. checkperms/
  25. checkteamtags/
  26. chrome_extensions/
  27. clang-format-js
  28. clang/
  29. code_coverage/
  30. compile_test/
  31. coverity/
  32. cr/
  33. cros/
  34. cygprofile/
  35. determinism/
  36. diagnose-me.py
  37. diagnosis/
  38. download_optimization_profile.py
  39. dromaeo_benchmark_runner/
  40. dump_process_memory/
  41. emacs/
  42. find_runtime_symbols/
  43. flags/
  44. flakiness/
  45. fuchsia/
  46. gdb/
  47. generate_library_loader/
  48. generate_shim_headers/
  49. generate_stubs/
  50. get_swarming_logs/
  51. git/
  52. gn/
  53. grit/
  54. gritsettings/
  55. gypv8sh.py
  56. idl_parser/
  57. imagediff/
  58. include_tracer.py
  59. infra/
  60. ipc_fuzzer/
  61. ipc_messages_log.py
  62. json_comment_eater/
  63. json_schema_compiler/
  64. json_to_struct/
  65. l10n/
  66. licenses.py
  67. linux/
  68. lldb/
  69. luci-go/
  70. mac/
  71. make-gtest-filter.py
  72. mb/
  73. md_browser/
  74. media_engagement_preload/
  75. memory/
  76. memory_inspector/
  77. metrics/
  78. msan/
  79. multi_process_rss.py
  80. nocompile_driver.py
  81. omahaproxy.py
  82. oopif/
  83. origin_trials/
  84. page_cycler/
  85. perf/
  86. perry.py
  87. polymer/
  88. privacy_budget/
  89. protoc_wrapper/
  90. python/
  91. real_world_impact/
  92. remove_duplicate_includes.py
  93. remove_stale_pyc_files.py
  94. resources/
  95. resultdb/
  96. roll_webgl_conformance.py
  97. run-swarmed.py
  98. security/
  99. site_compare/
  100. sort-headers.py
  101. sort_sources.py
  102. stats_viewer/
  103. strict_enum_value_checker/
  104. style_variable_generator/
  105. sublime/
  106. symsrc/
  107. tcmalloc/
  108. tests/
  109. traceline/
  110. traffic_annotation/
  111. translation/
  112. typescript/
  113. uberblame.py
  114. ubsan/
  115. unused-symbols-report.py
  116. update_pgo_profiles.py
  117. usb_gadget/
  118. v8_context_snapshot/
  119. valgrind/
  120. variations/
  121. vim/
  122. vscode/
  123. web_bluetooth/
  124. web_dev_style/
  125. win/
  126. yes_no.py