Title: [225708] trunk/Source/WebCore
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;
 };
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to