diff options
author | mnissler@chromium.org <mnissler@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-22 08:29:29 +0000 |
---|---|---|
committer | mnissler@chromium.org <mnissler@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-22 08:29:29 +0000 |
commit | 1b2f8da607c5e9b7b14ff994110f473af2a88737 (patch) | |
tree | 65d7183fd698ee26a9bc0da3c0e54be37b95e414 | |
parent | af804e131b09b6e9c9a4476b676e9ed8b2135611 (diff) | |
download | chromium_src-1b2f8da607c5e9b7b14ff994110f473af2a88737.zip chromium_src-1b2f8da607c5e9b7b14ff994110f473af2a88737.tar.gz chromium_src-1b2f8da607c5e9b7b14ff994110f473af2a88737.tar.bz2 |
Fix leak in DownloadManagerTest.
BUG=49268, 49307
TEST=valgrind bots should be green on DownloadManagerTest
Review URL: http://codereview.chromium.org/3038012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53314 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/download/download_manager.cc | 15 | ||||
-rw-r--r-- | chrome/browser/download/download_manager_unittest.cc | 6 | ||||
-rw-r--r-- | tools/heapcheck/suppressions.txt | 43 | ||||
-rw-r--r-- | tools/valgrind/memcheck/suppressions.txt | 15 |
4 files changed, 11 insertions, 68 deletions
diff --git a/chrome/browser/download/download_manager.cc b/chrome/browser/download/download_manager.cc index 6930755..ed83daf 100644 --- a/chrome/browser/download/download_manager.cc +++ b/chrome/browser/download/download_manager.cc @@ -631,22 +631,21 @@ void DownloadManager::ContinueStartDownload(DownloadCreateInfo* info, // - incognito mode (that is the point of this mode) // - extensions (users don't think of extension installation as 'downloading') // - temporary download, like in drag-and-drop + // - history service is not available (e.g. in tests) // We have to make sure that these handles don't collide with normal db // handles, so we use a negative value. Eventually, they could overlap, but // you'd have to do enough downloading that your ISP would likely stab you in // the neck first. YMMV. + // FIXME(paulg) see bug 958058. EXPLICIT_ACCESS below is wrong. + HistoryService* hs = profile_->GetHistoryService(Profile::EXPLICIT_ACCESS); if (download->is_otr() || download->is_extension_install() || - download->is_temporary()) { + download->is_temporary() || !hs) { OnCreateDownloadEntryComplete(*info, fake_db_handle_.GetNext()); } else { // Update the history system with the new download. - // FIXME(paulg) see bug 958058. EXPLICIT_ACCESS below is wrong. - HistoryService* hs = profile_->GetHistoryService(Profile::EXPLICIT_ACCESS); - if (hs) { - hs->CreateDownload( - *info, &cancelable_consumer_, - NewCallback(this, &DownloadManager::OnCreateDownloadEntryComplete)); - } + hs->CreateDownload( + *info, &cancelable_consumer_, + NewCallback(this, &DownloadManager::OnCreateDownloadEntryComplete)); } UpdateAppIcon(); diff --git a/chrome/browser/download/download_manager_unittest.cc b/chrome/browser/download/download_manager_unittest.cc index c221a5d..827cae1 100644 --- a/chrome/browser/download/download_manager_unittest.cc +++ b/chrome/browser/download/download_manager_unittest.cc @@ -59,7 +59,9 @@ class DownloadManagerTest : public testing::Test { ~DownloadManagerTest() { // profile_ must outlive download_manager_, so we explicitly delete // download_manager_ first. - download_manager_.release(); + download_manager_ = NULL; + profile_.reset(NULL); + message_loop_.RunAllPending(); } void GetGeneratedFilename(const std::string& content_disposition, @@ -763,7 +765,7 @@ const struct { class MockDownloadFile : public DownloadFile { public: - MockDownloadFile(DownloadCreateInfo* info) + explicit MockDownloadFile(DownloadCreateInfo* info) : DownloadFile(info), renamed_count_(0) { } virtual ~MockDownloadFile() { Destructed(); } MOCK_METHOD2(Rename, bool(const FilePath&, bool)); diff --git a/tools/heapcheck/suppressions.txt b/tools/heapcheck/suppressions.txt index 3186131..e8ac717 100644 --- a/tools/heapcheck/suppressions.txt +++ b/tools/heapcheck/suppressions.txt @@ -893,49 +893,6 @@ fun:disk_cache::BackendImpl::MatchEntry } { - bug_49307_a - Heapcheck:Leak - ... - fun:DownloadManagerTest - fun:DownloadManagerTest_TestDownloadFilename_Test -} -{ - bug_49307_b - Heapcheck:Leak - ... - fun:DownloadManagerTest - fun:DownloadManagerTest_StartDownload_Test -} -{ - bug_49307_c - Heapcheck:Leak - ... - fun:DownloadManager::OpenFilesBasedOnExtension - fun:DownloadManagerTest_StartDownload_Test::TestBody -} -{ - bug_49307_d - Heapcheck:Leak - ... - fun:DownloadManager::ContinueStartDownload - fun:DownloadManager::FileSelected - fun:DownloadManagerTest_DownloadRenameTest_Test::TestBody -} -{ - bug_49307_e - Heapcheck:Leak - ... - fun:DownloadManagerTest - fun:DownloadManagerTest_DownloadRenameTest_Test -} -{ - bug_49307_f - Heapcheck:Leak - ... - fun:DownloadManager::DownloadFinished - fun:DownloadManagerTest_DownloadRenameTest_Test::TestBody -} -{ bug_49310_a Heapcheck:Leak ... diff --git a/tools/valgrind/memcheck/suppressions.txt b/tools/valgrind/memcheck/suppressions.txt index aeea513..2c3f736 100644 --- a/tools/valgrind/memcheck/suppressions.txt +++ b/tools/valgrind/memcheck/suppressions.txt @@ -3498,21 +3498,6 @@ fun:_ZN12browser_sync19DataTypeManagerImpl10NotifyDoneENS_15DataTypeManager15ConfigureResultE } { - bug_49268_0 - Memcheck:Leak - fun:_Znw* - fun:_ZN19DownloadManagerTestC2Ev - fun:_ZN45DownloadManagerTest_TestDownloadFilename_TestC1Ev -} -{ - bug_49268_1 - Memcheck:Leak - fun:_Znw* - ... - fun:_ZN19DownloadManagerTestC2Ev - fun:_ZN38DownloadManagerTest_StartDownload_TestC1Ev -} -{ bug_49279 Memcheck:Leak fun:_Znw* |