Title: [254919] trunk
Revision
254919
Author
[email protected]
Date
2020-01-22 06:26:10 -0800 (Wed, 22 Jan 2020)

Log Message

Add logging of the source of a response used to respond a fetch event
https://bugs.webkit.org/show_bug.cgi?id=206426

Reviewed by Darin Adler.

Source/WebCore:

Add a DOMCache response source value.
This is set on responses created by DOMCache.
Update code that checks the source to handle this new value similary to ApplicationCache.
No change of behavior.

Add an internal test to verify a fetch response grabbed from DOM cache has the right source.

* Modules/cache/DOMCache.cpp:
(WebCore::DOMCache::updateRecords):
* inspector/agents/InspectorNetworkAgent.cpp:
(WebCore::responseSource):
* loader/ResourceLoader.cpp:
(WebCore::logResourceResponseSource):
* platform/network/ResourceResponseBase.h:
* testing/Internals.cpp:
(WebCore::responseSourceToString):
* workers/service/context/ServiceWorkerFetch.cpp:
(WebCore::ServiceWorkerFetch::processResponse):
Remove setting of the source to service worker, this is done in NetworkProcess
just before sending the response to the WebProcess.

Source/WebKit:

* NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:
(WebKit::ServiceWorkerFetchTask::didReceiveResponse):
Log the source of the response.
* WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::havePerformedSecurityChecks const):
Add case of DOMCache, similar to ServiceWorker.

LayoutTests:

* http/wpt/cache-storage/cache-put-keys.https.any.js:
(cache_test):

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (254918 => 254919)


--- trunk/LayoutTests/ChangeLog	2020-01-22 14:08:40 UTC (rev 254918)
+++ trunk/LayoutTests/ChangeLog	2020-01-22 14:26:10 UTC (rev 254919)
@@ -1,3 +1,13 @@
+2020-01-22  youenn fablet  <[email protected]>
+
+        Add logging of the source of a response used to respond a fetch event
+        https://bugs.webkit.org/show_bug.cgi?id=206426
+
+        Reviewed by Darin Adler.
+
+        * http/wpt/cache-storage/cache-put-keys.https.any.js:
+        (cache_test):
+
 2020-01-21  Fujii Hironori  <[email protected]>
 
         A partially selected RTL text is placed at a wrong vertical position if it has a vertical initial advance

Modified: trunk/LayoutTests/http/wpt/cache-storage/cache-put-keys.https.any.js (254918 => 254919)


--- trunk/LayoutTests/http/wpt/cache-storage/cache-put-keys.https.any.js	2020-01-22 14:08:40 UTC (rev 254918)
+++ trunk/LayoutTests/http/wpt/cache-storage/cache-put-keys.https.any.js	2020-01-22 14:26:10 UTC (rev 254919)
@@ -20,6 +20,8 @@
     }).then(function() {
         return cache.match(test_url);
     }).then(function(result) {
+        if (self.internals && self.internals.fetchResponseSource)
+            assert_equals(internals.fetchResponseSource(result), "DOM cache");
         assert_response_equals(result, alternate_response, 'Cache.put should replace existing ' + 'response with new response.');
         return result.text();
     }).then(function(body) {

Modified: trunk/Source/WebCore/ChangeLog (254918 => 254919)


--- trunk/Source/WebCore/ChangeLog	2020-01-22 14:08:40 UTC (rev 254918)
+++ trunk/Source/WebCore/ChangeLog	2020-01-22 14:26:10 UTC (rev 254919)
@@ -1,3 +1,31 @@
+2020-01-22  youenn fablet  <[email protected]>
+
+        Add logging of the source of a response used to respond a fetch event
+        https://bugs.webkit.org/show_bug.cgi?id=206426
+
+        Reviewed by Darin Adler.
+
+        Add a DOMCache response source value.
+        This is set on responses created by DOMCache.
+        Update code that checks the source to handle this new value similary to ApplicationCache.
+        No change of behavior.
+
+        Add an internal test to verify a fetch response grabbed from DOM cache has the right source.
+
+        * Modules/cache/DOMCache.cpp:
+        (WebCore::DOMCache::updateRecords):
+        * inspector/agents/InspectorNetworkAgent.cpp:
+        (WebCore::responseSource):
+        * loader/ResourceLoader.cpp:
+        (WebCore::logResourceResponseSource):
+        * platform/network/ResourceResponseBase.h:
+        * testing/Internals.cpp:
+        (WebCore::responseSourceToString):
+        * workers/service/context/ServiceWorkerFetch.cpp:
+        (WebCore::ServiceWorkerFetch::processResponse):
+        Remove setting of the source to service worker, this is done in NetworkProcess
+        just before sending the response to the WebProcess.
+
 2020-01-22  David Kilzer  <[email protected]>
 
         REGRESSION (r254893): Apple Win 10 Debug build failure

Modified: trunk/Source/WebCore/Modules/cache/DOMCache.cpp (254918 => 254919)


--- trunk/Source/WebCore/Modules/cache/DOMCache.cpp	2020-01-22 14:08:40 UTC (rev 254918)
+++ trunk/Source/WebCore/Modules/cache/DOMCache.cpp	2020-01-22 14:26:10 UTC (rev 254919)
@@ -574,6 +574,7 @@
         if (index != notFound) {
             auto& current = m_records[index];
             if (current.updateResponseCounter != record.updateResponseCounter) {
+                record.response.setSource(ResourceResponse::Source::DOMCache);
                 auto response = FetchResponse::create(*scriptExecutionContext(), WTF::nullopt, record.responseHeadersGuard, WTFMove(record.response));
                 response->setBodyData(WTFMove(record.responseBody), record.responseBodySize);
 
@@ -585,6 +586,7 @@
             auto requestHeaders = FetchHeaders::create(record.requestHeadersGuard, HTTPHeaderMap { record.request.httpHeaderFields() });
             auto request = FetchRequest::create(*scriptExecutionContext(), WTF::nullopt, WTFMove(requestHeaders),  WTFMove(record.request), WTFMove(record.options), WTFMove(record.referrer));
 
+            record.response.setSource(ResourceResponse::Source::DOMCache);
             auto response = FetchResponse::create(*scriptExecutionContext(), WTF::nullopt, record.responseHeadersGuard, WTFMove(record.response));
             response->setBodyData(WTFMove(record.responseBody), record.responseBodySize);
 

Modified: trunk/Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp (254918 => 254919)


--- trunk/Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp	2020-01-22 14:08:40 UTC (rev 254918)
+++ trunk/Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp	2020-01-22 14:26:10 UTC (rev 254919)
@@ -301,6 +301,7 @@
 static Inspector::Protocol::Network::Response::Source responseSource(ResourceResponse::Source source)
 {
     switch (source) {
+    case ResourceResponse::Source::DOMCache:
     case ResourceResponse::Source::ApplicationCache:
         // FIXME: Add support for ApplicationCache in inspector.
     case ResourceResponse::Source::Unknown:

Modified: trunk/Source/WebCore/loader/ResourceLoader.cpp (254918 => 254919)


--- trunk/Source/WebCore/loader/ResourceLoader.cpp	2020-01-22 14:08:40 UTC (rev 254918)
+++ trunk/Source/WebCore/loader/ResourceLoader.cpp	2020-01-22 14:26:10 UTC (rev 254919)
@@ -459,6 +459,7 @@
         break;
     case ResourceResponse::Source::MemoryCache:
     case ResourceResponse::Source::MemoryCacheAfterValidation:
+    case ResourceResponse::Source::DOMCache:
     case ResourceResponse::Source::ApplicationCache:
     case ResourceResponse::Source::InspectorOverride:
     case ResourceResponse::Source::Unknown:

Modified: trunk/Source/WebCore/platform/network/ResourceResponseBase.h (254918 => 254919)


--- trunk/Source/WebCore/platform/network/ResourceResponseBase.h	2020-01-22 14:08:40 UTC (rev 254918)
+++ trunk/Source/WebCore/platform/network/ResourceResponseBase.h	2020-01-22 14:26:10 UTC (rev 254919)
@@ -144,7 +144,7 @@
     WEBCORE_EXPORT Optional<WallTime> lastModified() const;
     const ParsedContentRange& contentRange() const;
 
-    enum class Source : uint8_t { Unknown, Network, DiskCache, DiskCacheAfterValidation, MemoryCache, MemoryCacheAfterValidation, ServiceWorker, ApplicationCache, InspectorOverride };
+    enum class Source : uint8_t { Unknown, Network, DiskCache, DiskCacheAfterValidation, MemoryCache, MemoryCacheAfterValidation, ServiceWorker, ApplicationCache, DOMCache, InspectorOverride };
     WEBCORE_EXPORT Source source() const;
     void setSource(Source source)
     {

Modified: trunk/Source/WebCore/testing/Internals.cpp (254918 => 254919)


--- trunk/Source/WebCore/testing/Internals.cpp	2020-01-22 14:08:40 UTC (rev 254918)
+++ trunk/Source/WebCore/testing/Internals.cpp	2020-01-22 14:26:10 UTC (rev 254919)
@@ -736,6 +736,8 @@
         return "Memory cache after validation";
     case ResourceResponse::Source::ApplicationCache:
         return "Application cache";
+    case ResourceResponse::Source::DOMCache:
+        return "DOM cache";
     case ResourceResponse::Source::InspectorOverride:
         return "Inspector override";
     }

Modified: trunk/Source/WebCore/workers/service/context/ServiceWorkerFetch.cpp (254918 => 254919)


--- trunk/Source/WebCore/workers/service/context/ServiceWorkerFetch.cpp	2020-01-22 14:08:40 UTC (rev 254918)
+++ trunk/Source/WebCore/workers/service/context/ServiceWorkerFetch.cpp	2020-01-22 14:26:10 UTC (rev 254919)
@@ -89,8 +89,6 @@
         return;
     }
 
-    resourceResponse.setSource(ResourceResponse::Source::ServiceWorker);
-
     // In case of main resource and mime type is the default one, we set it to text/html to pass more service worker WPT tests.
     // FIXME: We should refine our MIME type sniffing strategy for synthetic responses.
     if (mode == FetchOptions::Mode::Navigate) {

Modified: trunk/Source/WebKit/ChangeLog (254918 => 254919)


--- trunk/Source/WebKit/ChangeLog	2020-01-22 14:08:40 UTC (rev 254918)
+++ trunk/Source/WebKit/ChangeLog	2020-01-22 14:26:10 UTC (rev 254919)
@@ -1,3 +1,17 @@
+2020-01-22  youenn fablet  <[email protected]>
+
+        Add logging of the source of a response used to respond a fetch event
+        https://bugs.webkit.org/show_bug.cgi?id=206426
+
+        Reviewed by Darin Adler.
+
+        * NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:
+        (WebKit::ServiceWorkerFetchTask::didReceiveResponse):
+        Log the source of the response.
+        * WebProcess/Network/WebLoaderStrategy.cpp:
+        (WebKit::WebLoaderStrategy::havePerformedSecurityChecks const):
+        Add case of DOMCache, similar to ServiceWorker.
+
 2020-01-21  Fujii Hironori  <[email protected]>
 
         [Win][WK2] Pressing space key on text input form scrolls the page

Modified: trunk/Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp (254918 => 254919)


--- trunk/Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp	2020-01-22 14:08:40 UTC (rev 254918)
+++ trunk/Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp	2020-01-22 14:26:10 UTC (rev 254919)
@@ -139,7 +139,7 @@
     if (m_isDone)
         return;
 
-    RELEASE_LOG_IF_ALLOWED("didReceiveResponse: (httpStatusCode=%d, MIMEType=%{public}s, expectedContentLength=%" PRId64 ", needsContinueDidReceiveResponseMessage=%d)", response.httpStatusCode(), response.mimeType().utf8().data(), response.expectedContentLength(), needsContinueDidReceiveResponseMessage);
+    RELEASE_LOG_IF_ALLOWED("didReceiveResponse: (httpStatusCode=%d, MIMEType=%{public}s, expectedContentLength=%" PRId64 ", needsContinueDidReceiveResponseMessage=%d, source=%u)", response.httpStatusCode(), response.mimeType().utf8().data(), response.expectedContentLength(), needsContinueDidReceiveResponseMessage, static_cast<unsigned>(response.source()));
     m_wasHandled = true;
     m_timeoutTimer.stop();
     softUpdateIfNeeded();

Modified: trunk/Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp (254918 => 254919)


--- trunk/Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp	2020-01-22 14:08:40 UTC (rev 254918)
+++ trunk/Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp	2020-01-22 14:26:10 UTC (rev 254919)
@@ -803,6 +803,7 @@
     if (!shouldPerformSecurityChecks())
         return false;
     switch (response.source()) {
+    case ResourceResponse::Source::DOMCache:
     case ResourceResponse::Source::ApplicationCache:
     case ResourceResponse::Source::MemoryCache:
     case ResourceResponse::Source::MemoryCacheAfterValidation:
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to