OLD | NEW |
---|---|
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "config.h" | 5 #include "config.h" |
6 #include "FetchResponseData.h" | 6 #include "FetchResponseData.h" |
7 | 7 |
8 #include "core/fetch/CrossOriginAccessControl.h" | 8 #include "core/fetch/CrossOriginAccessControl.h" |
9 #include "modules/serviceworkers/FetchHeaderList.h" | 9 #include "modules/serviceworkers/FetchHeaderList.h" |
10 #include "public/platform/WebServiceWorkerResponse.h" | 10 #include "public/platform/WebServiceWorkerResponse.h" |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
75 // "An opaque filtered response is a filtered response whose type is | 75 // "An opaque filtered response is a filtered response whose type is |
76 // |opaque|, status is 0, status message is the empty byte sequence, header | 76 // |opaque|, status is 0, status message is the empty byte sequence, header |
77 // list is an empty list, and body is null." | 77 // list is an empty list, and body is null." |
78 FetchResponseData* response = new FetchResponseData(OpaqueType, 0, ""); | 78 FetchResponseData* response = new FetchResponseData(OpaqueType, 0, ""); |
79 response->m_internalResponse = this; | 79 response->m_internalResponse = this; |
80 return response; | 80 return response; |
81 } | 81 } |
82 | 82 |
83 void FetchResponseData::populateWebServiceWorkerResponse(WebServiceWorkerRespons e& response) | 83 void FetchResponseData::populateWebServiceWorkerResponse(WebServiceWorkerRespons e& response) |
84 { | 84 { |
85 if (m_internalResponse) { | 85 if (m_internalResponse) |
86 m_internalResponse->populateWebServiceWorkerResponse(response); | 86 m_internalResponse->populateWebServiceWorkerResponse(response); |
87 | |
88 WebServiceWorkerResponse::ResponseType type = WebServiceWorkerResponse::Defa ultType; | |
89 switch (m_type) { | |
90 case BasicType: | |
91 type = WebServiceWorkerResponse::BasicType; | |
92 break; | |
93 case CORSType: | |
94 type = WebServiceWorkerResponse::CORSType; | |
95 break; | |
96 case DefaultType: | |
97 type = WebServiceWorkerResponse::DefaultType; | |
98 break; | |
99 case ErrorType: | |
100 type = WebServiceWorkerResponse::ErrorType; | |
101 break; | |
102 case OpaqueType: | |
103 type = WebServiceWorkerResponse::OpaqueType; | |
104 break; | |
105 } | |
106 | |
107 // Note that this overrides any internal response's type. | |
108 response.setResponseType(type); | |
109 | |
110 if (m_internalResponse) | |
jsbell
2014/09/30 22:14:44
Splitting up the m_internalResponse logic (populat
jkarlin
2014/10/01 00:11:00
Done.
| |
87 return; | 111 return; |
88 } | 112 |
89 response.setURL(url()); | 113 response.setURL(url()); |
90 response.setStatus(status()); | 114 response.setStatus(status()); |
91 response.setStatusText(statusMessage()); | 115 response.setStatusText(statusMessage()); |
92 for (size_t i = 0; i < headerList()->size(); ++i) { | 116 for (size_t i = 0; i < headerList()->size(); ++i) { |
93 const FetchHeaderList::Header* header = headerList()->list()[i].get(); | 117 const FetchHeaderList::Header* header = headerList()->list()[i].get(); |
94 response.appendHeader(header->first, header->second); | 118 response.appendHeader(header->first, header->second); |
95 } | 119 } |
96 response.setBlobDataHandle(blobDataHandle()); | 120 response.setBlobDataHandle(blobDataHandle()); |
97 } | 121 } |
98 | 122 |
99 FetchResponseData::FetchResponseData(Type type, unsigned short status, AtomicStr ing statusMessage) | 123 FetchResponseData::FetchResponseData(Type type, unsigned short status, AtomicStr ing statusMessage) |
100 : m_type(type) | 124 : m_type(type) |
101 , m_status(status) | 125 , m_status(status) |
102 , m_statusMessage(statusMessage) | 126 , m_statusMessage(statusMessage) |
103 , m_headerList(FetchHeaderList::create()) | 127 , m_headerList(FetchHeaderList::create()) |
104 { | 128 { |
105 } | 129 } |
106 | 130 |
107 void FetchResponseData::trace(Visitor* visitor) | 131 void FetchResponseData::trace(Visitor* visitor) |
108 { | 132 { |
109 visitor->trace(m_headerList); | 133 visitor->trace(m_headerList); |
110 visitor->trace(m_internalResponse); | 134 visitor->trace(m_internalResponse); |
111 } | 135 } |
112 | 136 |
113 } // namespace blink | 137 } // namespace blink |
OLD | NEW |