OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2011, 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2011, 2012 Google Inc. All rights reserved. |
3 * Copyright (C) 2013, Intel Corporation | 3 * Copyright (C) 2013, Intel Corporation |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions are | 6 * modification, are permitted provided that the following conditions are |
7 * met: | 7 * met: |
8 * | 8 * |
9 * * Redistributions of source code must retain the above copyright | 9 * * Redistributions of source code must retain the above copyright |
10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
(...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
307 // to content::WebURLLoaderImpl. So, this loader must also get detached from | 307 // to content::WebURLLoaderImpl. So, this loader must also get detached from |
308 // the resource by calling clearResource(). | 308 // the resource by calling clearResource(). |
309 void DocumentThreadableLoader::redirectReceived(Resource* resource, ResourceRequ
est& request, const ResourceResponse& redirectResponse) | 309 void DocumentThreadableLoader::redirectReceived(Resource* resource, ResourceRequ
est& request, const ResourceResponse& redirectResponse) |
310 { | 310 { |
311 ASSERT(m_client); | 311 ASSERT(m_client); |
312 ASSERT_UNUSED(resource, resource == this->resource()); | 312 ASSERT_UNUSED(resource, resource == this->resource()); |
313 ASSERT(m_async); | 313 ASSERT(m_async); |
314 | 314 |
315 RefPtr<DocumentThreadableLoader> protect(this); | 315 RefPtr<DocumentThreadableLoader> protect(this); |
316 | 316 |
| 317 if (m_actualRequest) { |
| 318 reportResponseReceived(resource->identifier(), redirectResponse); |
| 319 |
| 320 clearResource(); |
| 321 request = ResourceRequest(); |
| 322 |
| 323 m_requestStartedSeconds = 0.0; |
| 324 |
| 325 handlePreflightFailure(redirectResponse.url().string(), "Response for pr
eflight is invalid (redirect)"); |
| 326 |
| 327 return; |
| 328 } |
| 329 |
317 if (m_redirectMode == WebURLRequest::FetchRedirectModeManual) { | 330 if (m_redirectMode == WebURLRequest::FetchRedirectModeManual) { |
318 // We use |m_redirectMode| to check the original redirect mode. | 331 // We use |m_redirectMode| to check the original redirect mode. |
319 // |request| is a new request for redirect. So we don't set the redirect | 332 // |request| is a new request for redirect. So we don't set the redirect |
320 // mode of it in WebURLLoaderImpl::Context::OnReceivedRedirect(). | 333 // mode of it in WebURLLoaderImpl::Context::OnReceivedRedirect(). |
321 ASSERT(request.useStreamOnResponse()); | 334 ASSERT(request.useStreamOnResponse()); |
322 // There is no need to read the body of redirect response because there | 335 // There is no need to read the body of redirect response because there |
323 // is no way to read the body of opaque-redirect filtered response's | 336 // is no way to read the body of opaque-redirect filtered response's |
324 // internal response. | 337 // internal response. |
325 // TODO(horo): If we support any API which expose the internal body, we | 338 // TODO(horo): If we support any API which expose the internal body, we |
326 // will have to read the body. And also HTTPCache changes will be needed | 339 // will have to read the body. And also HTTPCache changes will be needed |
(...skipping 411 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
738 return DoNotAllowStoredCredentials; | 751 return DoNotAllowStoredCredentials; |
739 return m_resourceLoaderOptions.allowCredentials; | 752 return m_resourceLoaderOptions.allowCredentials; |
740 } | 753 } |
741 | 754 |
742 SecurityOrigin* DocumentThreadableLoader::securityOrigin() const | 755 SecurityOrigin* DocumentThreadableLoader::securityOrigin() const |
743 { | 756 { |
744 return m_securityOrigin ? m_securityOrigin.get() : m_document.securityOrigin
(); | 757 return m_securityOrigin ? m_securityOrigin.get() : m_document.securityOrigin
(); |
745 } | 758 } |
746 | 759 |
747 } // namespace blink | 760 } // namespace blink |
OLD | NEW |