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 "modules/fetch/FetchResponseData.h" | 5 #include "modules/fetch/FetchResponseData.h" |
6 | 6 |
7 #include "bindings/core/v8/ScriptState.h" | 7 #include "bindings/core/v8/ScriptState.h" |
8 #include "core/dom/DOMArrayBuffer.h" | 8 #include "core/dom/DOMArrayBuffer.h" |
9 #include "modules/fetch/BodyStreamBuffer.h" | 9 #include "modules/fetch/BodyStreamBuffer.h" |
10 #include "modules/fetch/FetchHeaderList.h" | 10 #include "modules/fetch/FetchHeaderList.h" |
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
213 new_response->status_message_ = status_message_; | 213 new_response->status_message_ = status_message_; |
214 new_response->header_list_ = header_list_->Clone(); | 214 new_response->header_list_ = header_list_->Clone(); |
215 new_response->mime_type_ = mime_type_; | 215 new_response->mime_type_ = mime_type_; |
216 new_response->response_time_ = response_time_; | 216 new_response->response_time_ = response_time_; |
217 new_response->cache_storage_cache_name_ = cache_storage_cache_name_; | 217 new_response->cache_storage_cache_name_ = cache_storage_cache_name_; |
218 new_response->cors_exposed_header_names_ = cors_exposed_header_names_; | 218 new_response->cors_exposed_header_names_ = cors_exposed_header_names_; |
219 | 219 |
220 switch (type_) { | 220 switch (type_) { |
221 case kBasicType: | 221 case kBasicType: |
222 case kCORSType: | 222 case kCORSType: |
223 ASSERT(internal_response_); | 223 DCHECK(internal_response_); |
224 ASSERT(buffer_ == internal_response_->buffer_); | 224 DCHECK_EQ(buffer_, internal_response_->buffer_); |
225 ASSERT(internal_response_->type_ == kDefaultType); | 225 DCHECK_EQ(internal_response_->type_, kDefaultType); |
226 new_response->internal_response_ = | 226 new_response->internal_response_ = |
227 internal_response_->Clone(script_state); | 227 internal_response_->Clone(script_state); |
228 buffer_ = internal_response_->buffer_; | 228 buffer_ = internal_response_->buffer_; |
229 new_response->buffer_ = new_response->internal_response_->buffer_; | 229 new_response->buffer_ = new_response->internal_response_->buffer_; |
230 break; | 230 break; |
231 case kDefaultType: { | 231 case kDefaultType: { |
232 ASSERT(!internal_response_); | 232 DCHECK(!internal_response_); |
233 if (buffer_) { | 233 if (buffer_) { |
234 BodyStreamBuffer* new1 = nullptr; | 234 BodyStreamBuffer* new1 = nullptr; |
235 BodyStreamBuffer* new2 = nullptr; | 235 BodyStreamBuffer* new2 = nullptr; |
236 buffer_->Tee(&new1, &new2); | 236 buffer_->Tee(&new1, &new2); |
237 buffer_ = new1; | 237 buffer_ = new1; |
238 new_response->buffer_ = new2; | 238 new_response->buffer_ = new2; |
239 } | 239 } |
240 break; | 240 break; |
241 } | 241 } |
242 case kErrorType: | 242 case kErrorType: |
243 ASSERT(!internal_response_); | 243 DCHECK(!internal_response_); |
244 ASSERT(!buffer_); | 244 DCHECK(!buffer_); |
245 break; | 245 break; |
246 case kOpaqueType: | 246 case kOpaqueType: |
247 case kOpaqueRedirectType: | 247 case kOpaqueRedirectType: |
248 ASSERT(internal_response_); | 248 DCHECK(internal_response_); |
249 ASSERT(!buffer_); | 249 DCHECK(!buffer_); |
250 ASSERT(internal_response_->type_ == kDefaultType); | 250 DCHECK_EQ(internal_response_->type_, kDefaultType); |
251 new_response->internal_response_ = | 251 new_response->internal_response_ = |
252 internal_response_->Clone(script_state); | 252 internal_response_->Clone(script_state); |
253 break; | 253 break; |
254 } | 254 } |
255 return new_response; | 255 return new_response; |
256 } | 256 } |
257 | 257 |
258 void FetchResponseData::PopulateWebServiceWorkerResponse( | 258 void FetchResponseData::PopulateWebServiceWorkerResponse( |
259 WebServiceWorkerResponse& response) { | 259 WebServiceWorkerResponse& response) { |
260 if (internal_response_) { | 260 if (internal_response_) { |
(...skipping 21 matching lines...) Expand all Loading... |
282 unsigned short status, | 282 unsigned short status, |
283 AtomicString status_message) | 283 AtomicString status_message) |
284 : type_(type), | 284 : type_(type), |
285 status_(status), | 285 status_(status), |
286 status_message_(status_message), | 286 status_message_(status_message), |
287 header_list_(FetchHeaderList::Create()), | 287 header_list_(FetchHeaderList::Create()), |
288 response_time_(0) {} | 288 response_time_(0) {} |
289 | 289 |
290 void FetchResponseData::ReplaceBodyStreamBuffer(BodyStreamBuffer* buffer) { | 290 void FetchResponseData::ReplaceBodyStreamBuffer(BodyStreamBuffer* buffer) { |
291 if (type_ == kBasicType || type_ == kCORSType) { | 291 if (type_ == kBasicType || type_ == kCORSType) { |
292 ASSERT(internal_response_); | 292 DCHECK(internal_response_); |
293 internal_response_->buffer_ = buffer; | 293 internal_response_->buffer_ = buffer; |
294 buffer_ = buffer; | 294 buffer_ = buffer; |
295 } else if (type_ == kDefaultType) { | 295 } else if (type_ == kDefaultType) { |
296 ASSERT(!internal_response_); | 296 DCHECK(!internal_response_); |
297 buffer_ = buffer; | 297 buffer_ = buffer; |
298 } | 298 } |
299 } | 299 } |
300 | 300 |
301 DEFINE_TRACE(FetchResponseData) { | 301 DEFINE_TRACE(FetchResponseData) { |
302 visitor->Trace(header_list_); | 302 visitor->Trace(header_list_); |
303 visitor->Trace(internal_response_); | 303 visitor->Trace(internal_response_); |
304 visitor->Trace(buffer_); | 304 visitor->Trace(buffer_); |
305 } | 305 } |
306 | 306 |
307 } // namespace blink | 307 } // namespace blink |
OLD | NEW |