Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(198)

Side by Side Diff: Source/modules/fetch/FetchResponseData.cpp

Issue 1265133002: [1/3 blink] Support redirect option of Request and "opaqueredirect" response type. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: rebase Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « Source/modules/fetch/FetchResponseData.h ('k') | Source/modules/fetch/Request.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
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
OLDNEW
« no previous file with comments | « Source/modules/fetch/FetchResponseData.h ('k') | Source/modules/fetch/Request.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698