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 "modules/fetch/FetchResponseData.h" | 6 #include "modules/fetch/FetchResponseData.h" |
7 | 7 |
8 #include "core/dom/DOMArrayBuffer.h" | 8 #include "core/dom/DOMArrayBuffer.h" |
9 #include "core/fetch/CrossOriginAccessControl.h" | 9 #include "core/fetch/CrossOriginAccessControl.h" |
10 #include "modules/fetch/BodyStreamBuffer.h" | 10 #include "modules/fetch/BodyStreamBuffer.h" |
(...skipping 18 matching lines...) Expand all Loading... |
29 break; | 29 break; |
30 case FetchResponseData::DefaultType: | 30 case FetchResponseData::DefaultType: |
31 webType = WebServiceWorkerResponseTypeDefault; | 31 webType = WebServiceWorkerResponseTypeDefault; |
32 break; | 32 break; |
33 case FetchResponseData::ErrorType: | 33 case FetchResponseData::ErrorType: |
34 webType = WebServiceWorkerResponseTypeError; | 34 webType = WebServiceWorkerResponseTypeError; |
35 break; | 35 break; |
36 case FetchResponseData::OpaqueType: | 36 case FetchResponseData::OpaqueType: |
37 webType = WebServiceWorkerResponseTypeOpaque; | 37 webType = WebServiceWorkerResponseTypeOpaque; |
38 break; | 38 break; |
| 39 case FetchResponseData::OpaqueRedirectType: |
| 40 webType = WebServiceWorkerResponseTypeOpaqueRedirect; |
| 41 break; |
39 } | 42 } |
40 return webType; | 43 return webType; |
41 } | 44 } |
42 | 45 |
43 } // namespace | 46 } // namespace |
44 | 47 |
45 FetchResponseData* FetchResponseData::create() | 48 FetchResponseData* FetchResponseData::create() |
46 { | 49 { |
47 // "Unless stated otherwise, a response's url is null, status is 200, status | 50 // "Unless stated otherwise, a response's url is null, status is 200, status |
48 // message is `OK`, header list is an empty header list, and body is null." | 51 // message is `OK`, header list is an empty header list, and body is null." |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
113 FetchResponseData* FetchResponseData::createOpaqueFilteredResponse() | 116 FetchResponseData* FetchResponseData::createOpaqueFilteredResponse() |
114 { | 117 { |
115 // "An opaque filtered response is a filtered response whose type is | 118 // "An opaque filtered response is a filtered response whose type is |
116 // |opaque|, status is 0, status message is the empty byte sequence, header | 119 // |opaque|, status is 0, status message is the empty byte sequence, header |
117 // list is an empty list, and body is null." | 120 // list is an empty list, and body is null." |
118 FetchResponseData* response = new FetchResponseData(OpaqueType, 0, ""); | 121 FetchResponseData* response = new FetchResponseData(OpaqueType, 0, ""); |
119 response->m_internalResponse = this; | 122 response->m_internalResponse = this; |
120 return response; | 123 return response; |
121 } | 124 } |
122 | 125 |
| 126 FetchResponseData* FetchResponseData::createOpaqueRedirectFilteredResponse() |
| 127 { |
| 128 // "An opaque-redirect filtered response is a filtered response whose type |
| 129 // is |opaqueredirect|, status is 0, status message is the empty byte |
| 130 // sequence, header list is the empty list, body is null, and cache state is |
| 131 // |none|. |
| 132 FetchResponseData* response = new FetchResponseData(OpaqueRedirectType, 0, "
"); |
| 133 response->m_internalResponse = this; |
| 134 return response; |
| 135 } |
| 136 |
123 String FetchResponseData::mimeType() const | 137 String FetchResponseData::mimeType() const |
124 { | 138 { |
125 return m_mimeType; | 139 return m_mimeType; |
126 } | 140 } |
127 | 141 |
128 BodyStreamBuffer* FetchResponseData::internalBuffer() const | 142 BodyStreamBuffer* FetchResponseData::internalBuffer() const |
129 { | 143 { |
130 if (m_internalResponse) { | 144 if (m_internalResponse) { |
131 return m_internalResponse->m_buffer; | 145 return m_internalResponse->m_buffer; |
132 } | 146 } |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
176 } else { | 190 } else { |
177 m_buffer = new BodyStreamBuffer; | 191 m_buffer = new BodyStreamBuffer; |
178 } | 192 } |
179 break; | 193 break; |
180 } | 194 } |
181 case ErrorType: | 195 case ErrorType: |
182 ASSERT(!m_internalResponse); | 196 ASSERT(!m_internalResponse); |
183 ASSERT(!m_buffer->hasBody()); | 197 ASSERT(!m_buffer->hasBody()); |
184 break; | 198 break; |
185 case OpaqueType: | 199 case OpaqueType: |
| 200 case OpaqueRedirectType: |
186 ASSERT(m_internalResponse); | 201 ASSERT(m_internalResponse); |
187 ASSERT(!m_buffer->hasBody()); | 202 ASSERT(!m_buffer->hasBody()); |
188 ASSERT(m_internalResponse->m_type == DefaultType); | 203 ASSERT(m_internalResponse->m_type == DefaultType); |
189 newResponse->m_internalResponse = m_internalResponse->clone(executionCon
text); | 204 newResponse->m_internalResponse = m_internalResponse->clone(executionCon
text); |
190 break; | 205 break; |
191 } | 206 } |
192 return newResponse; | 207 return newResponse; |
193 } | 208 } |
194 | 209 |
195 void FetchResponseData::populateWebServiceWorkerResponse(WebServiceWorkerRespons
e& response) | 210 void FetchResponseData::populateWebServiceWorkerResponse(WebServiceWorkerRespons
e& response) |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
232 } | 247 } |
233 | 248 |
234 DEFINE_TRACE(FetchResponseData) | 249 DEFINE_TRACE(FetchResponseData) |
235 { | 250 { |
236 visitor->trace(m_headerList); | 251 visitor->trace(m_headerList); |
237 visitor->trace(m_internalResponse); | 252 visitor->trace(m_internalResponse); |
238 visitor->trace(m_buffer); | 253 visitor->trace(m_buffer); |
239 } | 254 } |
240 | 255 |
241 } // namespace blink | 256 } // namespace blink |
OLD | NEW |