Skip to content

Commit 14a1b54

Browse files
[WebInspector] make customizable limit for content resources kept for network page of WebInspector
https://bugs.webkit.org/show_bug.cgi?id=290160 Reviewed by Adrian Perez de Castro, Michael Catanzaro, and Devin Rousso. Without this change, `maximumResourcesContentSize` is hardcoded (200MB) in `NetworkResourcesData`. On system with limited memory (embedded devices) it would be good to have smaller value (50MB). This change provides the web preference `InspectorMaximumResourcesContentSize` which is used to set a different value depending on the platform (50 MB for WPE and 200MB for the rest). * Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml: * Source/WebCore/inspector/NetworkResourcesData.cpp: (WebCore::NetworkResourcesData::NetworkResourcesData): * Source/WebCore/inspector/NetworkResourcesData.h: * Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp: (WebCore::InspectorNetworkAgent::InspectorNetworkAgent): * Source/WebCore/inspector/agents/InspectorNetworkAgent.h: * Source/WebCore/inspector/agents/page/PageNetworkAgent.cpp: (WebCore::PageNetworkAgent::PageNetworkAgent): * Source/WebCore/inspector/agents/worker/WorkerNetworkAgent.cpp: (WebCore::WorkerNetworkAgent::WorkerNetworkAgent): Canonical link: https://commits.webkit.org/293008@main
1 parent 4b3faa7 commit 14a1b54

7 files changed

Lines changed: 23 additions & 11 deletions

File tree

Source/WTF/Scripts/Preferences/WebPreferences.yaml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1000,6 +1000,19 @@ InspectorAttachmentSide:
10001000
WebKit:
10011001
default: 0
10021002

1003+
InspectorMaximumResourcesContentSize:
1004+
type: uint32_t
1005+
status: embedder
1006+
defaultValue:
1007+
WebKitLegacy:
1008+
default: 200
1009+
WebKit:
1010+
"PLATFORM(WPE)": 50
1011+
default: 200
1012+
WebCore:
1013+
"PLATFORM(WPE)": 50
1014+
default: 200
1015+
10031016
InspectorStartsAttached:
10041017
type: bool
10051018
webcoreBinding: none

Source/WebCore/inspector/NetworkResourcesData.cpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,7 @@ namespace WebCore {
4040

4141
using namespace Inspector;
4242

43-
static const size_t maximumResourcesContentSize = 200 * 1000 * 1000; // 200MB
44-
static const size_t maximumSingleResourceContentSize = 50 * 1000 * 1000; // 50MB
43+
static const unsigned maximumSingleResourceContentSizeMB = 50; // 50MB
4544

4645
NetworkResourcesData::ResourceData::ResourceData(const String& requestId, const String& loaderId)
4746
: m_requestId(requestId)
@@ -114,9 +113,9 @@ void NetworkResourcesData::ResourceData::decodeDataToContent()
114113
ASSERT(m_content.sizeInBytes() >= buffer->size());
115114
}
116115

117-
NetworkResourcesData::NetworkResourcesData()
118-
: m_maximumResourcesContentSize(maximumResourcesContentSize)
119-
, m_maximumSingleResourceContentSize(maximumSingleResourceContentSize)
116+
NetworkResourcesData::NetworkResourcesData(uint32_t maximumResourcesContentSize)
117+
: m_maximumResourcesContentSize(maximumResourcesContentSize * MB)
118+
, m_maximumSingleResourceContentSize(maximumSingleResourceContentSizeMB * MB)
120119
{
121120
}
122121

Source/WebCore/inspector/NetworkResourcesData.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ class NetworkResourcesData {
132132
WallTime m_responseTimestamp;
133133
};
134134

135-
NetworkResourcesData();
135+
NetworkResourcesData(uint32_t maximumResourcesContentSize);
136136
~NetworkResourcesData();
137137

138138
void resourceCreated(const String& requestId, const String& loaderId, InspectorPageAgent::ResourceType);

Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -180,12 +180,12 @@ Ref<Protocol::Network::WebSocketFrame> buildWebSocketMessage(const WebSocketFram
180180

181181
} // namespace
182182

183-
InspectorNetworkAgent::InspectorNetworkAgent(WebAgentContext& context)
183+
InspectorNetworkAgent::InspectorNetworkAgent(WebAgentContext& context, uint32_t maximumResourcesContentSize)
184184
: InspectorAgentBase("Network"_s, context)
185185
, m_frontendDispatcher(makeUnique<Inspector::NetworkFrontendDispatcher>(context.frontendRouter))
186186
, m_backendDispatcher(Inspector::NetworkBackendDispatcher::create(context.backendDispatcher, this))
187187
, m_injectedScriptManager(context.injectedScriptManager)
188-
, m_resourcesData(makeUnique<NetworkResourcesData>())
188+
, m_resourcesData(makeUnique<NetworkResourcesData>(maximumResourcesContentSize))
189189
{
190190
}
191191

Source/WebCore/inspector/agents/InspectorNetworkAgent.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ class InspectorNetworkAgent : public InspectorAgentBase, public Inspector::Netwo
137137
void searchInRequest(Inspector::Protocol::ErrorString&, const Inspector::Protocol::Network::RequestId&, const String& query, bool caseSensitive, bool isRegex, RefPtr<JSON::ArrayOf<Inspector::Protocol::GenericTypes::SearchMatch>>&);
138138

139139
protected:
140-
InspectorNetworkAgent(WebAgentContext&);
140+
InspectorNetworkAgent(WebAgentContext&, uint32_t);
141141

142142
virtual Inspector::Protocol::Network::LoaderId loaderIdentifier(DocumentLoader*) = 0;
143143
virtual Inspector::Protocol::Network::FrameId frameIdentifier(DocumentLoader*) = 0;

Source/WebCore/inspector/agents/page/PageNetworkAgent.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ namespace WebCore {
4242
using namespace Inspector;
4343

4444
PageNetworkAgent::PageNetworkAgent(PageAgentContext& context, InspectorClient* client)
45-
: InspectorNetworkAgent(context)
45+
: InspectorNetworkAgent(context, context.inspectedPage.settings().inspectorMaximumResourcesContentSize())
4646
, m_inspectedPage(context.inspectedPage)
4747
, m_client(client)
4848
{

Source/WebCore/inspector/agents/worker/WorkerNetworkAgent.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ namespace WebCore {
3636
using namespace Inspector;
3737

3838
WorkerNetworkAgent::WorkerNetworkAgent(WorkerAgentContext& context)
39-
: InspectorNetworkAgent(context)
39+
: InspectorNetworkAgent(context, context.globalScope.settingsValues().inspectorMaximumResourcesContentSize)
4040
, m_globalScope(context.globalScope)
4141
{
4242
ASSERT(context.globalScope.isContextThread());

0 commit comments

Comments
 (0)