Chromium Code Reviews| Index: chrome/browser/download/test_download_shelf.cc |
| diff --git a/chrome/browser/download/test_download_shelf.cc b/chrome/browser/download/test_download_shelf.cc |
| index c28cb0382f4fda4f408aedda7f82c7ea62b63bda..6c2f388ef37ee946695e78c3b46dd70b619b386c 100644 |
| --- a/chrome/browser/download/test_download_shelf.cc |
| +++ b/chrome/browser/download/test_download_shelf.cc |
| @@ -8,10 +8,13 @@ |
| TestDownloadShelf::TestDownloadShelf() |
| : is_showing_(false), |
| - did_add_download_(false) { |
| + did_add_download_(false), |
| + download_manager_(NULL) { |
| } |
| TestDownloadShelf::~TestDownloadShelf() { |
| + if (download_manager_) |
| + download_manager_->RemoveObserver(this); |
| } |
| bool TestDownloadShelf::IsShowing() const { |
| @@ -28,7 +31,16 @@ Browser* TestDownloadShelf::browser() const { |
| void TestDownloadShelf::set_download_manager( |
| content::DownloadManager* download_manager) { |
| + if (download_manager_) |
| + download_manager_->RemoveObserver(this); |
| download_manager_ = download_manager; |
| + if (download_manager_) |
| + download_manager_->AddObserver(this); |
| +} |
| + |
| +void TestDownloadShelf::ManagerGoingDown(content::DownloadManager* manager) { |
| + DCHECK(manager == download_manager_); |
|
benjhayden
2013/05/21 18:14:28
DCHECK_EQ?
|
| + download_manager_ = NULL; |
| } |
| void TestDownloadShelf::DoAddDownload(content::DownloadItem* download) { |
| @@ -48,5 +60,7 @@ base::TimeDelta TestDownloadShelf::GetTransientDownloadShowDelay() { |
| } |
| content::DownloadManager* TestDownloadShelf::GetDownloadManager() { |
| - return download_manager_.get(); |
| + if (download_manager_) |
| + return download_manager_; |
| + return NULL; |
|
benjhayden
2013/05/21 18:14:28
Why not just return download_manager_?
|
| } |