diff options
author | bulach@chromium.org <bulach@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-01-25 20:48:11 +0000 |
---|---|---|
committer | bulach@chromium.org <bulach@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-01-25 20:48:11 +0000 |
commit | 4cc2c750a655252227c6fbbe4da417e491033065 (patch) | |
tree | 1a00ca87c88e1f47da2eaca0ff481a54bf2b0d72 /chrome/browser | |
parent | f11f6218bd425c87b82656019b27e853b91a40da (diff) | |
download | chromium_src-4cc2c750a655252227c6fbbe4da417e491033065.zip chromium_src-4cc2c750a655252227c6fbbe4da417e491033065.tar.gz chromium_src-4cc2c750a655252227c6fbbe4da417e491033065.tar.bz2 |
Fixes valgrind following 37001:
+ makes the callback mock a scoped_ptr
+ adds a virtual dtor (so that the vector in the mock is destroyed)
+ the mock needs to be friend of the base class
Review URL: http://codereview.chromium.org/546131
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37037 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
5 files changed, 17 insertions, 6 deletions
diff --git a/chrome/browser/browsing_data_local_storage_helper.cc b/chrome/browser/browsing_data_local_storage_helper.cc index d203563..5bb42c8 100644 --- a/chrome/browser/browsing_data_local_storage_helper.cc +++ b/chrome/browser/browsing_data_local_storage_helper.cc @@ -22,6 +22,9 @@ BrowsingDataLocalStorageHelper::BrowsingDataLocalStorageHelper( DCHECK(profile_); } +BrowsingDataLocalStorageHelper::~BrowsingDataLocalStorageHelper() { +} + void BrowsingDataLocalStorageHelper::StartFetching( Callback1<const std::vector<LocalStorageInfo>& >::Type* callback) { DCHECK(ChromeThread::CurrentlyOn(ChromeThread::UI)); diff --git a/chrome/browser/browsing_data_local_storage_helper.h b/chrome/browser/browsing_data_local_storage_helper.h index f9d9398d..11200ed 100644 --- a/chrome/browser/browsing_data_local_storage_helper.h +++ b/chrome/browser/browsing_data_local_storage_helper.h @@ -71,6 +71,10 @@ class BrowsingDataLocalStorageHelper virtual void DeleteAllLocalStorageFiles(); private: + friend class base::RefCountedThreadSafe<BrowsingDataLocalStorageHelper>; + friend class MockBrowsingDataLocalStorageHelper; + virtual ~BrowsingDataLocalStorageHelper(); + // Enumerates all local storage files in the WEBKIT thread. void FetchLocalStorageInfoInWebKitThread(); // Notifies the completion callback in the UI thread. diff --git a/chrome/browser/cookies_tree_model_unittest.cc b/chrome/browser/cookies_tree_model_unittest.cc index 07935d3..9a055a5 100644 --- a/chrome/browser/cookies_tree_model_unittest.cc +++ b/chrome/browser/cookies_tree_model_unittest.cc @@ -136,7 +136,7 @@ class CookiesTreeModelTest : public testing::Test { ChromeThread io_thread_; scoped_ptr<TestingProfile> profile_; - MockBrowsingDataLocalStorageHelper* mock_browsing_data_helper_; + scoped_refptr<MockBrowsingDataLocalStorageHelper> mock_browsing_data_helper_; }; TEST_F(CookiesTreeModelTest, RemoveAll) { diff --git a/chrome/browser/mock_browsing_data_local_storage_helper.cc b/chrome/browser/mock_browsing_data_local_storage_helper.cc index b654a37f..26c8968 100644 --- a/chrome/browser/mock_browsing_data_local_storage_helper.cc +++ b/chrome/browser/mock_browsing_data_local_storage_helper.cc @@ -8,17 +8,19 @@ MockBrowsingDataLocalStorageHelper::MockBrowsingDataLocalStorageHelper( Profile* profile) : BrowsingDataLocalStorageHelper(profile), profile_(profile), - callback_(NULL), delete_all_files_called_(false) { } +MockBrowsingDataLocalStorageHelper::~MockBrowsingDataLocalStorageHelper() { +} + void MockBrowsingDataLocalStorageHelper::StartFetching( Callback1<const std::vector<LocalStorageInfo>& >::Type* callback) { - callback_ = callback; + callback_.reset(callback); } void MockBrowsingDataLocalStorageHelper::CancelNotification() { - callback_ = NULL; + callback_.reset(NULL); } void MockBrowsingDataLocalStorageHelper::DeleteLocalStorageFile( @@ -42,6 +44,6 @@ void MockBrowsingDataLocalStorageHelper::AddLocalStorageSamples() { } void MockBrowsingDataLocalStorageHelper::Notify() { - CHECK(callback_); + CHECK(callback_.get()); callback_->Run(response_); } diff --git a/chrome/browser/mock_browsing_data_local_storage_helper.h b/chrome/browser/mock_browsing_data_local_storage_helper.h index e60d772..2b36b49 100644 --- a/chrome/browser/mock_browsing_data_local_storage_helper.h +++ b/chrome/browser/mock_browsing_data_local_storage_helper.h @@ -14,6 +14,7 @@ class MockBrowsingDataLocalStorageHelper : public BrowsingDataLocalStorageHelper { public: explicit MockBrowsingDataLocalStorageHelper(Profile* profile); + virtual ~MockBrowsingDataLocalStorageHelper(); virtual void StartFetching( Callback1<const std::vector<LocalStorageInfo>& >::Type* callback); @@ -28,7 +29,8 @@ class MockBrowsingDataLocalStorageHelper void Notify(); Profile* profile_; - Callback1<const std::vector<LocalStorageInfo>& >::Type* callback_; + scoped_ptr<Callback1<const std::vector<LocalStorageInfo>& >::Type > + callback_; FilePath last_deleted_file_; bool delete_all_files_called_; std::vector<LocalStorageInfo> response_; |