Index: Source/modules/serviceworkers/FetchResponseData.cpp |
diff --git a/Source/modules/serviceworkers/FetchResponseData.cpp b/Source/modules/serviceworkers/FetchResponseData.cpp |
index df4cc1e09bb44cefc8b9b40f72064db463c8a439..676f35f7c4b48b432a0a6ca850ea14c74af2f4e7 100644 |
--- a/Source/modules/serviceworkers/FetchResponseData.cpp |
+++ b/Source/modules/serviceworkers/FetchResponseData.cpp |
@@ -11,6 +11,33 @@ |
namespace blink { |
+namespace { |
+ |
+WebServiceWorkerResponseType fetchTypeToWebType(FetchResponseData::Type fetchType) |
+{ |
+ WebServiceWorkerResponseType webType = WebServiceWorkerResponseTypeDefault; |
+ switch (fetchType) { |
+ case FetchResponseData::BasicType: |
+ webType = WebServiceWorkerResponseTypeBasic; |
+ break; |
+ case FetchResponseData::CORSType: |
+ webType = WebServiceWorkerResponseTypeCORS; |
+ break; |
+ case FetchResponseData::DefaultType: |
+ webType = WebServiceWorkerResponseTypeDefault; |
+ break; |
+ case FetchResponseData::ErrorType: |
+ webType = WebServiceWorkerResponseTypeError; |
+ break; |
+ case FetchResponseData::OpaqueType: |
+ webType = WebServiceWorkerResponseTypeOpaque; |
+ break; |
+ } |
+ return webType; |
+} |
+ |
+} // namespace |
+ |
FetchResponseData* FetchResponseData::create() |
{ |
// "Unless stated otherwise, a response's url is null, status is 200, status |
@@ -84,11 +111,14 @@ void FetchResponseData::populateWebServiceWorkerResponse(WebServiceWorkerRespons |
{ |
if (m_internalResponse) { |
m_internalResponse->populateWebServiceWorkerResponse(response); |
+ response.setResponseType(fetchTypeToWebType(m_type)); |
return; |
} |
+ |
response.setURL(url()); |
response.setStatus(status()); |
response.setStatusText(statusMessage()); |
+ response.setResponseType(fetchTypeToWebType(m_type)); |
for (size_t i = 0; i < headerList()->size(); ++i) { |
const FetchHeaderList::Header* header = headerList()->list()[i].get(); |
response.appendHeader(header->first, header->second); |