[WebSocket] Update renderer to use mojo writable datapipe

This commit updates the renderer to use mojo datapipe to transfer
WebSocket mesasge to the network service, which later sends out the
message with appropriate framing. It adds new ProducePendingData() and
ProduceData() functions to write pending messages to the datapipe. It
also adds mojo SimpleWatcher and OnWritable callback function in case
when the data pipe is unavailable at the moment.

This also updates the unittests to stop testing the quota system,
and start testing the new datapipe transfer.

This commit is a follow-up CL from the following CL:
https://chromium-review.googlesource.com/c/chromium/src/+/2071189

Design Doc:
https://docs.google.com/document/d/1YWj1z9r8wxemGdod6S2tkchudhp6PvNaH3qSO0oucfY/

This is a rebase of
https://chromium-review.googlesource.com/c/chromium/src/+/2089564,
originally by Keita Suzuki.

Bug: 1056030
Change-Id: Ic57abc92b95dad0765c55945439ced5adaf227b9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2206556
Reviewed-by: Yutaka Hirano <yhirano@chromium.org>
Commit-Queue: Adam Rice <ricea@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#771697}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: d009570338948bb11b49210df930924825de95d8
5 files changed
tree: 632c57251714578ddc0f0d62cad7fab6cfd3f236
  1. abseil-cpp/
  2. accessibility-audit/
  3. accessibility_test_framework/
  4. adobe/
  5. afl/
  6. android_build_tools/
  7. android_crazy_linker/
  8. android_data_chart/
  9. android_deps/
  10. android_media/
  11. android_opengl/
  12. android_platform/
  13. android_protobuf/
  14. android_protoc/
  15. android_provider/
  16. android_sdk/
  17. android_support_test_runner/
  18. android_swipe_refresh/
  19. android_system_sdk/
  20. apache-mac/
  21. apache-portable-runtime/
  22. apache-win32/
  23. apple_apsl/
  24. arcore-android-sdk/
  25. arcore-android-sdk-client/
  26. ashmem/
  27. axe-core/
  28. bazel/
  29. blanketjs/
  30. blink/
  31. boringssl/
  32. bouncycastle/
  33. breakpad/
  34. brotli/
  35. bspatch/
  36. byte_buddy/
  37. cacheinvalidation/
  38. ced/
  39. chaijs/
  40. checkstyle/
  41. chromevox/
  42. cld_3/
  43. closure_compiler/
  44. colorama/
  45. crashpad/
  46. crc32c/
  47. d3/
  48. dav1d/
  49. decklink/
  50. devscripts/
  51. dom_distiller_js/
  52. dpkg-shlibdeps/
  53. emoji-segmenter/
  54. espresso/
  55. expat/
  56. feed_library/
  57. flatbuffers/
  58. fontconfig/
  59. freetype/
  60. fuchsia-sdk/
  61. gif_player/
  62. glfw/
  63. glslang/
  64. google-truth/
  65. google_android_play_core/
  66. google_appengine_cloudstorage/
  67. google_benchmark/
  68. google_input_tools/
  69. google_toolbox_for_mac/
  70. google_trust_services/
  71. googletest/
  72. gradle_wrapper/
  73. grpc/
  74. guava/
  75. gvr-android-keyboard/
  76. gvr-android-sdk/
  77. hamcrest/
  78. harfbuzz-ng/
  79. hunspell/
  80. iaccessible2/
  81. iccjpeg/
  82. icu4j/
  83. ijar/
  84. ink/
  85. inspector_protocol/
  86. instrumented_libraries/
  87. isimpledom/
  88. jacoco/
  89. javalang/
  90. jdk/
  91. jetifier_standalone/
  92. jinja2/
  93. jsoncpp/
  94. jstemplate/
  95. junit/
  96. khronos/
  97. lcov/
  98. leveldatabase/
  99. libaddressinput/
  100. libaom/
  101. libavif/
  102. libbrlapi/
  103. libdrm/
  104. libFuzzer/
  105. libgav1/
  106. libipp/
  107. libjingle_xmpp/
  108. liblouis/
  109. libovr/
  110. libphonenumber/
  111. libpng/
  112. libprotobuf-mutator/
  113. libsecret/
  114. libsync/
  115. libudev/
  116. libusb/
  117. libvpx/
  118. libwebm/
  119. libwebp/
  120. libxml/
  121. libXNVCtrl/
  122. libxslt/
  123. logilab/
  124. lottie/
  125. lzma_sdk/
  126. mako/
  127. markdown/
  128. markupsafe/
  129. material_design_icons/
  130. mesa_headers/
  131. metrics_proto/
  132. microsoft_webauthn/
  133. minigbm/
  134. minizip/
  135. mocha/
  136. mockito/
  137. modp_b64/
  138. motemplate/
  139. mozilla/
  140. netty-tcnative/
  141. netty4/
  142. node/
  143. objenesis/
  144. ocmock/
  145. one_euro_filter/
  146. opencv/
  147. openh264/
  148. openscreen/
  149. openvr/
  150. openxr/
  151. opus/
  152. ots/
  153. ow2_asm/
  154. pexpect/
  155. pffft/
  156. ply/
  157. polymer/
  158. private-join-and-compute/
  159. private_membership/
  160. proguard/
  161. protobuf/
  162. protoc_javalite/
  163. pycoverage/
  164. pyjson5/
  165. pylint/
  166. pymock/
  167. pystache/
  168. Python-Markdown/
  169. pywebsocket/
  170. pywebsocket3/
  171. qcms/
  172. quic_trace/
  173. qunit/
  174. r8/
  175. re2/
  176. requests/
  177. rnnoise/
  178. robolectric/
  179. s2cellid/
  180. schema_org/
  181. shaderc/
  182. shell-encryption/
  183. simplejson/
  184. sinonjs/
  185. six/
  186. smhasher/
  187. snappy/
  188. speech-dispatcher/
  189. spirv-cross/
  190. spirv-headers/
  191. SPIRV-Tools/
  192. sqlite/
  193. sqlite4java/
  194. subresource-filter-ruleset/
  195. sudden_motion_sensor/
  196. tcmalloc/
  197. test_fonts/
  198. tlslite/
  199. turbine/
  200. ub-uiautomator/
  201. unrar/
  202. usb_ids/
  203. usrsctp/
  204. v4l-utils/
  205. vulkan_headers/
  206. wayland/
  207. wayland-protocols/
  208. wds/
  209. web-animations-js/
  210. webdriver/
  211. webgl/
  212. webgpu-cts/
  213. webrtc_overrides/
  214. webxr_test_pages/
  215. weston/
  216. widevine/
  217. win_build_output/
  218. woff2/
  219. wtl/
  220. wuffs/
  221. xstream/
  222. zlib/
  223. .gitignore
  224. BUILD.gn
  225. DEPS
  226. libjpeg.gni
  227. OWNERS
  228. PRESUBMIT.py
  229. README.chromium
  230. README.chromium.template