Content-Type should be preserved on responses created from DOMCache
authoryouenn@apple.com <youenn@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 17 Sep 2019 07:39:52 +0000 (07:39 +0000)
committeryouenn@apple.com <youenn@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 17 Sep 2019 07:39:52 +0000 (07:39 +0000)
https://bugs.webkit.org/show_bug.cgi?id=201815

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Fixes one subtest.
Remaining failing test is failing consistently in other browsers.

* web-platform-tests/service-workers/cache-storage/serviceworker/cache-match.https-expected.txt:
* web-platform-tests/service-workers/cache-storage/window/cache-match.https-expected.txt:
* web-platform-tests/service-workers/cache-storage/worker/cache-match.https-expected.txt:

Source/WebCore:

       Covered by updated test expectations

* Modules/fetch/FetchResponse.cpp:
(WebCore::FetchResponse::create):
Update content type when creating the response from DOMCache.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249945 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/imported/w3c/ChangeLog
LayoutTests/imported/w3c/web-platform-tests/service-workers/cache-storage/serviceworker/cache-match.https-expected.txt
LayoutTests/imported/w3c/web-platform-tests/service-workers/cache-storage/window/cache-match.https-expected.txt
LayoutTests/imported/w3c/web-platform-tests/service-workers/cache-storage/worker/cache-match.https-expected.txt
Source/WebCore/ChangeLog
Source/WebCore/Modules/fetch/FetchResponse.cpp

index ac17813..aad8503 100644 (file)
@@ -1,3 +1,17 @@
+2019-09-17  Youenn Fablet  <youenn@apple.com>
+
+        Content-Type should be preserved on responses created from DOMCache
+        https://bugs.webkit.org/show_bug.cgi?id=201815
+
+        Reviewed by Alex Christensen.
+
+        Fixes one subtest.
+        Remaining failing test is failing consistently in other browsers.
+
+        * web-platform-tests/service-workers/cache-storage/serviceworker/cache-match.https-expected.txt:
+        * web-platform-tests/service-workers/cache-storage/window/cache-match.https-expected.txt:
+        * web-platform-tests/service-workers/cache-storage/worker/cache-match.https-expected.txt:
+
 2019-09-16  Alex Christensen  <achristensen@webkit.org>
 
         Remove "gopher" from list of special schemes in URLParser
index 76ba4e5..49b8b45 100644 (file)
@@ -22,6 +22,6 @@ PASS Cache.match with a non-2xx Response
 PASS Cache.match with a network error Response 
 PASS Cache produces large Responses that can be cloned and read correctly. 
 FAIL cors-exposed header should be stored correctly. assert_equals: expected (string) "bar" but got (object) null
-FAIL MIME type should be set from content-header correctly. assert_equals: network and cache response mime types should match expected "text/html" but got ""
-FAIL MIME type should be frozen at response construction. assert_equals: original and cached overwritten response mime types should match expected "text/html" but got ""
+PASS MIME type should be set from content-header correctly. 
+FAIL MIME type should be frozen at response construction. assert_equals: original and cached overwritten response mime types should match expected "text/html" but got "text/plain"
 
index 564096a..9f455b3 100644 (file)
@@ -21,6 +21,6 @@ PASS Cache.match with a non-2xx Response
 PASS Cache.match with a network error Response 
 PASS Cache produces large Responses that can be cloned and read correctly. 
 FAIL cors-exposed header should be stored correctly. assert_equals: expected (string) "bar" but got (object) null
-FAIL MIME type should be set from content-header correctly. assert_equals: network and cache response mime types should match expected "text/html" but got ""
-FAIL MIME type should be frozen at response construction. assert_equals: original and cached overwritten response mime types should match expected "text/html" but got ""
+PASS MIME type should be set from content-header correctly. 
+FAIL MIME type should be frozen at response construction. assert_equals: original and cached overwritten response mime types should match expected "text/html" but got "text/plain"
 
index 564096a..9f455b3 100644 (file)
@@ -21,6 +21,6 @@ PASS Cache.match with a non-2xx Response
 PASS Cache.match with a network error Response 
 PASS Cache produces large Responses that can be cloned and read correctly. 
 FAIL cors-exposed header should be stored correctly. assert_equals: expected (string) "bar" but got (object) null
-FAIL MIME type should be set from content-header correctly. assert_equals: network and cache response mime types should match expected "text/html" but got ""
-FAIL MIME type should be frozen at response construction. assert_equals: original and cached overwritten response mime types should match expected "text/html" but got ""
+PASS MIME type should be set from content-header correctly. 
+FAIL MIME type should be frozen at response construction. assert_equals: original and cached overwritten response mime types should match expected "text/html" but got "text/plain"
 
index 640cba0..a0b9eaa 100644 (file)
@@ -1,3 +1,16 @@
+2019-09-17  Youenn Fablet  <youenn@apple.com>
+
+        Content-Type should be preserved on responses created from DOMCache
+        https://bugs.webkit.org/show_bug.cgi?id=201815
+
+        Reviewed by Alex Christensen.
+
+       Covered by updated test expectations
+
+        * Modules/fetch/FetchResponse.cpp:
+        (WebCore::FetchResponse::create):
+        Update content type when creating the response from DOMCache.
+
 2019-09-16  Antti Koivisto  <antti@apple.com>
 
         Move code for traversing reversed text boxes from TextIterator to TextBoxIterator
index 94013cf..ee8e2aa 100644 (file)
@@ -54,6 +54,7 @@ Ref<FetchResponse> FetchResponse::create(ScriptExecutionContext& context, Option
     auto headers = isOpaque ? FetchHeaders::create(guard) : FetchHeaders::create(guard, HTTPHeaderMap { response.httpHeaderFields() });
 
     auto fetchResponse = adoptRef(*new FetchResponse(context, WTFMove(body), WTFMove(headers), WTFMove(response)));
+    fetchResponse->updateContentType();
     if (!isSynthetic)
         fetchResponse->m_filteredResponse = ResourceResponseBase::filter(fetchResponse->m_internalResponse);
     if (isOpaque)