- Revision
- 225708
- Author
- joep...@webkit.org
- Date
- 2017-12-08 14:57:30 -0800 (Fri, 08 Dec 2017)
Log Message
ServiceWorker Inspector: Should be able to see image content from CacheStorage.add(url) network request
https://bugs.webkit.org/show_bug.cgi?id=180506
Reviewed by Brian Burg.
No test as this only happens inside a ServiceWorker inspector which
we don't yet have a way to test. In a Page Inspector, the
CacheStorage.add network request already behaves as expected.
* inspector/NetworkResourcesData.cpp:
(WebCore::NetworkResourcesData::responseReceived):
(WebCore::shouldBufferResourceData):
* inspector/NetworkResourcesData.h:
(WebCore::NetworkResourcesData::ResourceData::forceBufferData const):
(WebCore::NetworkResourcesData::ResourceData::setForceBufferData):
Provide a way to force buffering in NetworkResourceData.
* inspector/agents/InspectorNetworkAgent.cpp:
(WebCore::InspectorNetworkAgent::didReceiveResponse):
* inspector/agents/InspectorNetworkAgent.h:
* inspector/agents/page/PageNetworkAgent.h:
* inspector/agents/worker/WorkerNetworkAgent.h:
Enable force buffering in a Worker Network Agent.
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (225707 => 225708)
--- trunk/Source/WebCore/ChangeLog 2017-12-08 22:51:26 UTC (rev 225707)
+++ trunk/Source/WebCore/ChangeLog 2017-12-08 22:57:30 UTC (rev 225708)
@@ -1,3 +1,29 @@
+2017-12-08 Joseph Pecoraro <pecor...@apple.com>
+
+ ServiceWorker Inspector: Should be able to see image content from CacheStorage.add(url) network request
+ https://bugs.webkit.org/show_bug.cgi?id=180506
+
+ Reviewed by Brian Burg.
+
+ No test as this only happens inside a ServiceWorker inspector which
+ we don't yet have a way to test. In a Page Inspector, the
+ CacheStorage.add network request already behaves as expected.
+
+ * inspector/NetworkResourcesData.cpp:
+ (WebCore::NetworkResourcesData::responseReceived):
+ (WebCore::shouldBufferResourceData):
+ * inspector/NetworkResourcesData.h:
+ (WebCore::NetworkResourcesData::ResourceData::forceBufferData const):
+ (WebCore::NetworkResourcesData::ResourceData::setForceBufferData):
+ Provide a way to force buffering in NetworkResourceData.
+
+ * inspector/agents/InspectorNetworkAgent.cpp:
+ (WebCore::InspectorNetworkAgent::didReceiveResponse):
+ * inspector/agents/InspectorNetworkAgent.h:
+ * inspector/agents/page/PageNetworkAgent.h:
+ * inspector/agents/worker/WorkerNetworkAgent.h:
+ Enable force buffering in a Worker Network Agent.
+
2017-12-08 Daniel Bates <daba...@apple.com>
Remove unnecessary prefix from AutoFillButtonType enumerators
Modified: trunk/Source/WebCore/inspector/NetworkResourcesData.cpp (225707 => 225708)
--- trunk/Source/WebCore/inspector/NetworkResourcesData.cpp 2017-12-08 22:51:26 UTC (rev 225707)
+++ trunk/Source/WebCore/inspector/NetworkResourcesData.cpp 2017-12-08 22:57:30 UTC (rev 225708)
@@ -150,7 +150,7 @@
m_requestIdToResourceDataMap.set(requestId, WTFMove(resourceData));
}
-void NetworkResourcesData::responseReceived(const String& requestId, const String& frameId, const ResourceResponse& response, InspectorPageAgent::ResourceType type)
+void NetworkResourcesData::responseReceived(const String& requestId, const String& frameId, const ResourceResponse& response, InspectorPageAgent::ResourceType type, bool forceBufferData)
{
ResourceData* resourceData = resourceDataForRequestId(requestId);
if (!resourceData)
@@ -160,6 +160,7 @@
resourceData->setURL(response.url());
resourceData->setHTTPStatusCode(response.httpStatusCode());
resourceData->setType(type);
+ resourceData->setForceBufferData(forceBufferData);
if (InspectorNetworkAgent::shouldTreatAsText(response.mimeType()))
resourceData->setDecoder(InspectorNetworkAgent::createTextDecoder(response.mimeType(), response.textEncodingName()));
@@ -205,6 +206,9 @@
static bool shouldBufferResourceData(const NetworkResourcesData::ResourceData& resourceData)
{
+ if (resourceData.forceBufferData())
+ return true;
+
if (resourceData.decoder())
return true;
Modified: trunk/Source/WebCore/inspector/NetworkResourcesData.h (225707 => 225708)
--- trunk/Source/WebCore/inspector/NetworkResourcesData.h 2017-12-08 22:51:26 UTC (rev 225707)
+++ trunk/Source/WebCore/inspector/NetworkResourcesData.h 2017-12-08 22:57:30 UTC (rev 225708)
@@ -87,6 +87,9 @@
CachedResource* cachedResource() const { return m_cachedResource; }
void setCachedResource(CachedResource* cachedResource) { m_cachedResource = cachedResource; }
+ bool forceBufferData() const { return m_forceBufferData; }
+ void setForceBufferData(bool force) { m_forceBufferData = force; }
+
private:
bool hasData() const { return m_dataBuffer; }
size_t dataLength() const;
@@ -107,6 +110,7 @@
int m_httpStatusCode { 0 };
bool m_isContentEvicted { false };
bool m_base64Encoded { false };
+ bool m_forceBufferData { false };
};
NetworkResourcesData();
@@ -114,7 +118,7 @@
void resourceCreated(const String& requestId, const String& loaderId, InspectorPageAgent::ResourceType);
void resourceCreated(const String& requestId, const String& loaderId, CachedResource&);
- void responseReceived(const String& requestId, const String& frameId, const ResourceResponse&, InspectorPageAgent::ResourceType);
+ void responseReceived(const String& requestId, const String& frameId, const ResourceResponse&, InspectorPageAgent::ResourceType, bool forceBufferData);
void setResourceType(const String& requestId, InspectorPageAgent::ResourceType);
InspectorPageAgent::ResourceType resourceType(const String& requestId);
void setResourceContent(const String& requestId, const String& content, bool base64Encoded = false);
Modified: trunk/Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp (225707 => 225708)
--- trunk/Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp 2017-12-08 22:51:26 UTC (rev 225707)
+++ trunk/Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp 2017-12-08 22:57:30 UTC (rev 225708)
@@ -450,7 +450,7 @@
String frameId = frameIdentifier(loader);
String loaderId = loaderIdentifier(loader);
- m_resourcesData->responseReceived(requestId, frameId, response, type);
+ m_resourcesData->responseReceived(requestId, frameId, response, type, shouldForceBufferingNetworkResourceData());
m_frontendDispatcher->responseReceived(requestId, frameId, loaderId, timestamp(), InspectorPageAgent::resourceTypeJSON(type), resourceResponse);
Modified: trunk/Source/WebCore/inspector/agents/InspectorNetworkAgent.h (225707 => 225708)
--- trunk/Source/WebCore/inspector/agents/InspectorNetworkAgent.h 2017-12-08 22:51:26 UTC (rev 225707)
+++ trunk/Source/WebCore/inspector/agents/InspectorNetworkAgent.h 2017-12-08 22:57:30 UTC (rev 225708)
@@ -123,6 +123,7 @@
virtual Vector<WebSocket*> activeWebSockets(const LockHolder&) = 0;
virtual void setResourceCachingDisabled(bool) = 0;
virtual ScriptExecutionContext* scriptExecutionContext(ErrorString&, const String& frameId) = 0;
+ virtual bool shouldForceBufferingNetworkResourceData() const = 0;
private:
void enable();
Modified: trunk/Source/WebCore/inspector/agents/page/PageNetworkAgent.h (225707 => 225708)
--- trunk/Source/WebCore/inspector/agents/page/PageNetworkAgent.h 2017-12-08 22:51:26 UTC (rev 225707)
+++ trunk/Source/WebCore/inspector/agents/page/PageNetworkAgent.h 2017-12-08 22:57:30 UTC (rev 225708)
@@ -42,6 +42,7 @@
Vector<WebSocket*> activeWebSockets(const LockHolder&) final;
void setResourceCachingDisabled(bool) final;
ScriptExecutionContext* scriptExecutionContext(ErrorString&, const String& frameId) final;
+ bool shouldForceBufferingNetworkResourceData() const final { return false; }
InspectorPageAgent* m_pageAgent { nullptr };
};
Modified: trunk/Source/WebCore/inspector/agents/worker/WorkerNetworkAgent.h (225707 => 225708)
--- trunk/Source/WebCore/inspector/agents/worker/WorkerNetworkAgent.h 2017-12-08 22:51:26 UTC (rev 225707)
+++ trunk/Source/WebCore/inspector/agents/worker/WorkerNetworkAgent.h 2017-12-08 22:57:30 UTC (rev 225708)
@@ -42,6 +42,7 @@
Vector<WebSocket*> activeWebSockets(const LockHolder&) final;
void setResourceCachingDisabled(bool) final;
ScriptExecutionContext* scriptExecutionContext(ErrorString&, const String& frameId) final;
+ bool shouldForceBufferingNetworkResourceData() const final { return true; }
WorkerGlobalScope& m_workerGlobalScope;
};