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

Side by Side Diff: content/browser/download/download_item.cc

Issue 8399001: Use a DownloadRequestHandle pointer in construction to allow mocking for tests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merge to TOT. Created 9 years, 1 month 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 | Annotate | Revision Log
« no previous file with comments | « content/browser/download/download_item.h ('k') | content/browser/download/download_manager.cc » ('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 (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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_item.h" 5 #include "content/browser/download/download_item.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 if (IsInProgress()) 150 if (IsInProgress())
151 state_ = CANCELLED; 151 state_ = CANCELLED;
152 if (IsComplete()) 152 if (IsComplete())
153 all_data_saved_ = true; 153 all_data_saved_ = true;
154 Init(false /* not actively downloading */); 154 Init(false /* not actively downloading */);
155 } 155 }
156 156
157 // Constructing for a regular download: 157 // Constructing for a regular download:
158 DownloadItem::DownloadItem(DownloadManager* download_manager, 158 DownloadItem::DownloadItem(DownloadManager* download_manager,
159 const DownloadCreateInfo& info, 159 const DownloadCreateInfo& info,
160 const DownloadRequestHandle& request_handle, 160 DownloadRequestHandleInterface* request_handle,
161 bool is_otr) 161 bool is_otr)
162 : state_info_(info.original_name, info.save_info.file_path, 162 : state_info_(info.original_name, info.save_info.file_path,
163 info.has_user_gesture, info.transition_type, 163 info.has_user_gesture, info.transition_type,
164 info.prompt_user_for_save_location, info.path_uniquifier, 164 info.prompt_user_for_save_location, info.path_uniquifier,
165 false, false), 165 false, false),
166 request_handle_(request_handle), 166 request_handle_(request_handle),
167 download_id_(info.download_id), 167 download_id_(info.download_id),
168 full_path_(info.path), 168 full_path_(info.path),
169 url_chain_(info.url_chain), 169 url_chain_(info.url_chain),
170 referrer_url_(info.referrer_url), 170 referrer_url_(info.referrer_url),
(...skipping 397 matching lines...) Expand 10 before | Expand all | Expand 10 after
568 DCHECK(!full_path.empty()); 568 DCHECK(!full_path.empty());
569 full_path_ = full_path; 569 full_path_ = full_path;
570 } 570 }
571 571
572 void DownloadItem::TogglePause() { 572 void DownloadItem::TogglePause() {
573 // TODO(rdsmith): Change to DCHECK after http://crbug.com/85408 resolved. 573 // TODO(rdsmith): Change to DCHECK after http://crbug.com/85408 resolved.
574 CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 574 CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
575 575
576 DCHECK(IsInProgress()); 576 DCHECK(IsInProgress());
577 if (is_paused_) 577 if (is_paused_)
578 request_handle_.ResumeRequest(); 578 request_handle_->ResumeRequest();
579 else 579 else
580 request_handle_.PauseRequest(); 580 request_handle_->PauseRequest();
581 is_paused_ = !is_paused_; 581 is_paused_ = !is_paused_;
582 UpdateObservers(); 582 UpdateObservers();
583 } 583 }
584 584
585 void DownloadItem::OnDownloadCompleting(DownloadFileManager* file_manager) { 585 void DownloadItem::OnDownloadCompleting(DownloadFileManager* file_manager) {
586 // TODO(rdsmith): Change to DCHECK after http://crbug.com/85408 resolved. 586 // TODO(rdsmith): Change to DCHECK after http://crbug.com/85408 resolved.
587 CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 587 CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
588 588
589 VLOG(20) << __FUNCTION__ << "()" 589 VLOG(20) << __FUNCTION__ << "()"
590 << " needs rename = " << NeedsRename() 590 << " needs rename = " << NeedsRename()
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
635 string16 url_raw(UTF8ToUTF16(GetURL().spec())); 635 string16 url_raw(UTF8ToUTF16(GetURL().spec()));
636 if (base::i18n::StringSearchIgnoringCaseAndAccents(query, url_raw)) 636 if (base::i18n::StringSearchIgnoringCaseAndAccents(query, url_raw))
637 return true; 637 return true;
638 638
639 // TODO(phajdan.jr): write a test case for the following code. 639 // TODO(phajdan.jr): write a test case for the following code.
640 // A good test case would be: 640 // A good test case would be:
641 // "/\xe4\xbd\xa0\xe5\xa5\xbd\xe4\xbd\xa0\xe5\xa5\xbd", 641 // "/\xe4\xbd\xa0\xe5\xa5\xbd\xe4\xbd\xa0\xe5\xa5\xbd",
642 // L"/\x4f60\x597d\x4f60\x597d", 642 // L"/\x4f60\x597d\x4f60\x597d",
643 // "/%E4%BD%A0%E5%A5%BD%E4%BD%A0%E5%A5%BD" 643 // "/%E4%BD%A0%E5%A5%BD%E4%BD%A0%E5%A5%BD"
644 std::string languages; 644 std::string languages;
645 TabContents* tab = request_handle_.GetTabContents(); 645 TabContents* tab = request_handle_->GetTabContents();
646 if (tab) 646 if (tab)
647 languages = content::GetContentClient()->browser()->GetAcceptLangs(tab); 647 languages = content::GetContentClient()->browser()->GetAcceptLangs(tab);
648 string16 url_formatted(net::FormatUrl(GetURL(), languages)); 648 string16 url_formatted(net::FormatUrl(GetURL(), languages));
649 if (base::i18n::StringSearchIgnoringCaseAndAccents(query, url_formatted)) 649 if (base::i18n::StringSearchIgnoringCaseAndAccents(query, url_formatted))
650 return true; 650 return true;
651 651
652 string16 path(full_path().LossyDisplayName()); 652 string16 path(full_path().LossyDisplayName());
653 return base::i18n::StringSearchIgnoringCaseAndAccents(query, path); 653 return base::i18n::StringSearchIgnoringCaseAndAccents(query, path);
654 } 654 }
655 655
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
695 referrer_url(), 695 referrer_url(),
696 start_time(), 696 start_time(),
697 end_time(), 697 end_time(),
698 received_bytes(), 698 received_bytes(),
699 total_bytes(), 699 total_bytes(),
700 state(), 700 state(),
701 db_handle(), 701 db_handle(),
702 opened()); 702 opened());
703 } 703 }
704 704
705 TabContents* DownloadItem::GetTabContents() const {
706 if (request_handle_.get())
707 return request_handle_->GetTabContents();
708 return NULL;
709 }
710
705 FilePath DownloadItem::GetTargetFilePath() const { 711 FilePath DownloadItem::GetTargetFilePath() const {
706 return full_path_.DirName().Append(state_info_.target_name); 712 return full_path_.DirName().Append(state_info_.target_name);
707 } 713 }
708 714
709 FilePath DownloadItem::GetFileNameToReportUser() const { 715 FilePath DownloadItem::GetFileNameToReportUser() const {
710 if (state_info_.path_uniquifier > 0) { 716 if (state_info_.path_uniquifier > 0) {
711 FilePath name(state_info_.target_name); 717 FilePath name(state_info_.target_name);
712 DownloadFile::AppendNumberToPath(&name, state_info_.path_uniquifier); 718 DownloadFile::AppendNumberToPath(&name, state_info_.path_uniquifier);
713 return name; 719 return name;
714 } 720 }
715 return state_info_.target_name; 721 return state_info_.target_name;
716 } 722 }
717 723
718 FilePath DownloadItem::GetUserVerifiedFilePath() const { 724 FilePath DownloadItem::GetUserVerifiedFilePath() const {
719 return (safety_state_ == DownloadItem::SAFE) ? 725 return (safety_state_ == DownloadItem::SAFE) ?
720 GetTargetFilePath() : full_path_; 726 GetTargetFilePath() : full_path_;
721 } 727 }
722 728
723 void DownloadItem::OffThreadCancel(DownloadFileManager* file_manager) { 729 void DownloadItem::OffThreadCancel(DownloadFileManager* file_manager) {
724 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 730 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
725 request_handle_.CancelRequest(); 731 request_handle_->CancelRequest();
726 732
727 BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE, 733 BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE,
728 base::Bind(&DownloadFileManager::CancelDownload, 734 base::Bind(&DownloadFileManager::CancelDownload,
729 file_manager, global_id())); 735 file_manager, global_id()));
730 } 736 }
731 737
732 void DownloadItem::Init(bool active) { 738 void DownloadItem::Init(bool active) {
733 // TODO(rdsmith): Change to DCHECK after http://crbug.com/85408 resolved. 739 // TODO(rdsmith): Change to DCHECK after http://crbug.com/85408 resolved.
734 CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 740 CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
735 741
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
811 state_info_.target_name.value().c_str(), 817 state_info_.target_name.value().c_str(),
812 full_path().value().c_str()); 818 full_path().value().c_str());
813 } else { 819 } else {
814 description += base::StringPrintf(" url = \"%s\"", url_list.c_str()); 820 description += base::StringPrintf(" url = \"%s\"", url_list.c_str());
815 } 821 }
816 822
817 description += " }"; 823 description += " }";
818 824
819 return description; 825 return description;
820 } 826 }
OLDNEW
« no previous file with comments | « content/browser/download/download_item.h ('k') | content/browser/download/download_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698