Title: [294268] trunk/Source/WebKit
- Revision
- 294268
- Author
- yu...@chromium.org
- Date
- 2022-05-16 15:25:50 -0700 (Mon, 16 May 2022)
Log Message
[SOUP2] Compute number of header bytes whe using soup 2
https://bugs.webkit.org/show_bug.cgi?id=240200
Reviewed by Michael Catanzaro.
SOUP 2 lacks methods that allow to get computed head sizes (only present in v3),
calculate the sizes manually when libsoup 2 is used.
No new tests, covered by LayoutTests/http/tests/inspector/network/resource-sizes-network.html
when compiled with SOUP 2.
* NetworkProcess/soup/NetworkDataTaskSoup.cpp:
(WebKit::addHeaderSizes):
(WebKit::NetworkDataTaskSoup::didGetHeaders):
Modified Paths
Diff
Modified: trunk/Source/WebKit/ChangeLog (294267 => 294268)
--- trunk/Source/WebKit/ChangeLog 2022-05-16 22:25:02 UTC (rev 294267)
+++ trunk/Source/WebKit/ChangeLog 2022-05-16 22:25:50 UTC (rev 294268)
@@ -1,3 +1,20 @@
+2022-05-16 Yury Semikhatsky <yu...@chromium.org>
+
+ [SOUP2] Compute number of header bytes whe using soup 2
+ https://bugs.webkit.org/show_bug.cgi?id=240200
+
+ Reviewed by Michael Catanzaro.
+
+ SOUP 2 lacks methods that allow to get computed head sizes (only present in v3),
+ calculate the sizes manually when libsoup 2 is used.
+
+ No new tests, covered by LayoutTests/http/tests/inspector/network/resource-sizes-network.html
+ when compiled with SOUP 2.
+
+ * NetworkProcess/soup/NetworkDataTaskSoup.cpp:
+ (WebKit::addHeaderSizes):
+ (WebKit::NetworkDataTaskSoup::didGetHeaders):
+
2022-05-16 Brent Fulgham <bfulg...@apple.com>
Remove abandoned UseScreenCaptureKit preference
Modified: trunk/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp (294267 => 294268)
--- trunk/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp 2022-05-16 22:25:02 UTC (rev 294267)
+++ trunk/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp 2022-05-16 22:25:50 UTC (rev 294268)
@@ -1218,6 +1218,15 @@
return *m_networkLoadMetrics.additionalNetworkLoadMetricsForWebInspector;
}
+#if USE(SOUP2)
+static void addHeaderSizes(const char *name, const char *value, gpointer pointer)
+{
+ uint64_t* size = static_cast<uint64_t*>(pointer);
+ // Each header is formatted as "<name>: <value>\r\n"
+ *size += strlen(name) + strlen(value) + 4;
+}
+#endif
+
void NetworkDataTaskSoup::didGetHeaders()
{
// We are a bit more conservative with the persistent credential storage than the session store,
@@ -1263,6 +1272,20 @@
additionalMetrics.tlsProtocol = tlsProtocolVersionToString(soup_message_get_tls_protocol_version(m_soupMessage.get()));
additionalMetrics.tlsCipher = String::fromUTF8(soup_message_get_tls_ciphersuite_name(m_soupMessage.get()));
additionalMetrics.responseHeaderBytesReceived = soup_message_metrics_get_response_header_bytes_received(metrics);
+#else
+ {
+ auto* requestHeaders = soup_message_get_request_headers(m_soupMessage.get());
+ uint64_t requestHeadersSize = 0;
+ soup_message_headers_foreach(requestHeaders, addHeaderSizes, &requestHeadersSize);
+ additionalMetrics.requestHeaderBytesSent = requestHeadersSize;
+ }
+
+ {
+ auto* responseHeaders = soup_message_get_response_headers(m_soupMessage.get());
+ uint64_t responseHeadersSize = 0;
+ soup_message_headers_foreach(responseHeaders, addHeaderSizes, &responseHeadersSize);
+ additionalMetrics.responseHeaderBytesReceived = responseHeadersSize;
+ }
#endif
}
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes