Diff
Modified: trunk/Source/WebCore/ChangeLog (233862 => 233863)
--- trunk/Source/WebCore/ChangeLog 2018-07-16 20:10:06 UTC (rev 233862)
+++ trunk/Source/WebCore/ChangeLog 2018-07-16 20:23:52 UTC (rev 233863)
@@ -1,3 +1,18 @@
+2018-07-16 Alex Christensen <[email protected]>
+
+ Reduce size of NetworkLoadMetrics and therefore ResourceResponse
+ https://bugs.webkit.org/show_bug.cgi?id=187671
+
+ Reviewed by Darin Adler.
+
+ * inspector/agents/InspectorNetworkAgent.cpp:
+ (WebCore::toProtocol):
+ (WebCore::InspectorNetworkAgent::buildObjectForMetrics):
+ * platform/network/NetworkLoadMetrics.h:
+ (WebCore::NetworkLoadMetrics::isolatedCopy const):
+ (WebCore::NetworkLoadMetrics::reset):
+ (WebCore::NetworkLoadMetrics::clearNonTimingData):
+
2018-07-16 Chris Dumez <[email protected]>
Make sure LibWebRTCMediaEndpoint is always destroyed on the main thread
Modified: trunk/Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp (233862 => 233863)
--- trunk/Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp 2018-07-16 20:10:06 UTC (rev 233862)
+++ trunk/Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp 2018-07-16 20:23:52 UTC (rev 233863)
@@ -220,6 +220,8 @@
return Inspector::Protocol::Network::Metrics::Priority::Medium;
case NetworkLoadPriority::High:
return Inspector::Protocol::Network::Metrics::Priority::High;
+ case NetworkLoadPriority::Unknown:
+ break;
}
ASSERT_NOT_REACHED();
@@ -232,25 +234,25 @@
if (!networkLoadMetrics.protocol.isNull())
metrics->setProtocol(networkLoadMetrics.protocol);
- if (networkLoadMetrics.priority)
- metrics->setPriority(toProtocol(*networkLoadMetrics.priority));
- if (networkLoadMetrics.remoteAddress)
- metrics->setRemoteAddress(*networkLoadMetrics.remoteAddress);
- if (networkLoadMetrics.connectionIdentifier)
- metrics->setConnectionIdentifier(*networkLoadMetrics.connectionIdentifier);
- if (networkLoadMetrics.requestHeaders)
- metrics->setRequestHeaders(buildObjectForHeaders(*networkLoadMetrics.requestHeaders));
+ if (networkLoadMetrics.priority != NetworkLoadPriority::Unknown)
+ metrics->setPriority(toProtocol(networkLoadMetrics.priority));
+ if (!networkLoadMetrics.remoteAddress.isNull())
+ metrics->setRemoteAddress(networkLoadMetrics.remoteAddress);
+ if (!networkLoadMetrics.connectionIdentifier.isNull())
+ metrics->setConnectionIdentifier(networkLoadMetrics.connectionIdentifier);
+ if (!networkLoadMetrics.requestHeaders.isEmpty())
+ metrics->setRequestHeaders(buildObjectForHeaders(networkLoadMetrics.requestHeaders));
- if (networkLoadMetrics.requestHeaderBytesSent)
- metrics->setRequestHeaderBytesSent(*networkLoadMetrics.requestHeaderBytesSent);
- if (networkLoadMetrics.requestBodyBytesSent)
- metrics->setRequestBodyBytesSent(*networkLoadMetrics.requestBodyBytesSent);
- if (networkLoadMetrics.responseHeaderBytesReceived)
- metrics->setResponseHeaderBytesReceived(*networkLoadMetrics.responseHeaderBytesReceived);
- if (networkLoadMetrics.responseBodyBytesReceived)
- metrics->setResponseBodyBytesReceived(*networkLoadMetrics.responseBodyBytesReceived);
- if (networkLoadMetrics.responseBodyDecodedSize)
- metrics->setResponseBodyDecodedSize(*networkLoadMetrics.responseBodyDecodedSize);
+ if (networkLoadMetrics.requestHeaderBytesSent != std::numeric_limits<uint32_t>::max())
+ metrics->setRequestHeaderBytesSent(networkLoadMetrics.requestHeaderBytesSent);
+ if (networkLoadMetrics.requestBodyBytesSent != std::numeric_limits<uint64_t>::max())
+ metrics->setRequestBodyBytesSent(networkLoadMetrics.requestBodyBytesSent);
+ if (networkLoadMetrics.responseHeaderBytesReceived != std::numeric_limits<uint32_t>::max())
+ metrics->setResponseHeaderBytesReceived(networkLoadMetrics.responseHeaderBytesReceived);
+ if (networkLoadMetrics.responseBodyBytesReceived != std::numeric_limits<uint64_t>::max())
+ metrics->setResponseBodyBytesReceived(networkLoadMetrics.responseBodyBytesReceived);
+ if (networkLoadMetrics.responseBodyDecodedSize != std::numeric_limits<uint64_t>::max())
+ metrics->setResponseBodyDecodedSize(networkLoadMetrics.responseBodyDecodedSize);
return metrics;
}
Modified: trunk/Source/WebCore/platform/network/NetworkLoadMetrics.h (233862 => 233863)
--- trunk/Source/WebCore/platform/network/NetworkLoadMetrics.h 2018-07-16 20:10:06 UTC (rev 233862)
+++ trunk/Source/WebCore/platform/network/NetworkLoadMetrics.h 2018-07-16 20:23:52 UTC (rev 233863)
@@ -43,6 +43,7 @@
Low,
Medium,
High,
+ Unknown,
};
class NetworkLoadMetrics {
@@ -67,14 +68,10 @@
copy.complete = complete;
copy.protocol = protocol.isolatedCopy();
- if (remoteAddress)
- copy.remoteAddress = remoteAddress.value().isolatedCopy();
- if (connectionIdentifier)
- copy.connectionIdentifier = connectionIdentifier.value().isolatedCopy();
- if (priority)
- copy.priority = *priority;
- if (requestHeaders)
- copy.requestHeaders = requestHeaders.value().isolatedCopy();
+ copy.remoteAddress = remoteAddress.isolatedCopy();
+ copy.connectionIdentifier = connectionIdentifier.isolatedCopy();
+ copy.priority = priority;
+ copy.requestHeaders = requestHeaders.isolatedCopy();
copy.requestHeaderBytesSent = requestHeaderBytesSent;
copy.requestBodyBytesSent = requestBodyBytesSent;
@@ -97,28 +94,20 @@
responseEnd = Seconds(0);
complete = false;
protocol = String();
- remoteAddress = std::nullopt;
- connectionIdentifier = std::nullopt;
- priority = std::nullopt;
- requestHeaders = std::nullopt;
- requestHeaderBytesSent = std::nullopt;
- requestBodyBytesSent = std::nullopt;
- responseHeaderBytesReceived = std::nullopt;
- responseBodyBytesReceived = std::nullopt;
- responseBodyDecodedSize = std::nullopt;
+ clearNonTimingData();
}
void clearNonTimingData()
{
- remoteAddress = std::nullopt;
- connectionIdentifier = std::nullopt;
- priority = std::nullopt;
- requestHeaders = std::nullopt;
- requestHeaderBytesSent = std::nullopt;
- requestBodyBytesSent = std::nullopt;
- responseHeaderBytesReceived = std::nullopt;
- responseBodyBytesReceived = std::nullopt;
- responseBodyDecodedSize = std::nullopt;
+ remoteAddress = String();
+ connectionIdentifier = String();
+ priority = NetworkLoadPriority::Unknown;
+ requestHeaders.clear();
+ requestHeaderBytesSent = std::numeric_limits<uint32_t>::max();
+ requestBodyBytesSent = std::numeric_limits<uint64_t>::max();
+ responseHeaderBytesReceived = std::numeric_limits<uint32_t>::max();
+ responseBodyBytesReceived = std::numeric_limits<uint64_t>::max();
+ responseBodyDecodedSize = std::numeric_limits<uint64_t>::max();
}
bool operator==(const NetworkLoadMetrics& other) const
@@ -169,20 +158,20 @@
// ALPN Protocol ID: https://w3c.github.io/resource-timing/#bib-RFC7301
String protocol;
- std::optional<String> remoteAddress;
- std::optional<String> connectionIdentifier;
- std::optional<NetworkLoadPriority> priority;
+ String remoteAddress;
+ String connectionIdentifier;
+ NetworkLoadPriority priority;
// Whether or not all of the properties (0 or otherwise) have been set.
bool complete { false };
- std::optional<HTTPHeaderMap> requestHeaders;
+ HTTPHeaderMap requestHeaders;
- std::optional<uint64_t> requestHeaderBytesSent;
- std::optional<uint64_t> requestBodyBytesSent;
- std::optional<uint64_t> responseHeaderBytesReceived;
- std::optional<uint64_t> responseBodyBytesReceived;
- std::optional<uint64_t> responseBodyDecodedSize;
+ uint32_t requestHeaderBytesSent;
+ uint32_t responseHeaderBytesReceived;
+ uint64_t requestBodyBytesSent;
+ uint64_t responseBodyBytesReceived;
+ uint64_t responseBodyDecodedSize;
};
#if PLATFORM(COCOA)
Modified: trunk/Source/WebKit/ChangeLog (233862 => 233863)
--- trunk/Source/WebKit/ChangeLog 2018-07-16 20:10:06 UTC (rev 233862)
+++ trunk/Source/WebKit/ChangeLog 2018-07-16 20:23:52 UTC (rev 233863)
@@ -1,3 +1,12 @@
+2018-07-16 Alex Christensen <[email protected]>
+
+ Reduce size of NetworkLoadMetrics and therefore ResourceResponse
+ https://bugs.webkit.org/show_bug.cgi?id=187671
+
+ Reviewed by Darin Adler.
+
+ * Shared/WebCoreArgumentCoders.h:
+
2018-07-16 Sihui Liu <[email protected]>
IndexedDB: closeAndDeleteDatabasesForOrigins should remove all databases for those origins
Modified: trunk/Source/WebKit/NetworkProcess/cache/CacheStorageEngineCache.cpp (233862 => 233863)
--- trunk/Source/WebKit/NetworkProcess/cache/CacheStorageEngineCache.cpp 2018-07-16 20:10:06 UTC (rev 233862)
+++ trunk/Source/WebKit/NetworkProcess/cache/CacheStorageEngineCache.cpp 2018-07-16 20:23:52 UTC (rev 233863)
@@ -31,6 +31,7 @@
#include "NetworkCacheIOChannel.h"
#include "NetworkCacheKey.h"
#include "NetworkProcess.h"
+#include "WebCoreArgumentCoders.h"
#include <WebCore/CacheQueryOptions.h>
#include <WebCore/HTTPParsers.h>
#include <pal/SessionID.h>
Modified: trunk/Source/WebKit/NetworkProcess/cache/NetworkCacheEntry.cpp (233862 => 233863)
--- trunk/Source/WebKit/NetworkProcess/cache/NetworkCacheEntry.cpp 2018-07-16 20:10:06 UTC (rev 233862)
+++ trunk/Source/WebKit/NetworkProcess/cache/NetworkCacheEntry.cpp 2018-07-16 20:23:52 UTC (rev 233863)
@@ -29,6 +29,7 @@
#include "Logging.h"
#include "NetworkCacheCoders.h"
#include "NetworkProcess.h"
+#include "WebCoreArgumentCoders.h"
#include <WebCore/ResourceRequest.h>
#include <WebCore/SharedBuffer.h>
#include <wtf/text/StringBuilder.h>
Modified: trunk/Source/WebKit/Shared/WebCoreArgumentCoders.h (233862 => 233863)
--- trunk/Source/WebKit/Shared/WebCoreArgumentCoders.h 2018-07-16 20:10:06 UTC (rev 233862)
+++ trunk/Source/WebKit/Shared/WebCoreArgumentCoders.h 2018-07-16 20:23:52 UTC (rev 233863)
@@ -749,7 +749,8 @@
WebCore::NetworkLoadPriority,
WebCore::NetworkLoadPriority::Low,
WebCore::NetworkLoadPriority::Medium,
- WebCore::NetworkLoadPriority::High
+ WebCore::NetworkLoadPriority::High,
+ WebCore::NetworkLoadPriority::Unknown
>;
};