Logging WebSocket sent frame header information

A NetLog event to log WebSocket received frame header was implemented.
The function to keep parameters for frame header is also used for sent
frame header.

This CL adds the following information on NetLog:
WEBSOCKET_SENT_FRAME_HEADER
--> final = XX
--> masked = XX
--> opcode = XX
--> payload_length = XX
--> reserved1 = XX
--> reserved2 = XX
--> reserved3 = XX

Bug: 1293585
Change-Id: Iadb383b0357cb46a824cdac8d0132ccee68ac646
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3435288
Reviewed-by: Yutaka Hirano <[email protected]>
Reviewed-by: Adam Rice <[email protected]>
Commit-Queue: Nanami Mikiya <[email protected]>
Cr-Commit-Position: refs/heads/main@{#967083}
diff --git a/net/websockets/websocket_basic_stream.cc b/net/websockets/websocket_basic_stream.cc
index 542122f..8b87a0b 100644
--- a/net/websockets/websocket_basic_stream.cc
+++ b/net/websockets/websocket_basic_stream.cc
@@ -209,6 +209,8 @@
   char* dest = combined_buffer->data();
   int remaining_size = total_size;
   for (const auto& frame : *frames) {
+    net_log_.AddEvent(net::NetLogEventType::WEBSOCKET_SENT_FRAME_HEADER,
+                      [&] { return NetLogFrameHeaderParam(&frame->header); });
     WebSocketMaskingKey mask = generate_websocket_masking_key_();
     int result =
         WriteWebSocketFrameHeader(frame->header, &mask, dest, remaining_size);