summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbulach@chromium.org <bulach@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-01-25 20:48:11 +0000
committerbulach@chromium.org <bulach@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-01-25 20:48:11 +0000
commit4cc2c750a655252227c6fbbe4da417e491033065 (patch)
tree1a00ca87c88e1f47da2eaca0ff481a54bf2b0d72
parentf11f6218bd425c87b82656019b27e853b91a40da (diff)
downloadchromium_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
-rw-r--r--chrome/browser/browsing_data_local_storage_helper.cc3
-rw-r--r--chrome/browser/browsing_data_local_storage_helper.h4
-rw-r--r--chrome/browser/cookies_tree_model_unittest.cc2
-rw-r--r--chrome/browser/mock_browsing_data_local_storage_helper.cc10
-rw-r--r--chrome/browser/mock_browsing_data_local_storage_helper.h4
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_;