| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "content/browser/download/download_request_core.h" | 5 #include "content/browser/download/download_request_core.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/callback_helpers.h" | 10 #include "base/callback_helpers.h" |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 71 }; | 71 }; |
| 72 | 72 |
| 73 // static | 73 // static |
| 74 const int DownloadRequestData::kKey = 0; | 74 const int DownloadRequestData::kKey = 0; |
| 75 | 75 |
| 76 // static | 76 // static |
| 77 void DownloadRequestData::Attach(net::URLRequest* request, | 77 void DownloadRequestData::Attach(net::URLRequest* request, |
| 78 DownloadUrlParameters* parameters, | 78 DownloadUrlParameters* parameters, |
| 79 uint32_t download_id) { | 79 uint32_t download_id) { |
| 80 DownloadRequestData* request_data = new DownloadRequestData; | 80 DownloadRequestData* request_data = new DownloadRequestData; |
| 81 request_data->save_info_.reset(new DownloadSaveInfo); | 81 request_data->save_info_.reset( |
| 82 request_data->save_info_->file_path = parameters->file_path(); | 82 new DownloadSaveInfo(parameters->GetSaveInfo())); |
| 83 request_data->save_info_->suggested_name = parameters->suggested_name(); | |
| 84 request_data->save_info_->file = parameters->GetFile(); | |
| 85 request_data->save_info_->offset = parameters->offset(); | |
| 86 request_data->save_info_->hash_state = parameters->hash_state(); | |
| 87 request_data->save_info_->prompt_for_save_location = parameters->prompt(); | |
| 88 request_data->download_id_ = download_id; | 83 request_data->download_id_ = download_id; |
| 89 request_data->on_started_callback_ = parameters->callback(); | 84 request_data->on_started_callback_ = parameters->callback(); |
| 90 request->SetUserData(&kKey, request_data); | 85 request->SetUserData(&kKey, request_data); |
| 91 } | 86 } |
| 92 | 87 |
| 93 // static | 88 // static |
| 94 DownloadRequestData* DownloadRequestData::Get(net::URLRequest* request) { | 89 DownloadRequestData* DownloadRequestData::Get(net::URLRequest* request) { |
| 95 return static_cast<DownloadRequestData*>(request->GetUserData(&kKey)); | 90 return static_cast<DownloadRequestData*>(request->GetUserData(&kKey)); |
| 96 } | 91 } |
| 97 | 92 |
| (...skipping 499 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 597 DCHECK_NE(1, http_headers.response_code() / 100); | 592 DCHECK_NE(1, http_headers.response_code() / 100); |
| 598 return DOWNLOAD_INTERRUPT_REASON_SERVER_FAILED; | 593 return DOWNLOAD_INTERRUPT_REASON_SERVER_FAILED; |
| 599 } | 594 } |
| 600 | 595 |
| 601 if (save_info && save_info->offset > 0) { | 596 if (save_info && save_info->offset > 0) { |
| 602 // The caller is expecting a partial response. | 597 // The caller is expecting a partial response. |
| 603 | 598 |
| 604 if (http_headers.response_code() != net::HTTP_PARTIAL_CONTENT) { | 599 if (http_headers.response_code() != net::HTTP_PARTIAL_CONTENT) { |
| 605 // Requested a partial range, but received the entire response. | 600 // Requested a partial range, but received the entire response. |
| 606 save_info->offset = 0; | 601 save_info->offset = 0; |
| 607 save_info->hash_state.clear(); | 602 save_info->prefix_hash.clear(); |
| 603 save_info->hash_state.reset(); |
| 608 return DOWNLOAD_INTERRUPT_REASON_NONE; | 604 return DOWNLOAD_INTERRUPT_REASON_NONE; |
| 609 } | 605 } |
| 610 | 606 |
| 611 int64_t first_byte = -1; | 607 int64_t first_byte = -1; |
| 612 int64_t last_byte = -1; | 608 int64_t last_byte = -1; |
| 613 int64_t length = -1; | 609 int64_t length = -1; |
| 614 if (!http_headers.GetContentRange(&first_byte, &last_byte, &length)) | 610 if (!http_headers.GetContentRange(&first_byte, &last_byte, &length)) |
| 615 return DOWNLOAD_INTERRUPT_REASON_SERVER_BAD_CONTENT; | 611 return DOWNLOAD_INTERRUPT_REASON_SERVER_BAD_CONTENT; |
| 616 DCHECK_GE(first_byte, 0); | 612 DCHECK_GE(first_byte, 0); |
| 617 | 613 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 628 return DOWNLOAD_INTERRUPT_REASON_NONE; | 624 return DOWNLOAD_INTERRUPT_REASON_NONE; |
| 629 } | 625 } |
| 630 | 626 |
| 631 if (http_headers.response_code() == net::HTTP_PARTIAL_CONTENT) | 627 if (http_headers.response_code() == net::HTTP_PARTIAL_CONTENT) |
| 632 return DOWNLOAD_INTERRUPT_REASON_SERVER_BAD_CONTENT; | 628 return DOWNLOAD_INTERRUPT_REASON_SERVER_BAD_CONTENT; |
| 633 | 629 |
| 634 return DOWNLOAD_INTERRUPT_REASON_NONE; | 630 return DOWNLOAD_INTERRUPT_REASON_NONE; |
| 635 } | 631 } |
| 636 | 632 |
| 637 } // namespace content | 633 } // namespace content |
| OLD | NEW |