Changeset 224344 in webkit
- Timestamp:
- Nov 2, 2017 10:46:48 AM (6 years ago)
- Location:
- trunk
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r224343 r224344 1 2017-11-02 Youenn Fablet <youenn@apple.com> 2 3 Service Worker fetch should transmit headers to its client 4 https://bugs.webkit.org/show_bug.cgi?id=179156 5 6 Reviewed by Chris Dumez. 7 8 * http/tests/workers/service/basic-fetch.https-expected.txt: 9 * http/tests/workers/service/resources/basic-fetch-worker.js: 10 Adding header specific subtest. 11 * http/tests/workers/service/resources/image-fetch-worker.js: 12 Updating test so that image does not go in the memory cache. 13 Otherwise test is flaky when run multiple times on the same runner. 14 1 15 2017-11-02 Youenn Fablet <youenn@apple.com> 2 16 -
trunk/LayoutTests/http/tests/workers/service/basic-fetch.https-expected.txt
r223785 r224344 1 CONSOLE MESSAGE: line 12: test1 status code: 200 2 CONSOLE MESSAGE: line 13: test1 status text: Hello from service worker 3 CONSOLE MESSAGE: line 16: test1 source: Service worker 4 CONSOLE MESSAGE: line 19: test2 status code: 500 5 CONSOLE MESSAGE: line 20: test2 status text: Error from service worker 6 CONSOLE MESSAGE: line 23: test2 source: Service worker 7 CONSOLE MESSAGE: line 32: test3 fetch failed as expected 1 test1 status code: 200 2 test1 status text: Hello from service worker 3 test1 header Hello: World 4 test1 source: Service worker 5 test2 status code: 500 6 test2 status text: Error from service worker 7 test2 source: Service worker 8 test3 fetch failed as expected 8 9 -
trunk/LayoutTests/http/tests/workers/service/resources/basic-fetch-worker.js
r223839 r224344 1 1 self.addEventListener("fetch", (event) => { 2 2 if (event.request.url.indexOf("test1") !== -1) { 3 event.respondWith(new Response(null, { status: 200, statusText: "Hello from service worker" }));3 event.respondWith(new Response(null, { status: 200, statusText: "Hello from service worker", headers: [["Hello", "World"]] })); 4 4 return; 5 5 } -
trunk/LayoutTests/http/tests/workers/service/resources/basic-fetch.js
r223785 r224344 1 function done()2 {3 finishSWTest();4 }5 6 1 async function test() 7 2 { … … 10 5 11 6 var response = await fetch("test1"); 12 console.log("test1 status code: " + response.status); 13 console.log("test1 status text: " + response.statusText); 7 log("test1 status code: " + response.status); 8 log("test1 status text: " + response.statusText); 9 log("test1 header Hello: " + response.headers.get("hello")); 14 10 15 11 if (window.internals) 16 console.log("test1 source: " + internals.fetchResponseSource(response));12 log("test1 source: " + internals.fetchResponseSource(response)); 17 13 18 14 var response = await fetch("test2"); 19 console.log("test2 status code: " + response.status);20 console.log("test2 status text: " + response.statusText);15 log("test2 status code: " + response.status); 16 log("test2 status text: " + response.statusText); 21 17 22 18 if (window.internals) 23 console.log("test2 source: " + internals.fetchResponseSource(response));19 log("test2 source: " + internals.fetchResponseSource(response)); 24 20 25 21 try { 26 22 response = await fetch("test3"); 27 console.log("test3 fetch succeeded unexpectedly");28 console.log("test3 status code: " + response.status);29 console.log("test3 status text: " + response.statusText);23 log("test3 fetch succeeded unexpectedly"); 24 log("test3 status code: " + response.status); 25 log("test3 status text: " + response.statusText); 30 26 31 27 } catch (e) { 32 console.log("test3 fetch failed as expected");28 log("test3 fetch failed as expected"); 33 29 } 34 30 } catch(e) { 35 console.log("Got exception: " + e);31 log("Got exception: " + e); 36 32 } 37 33 finishSWTest(); -
trunk/LayoutTests/http/tests/workers/service/resources/image-fetch-worker.js
r224059 r224344 1 var response; 1 2 var status = "no status"; 2 3 self.addEventListener("fetch", (event) => { … … 11 12 } 12 13 status = "Fetching " + event.request.url.substring(0, event.request.url.length - 18); 13 event.respondWith(fetch(event.request.url.substring(0, event.request.url.length - 18)).then((response) => { 14 event.respondWith(fetch(event.request.url.substring(0, event.request.url.length - 18)).then((r) => { 15 response = r; 14 16 status = "Got response for " + event.request.url.substring(0, event.request.url.length - 18) + ", status code is " + response.status; 15 return response; 17 return response.arrayBuffer(); 18 }).then((buffer) => { 19 var headers = new Headers(response.headers); 20 headers.set("cache-control", "no-cache"); 21 return new Response(buffer, {headers: headers}); 16 22 })); 17 23 }); -
trunk/Source/WebCore/ChangeLog
r224341 r224344 1 2017-11-02 Youenn Fablet <youenn@apple.com> 2 3 Service Worker fetch should transmit headers to its client 4 https://bugs.webkit.org/show_bug.cgi?id=179156 5 6 Reviewed by Chris Dumez. 7 8 Covered by updated tests. 9 10 Making resourceResponse getter return a ResourceResponse with the headers of the FetchResponse Headers object. 11 12 * Modules/cache/DOMCache.cpp: 13 (WebCore::DOMCache::toConnectionRecord): 14 * Modules/fetch/FetchResponse.cpp: 15 (WebCore::FetchResponse::resourceResponse const): 16 * Modules/fetch/FetchResponse.h: 17 1 18 2017-11-02 Chris Dumez <cdumez@apple.com> 2 19 -
trunk/Source/WebCore/Modules/cache/DOMCache.cpp
r223476 r224344 481 481 Record DOMCache::toConnectionRecord(const FetchRequest& request, FetchResponse& response, DOMCacheEngine::ResponseBody&& responseBody) 482 482 { 483 // FIXME: Add a setHTTPHeaderFields on ResourceResponseBase. 484 ResourceResponse cachedResponse = response.resourceResponse(); 485 for (auto& header : response.headers().internalHeaders()) 486 cachedResponse.setHTTPHeaderField(header.key, header.value); 487 483 auto cachedResponse = response.resourceResponse(); 488 484 ResourceRequest cachedRequest = request.internalRequest(); 489 485 cachedRequest.setHTTPHeaderFields(request.headers().internalHeaders()); -
trunk/Source/WebCore/Modules/fetch/FetchResponse.cpp
r223073 r224344 439 439 } 440 440 441 ResourceResponse FetchResponse::resourceResponse() const 442 { 443 auto response = m_response; 444 // FIXME: Add a setHTTPHeaderFields on ResourceResponseBase. 445 for (auto& header : headers().internalHeaders()) 446 response.setHTTPHeaderField(header.key, header.value); 447 return response; 448 } 449 441 450 } // namespace WebCore -
trunk/Source/WebCore/Modules/fetch/FetchResponse.h
r223073 r224344 96 96 void consumeBodyFromReadableStream(ConsumeDataCallback&&); 97 97 98 const ResourceResponse& resourceResponse() const { return m_response; }98 WEBCORE_EXPORT ResourceResponse resourceResponse() const; 99 99 100 100 uint64_t bodySizeWithPadding() const { return m_bodySizeWithPadding; }
Note: See TracChangeset
for help on using the changeset viewer.