Chromium Code Reviews| Index: net/cookies/cookie_monster.cc |
| diff --git a/net/cookies/cookie_monster.cc b/net/cookies/cookie_monster.cc |
| index f24637735fd44a3be289b58bec803081a1e25739..f33a2c872848f341334b604563fa38647e09e427 100644 |
| --- a/net/cookies/cookie_monster.cc |
| +++ b/net/cookies/cookie_monster.cc |
| @@ -530,51 +530,81 @@ void CookieMonster::GetAllCookiesForURLWithOptionsTask::Run() { |
| } |
| } |
| -// Task class for DeleteAll call. |
| -class CookieMonster::DeleteAllTask : public CookieMonster::CookieMonsterTask { |
| +// Base task class for Delete*Task. |
| +class CookieMonster::DeleteTask |
|
erikwright (departed)
2013/09/04 15:04:38
make this a template class
template <typename Res
|
| + : public CookieMonster::CookieMonsterTask { |
| public: |
| - DeleteAllTask(CookieMonster* cookie_monster, |
| - const CookieMonster::DeleteCallback& callback) |
| + DeleteTask(CookieMonster* cookie_monster, |
| + const CookieMonster::DeleteCallback& callback) |
| : CookieMonsterTask(cookie_monster), |
| callback_(callback) { |
| } |
| + // Runs the delete task and returns the number of cookies deleted. |
| + virtual int RunDeleteTask() = 0; |
| + |
| // CookieMonster::CookieMonsterTask: |
| virtual void Run() OVERRIDE; |
| - protected: |
| - virtual ~DeleteAllTask() {} |
| + void FlushDone(int num_deleted); |
| private: |
| CookieMonster::DeleteCallback callback_; |
| - DISALLOW_COPY_AND_ASSIGN(DeleteAllTask); |
| + DISALLOW_COPY_AND_ASSIGN(DeleteTask); |
| }; |
| -void CookieMonster::DeleteAllTask::Run() { |
| - int num_deleted = this->cookie_monster()->DeleteAll(true); |
| +void CookieMonster::DeleteTask::Run() { |
| + int num_deleted = RunDeleteTask(); |
| + this->cookie_monster()->FlushStore( |
| + base::Bind(&CookieMonster::DeleteTask::FlushDone, this, num_deleted)); |
| +} |
| + |
| +void CookieMonster::DeleteTask::FlushDone(int num_deleted) { |
| if (!callback_.is_null()) { |
| this->InvokeCallback(base::Bind(&CookieMonster::DeleteCallback::Run, |
| base::Unretained(&callback_), num_deleted)); |
| } |
| } |
| +// Task class for DeleteAll call. |
| +class CookieMonster::DeleteAllTask : public CookieMonster::DeleteTask { |
| + public: |
| + DeleteAllTask(CookieMonster* cookie_monster, |
| + const CookieMonster::DeleteCallback& callback) |
| + : DeleteTask(cookie_monster, callback) { |
| + } |
| + |
| + // CookieMonster::DeleteTask: |
| + virtual int RunDeleteTask() OVERRIDE; |
| + |
| + protected: |
| + virtual ~DeleteAllTask() {} |
| + |
| + private: |
| + |
|
erikwright (departed)
2013/09/04 15:04:38
remove blank line
|
| + DISALLOW_COPY_AND_ASSIGN(DeleteAllTask); |
| +}; |
| + |
| +int CookieMonster::DeleteAllTask::RunDeleteTask() { |
| + return this->cookie_monster()->DeleteAll(true); |
| +} |
| + |
| // Task class for DeleteAllCreatedBetween call. |
| class CookieMonster::DeleteAllCreatedBetweenTask |
| - : public CookieMonster::CookieMonsterTask { |
| + : public CookieMonster::DeleteTask { |
| public: |
| DeleteAllCreatedBetweenTask(CookieMonster* cookie_monster, |
| const Time& delete_begin, |
| const Time& delete_end, |
| const CookieMonster::DeleteCallback& callback) |
| - : CookieMonsterTask(cookie_monster), |
| + : DeleteTask(cookie_monster, callback), |
| delete_begin_(delete_begin), |
| - delete_end_(delete_end), |
| - callback_(callback) { |
| + delete_end_(delete_end) { |
| } |
| - // CookieMonster::CookieMonsterTask: |
| - virtual void Run() OVERRIDE; |
| + // CookieMonster::DeleteTask: |
| + virtual int RunDeleteTask() OVERRIDE; |
| protected: |
| virtual ~DeleteAllCreatedBetweenTask() {} |
| @@ -582,56 +612,44 @@ class CookieMonster::DeleteAllCreatedBetweenTask |
| private: |
| Time delete_begin_; |
| Time delete_end_; |
| - CookieMonster::DeleteCallback callback_; |
| DISALLOW_COPY_AND_ASSIGN(DeleteAllCreatedBetweenTask); |
| }; |
| -void CookieMonster::DeleteAllCreatedBetweenTask::Run() { |
| - int num_deleted = this->cookie_monster()-> |
| +int CookieMonster::DeleteAllCreatedBetweenTask::RunDeleteTask() { |
| + return this->cookie_monster()-> |
| DeleteAllCreatedBetween(delete_begin_, delete_end_); |
| - if (!callback_.is_null()) { |
| - this->InvokeCallback(base::Bind(&CookieMonster::DeleteCallback::Run, |
| - base::Unretained(&callback_), num_deleted)); |
| - } |
| } |
| // Task class for DeleteAllForHost call. |
| -class CookieMonster::DeleteAllForHostTask |
| - : public CookieMonster::CookieMonsterTask { |
| +class CookieMonster::DeleteAllForHostTask : public CookieMonster::DeleteTask { |
| public: |
| DeleteAllForHostTask(CookieMonster* cookie_monster, |
| const GURL& url, |
| const CookieMonster::DeleteCallback& callback) |
| - : CookieMonsterTask(cookie_monster), |
| - url_(url), |
| - callback_(callback) { |
| + : DeleteTask(cookie_monster, callback), |
| + url_(url) { |
| } |
| - // CookieMonster::CookieMonsterTask: |
| - virtual void Run() OVERRIDE; |
| + // CookieMonster::DeleteTask: |
| + virtual int RunDeleteTask() OVERRIDE; |
| protected: |
| virtual ~DeleteAllForHostTask() {} |
| private: |
| GURL url_; |
| - CookieMonster::DeleteCallback callback_; |
| DISALLOW_COPY_AND_ASSIGN(DeleteAllForHostTask); |
| }; |
| -void CookieMonster::DeleteAllForHostTask::Run() { |
| - int num_deleted = this->cookie_monster()->DeleteAllForHost(url_); |
| - if (!callback_.is_null()) { |
| - this->InvokeCallback(base::Bind(&CookieMonster::DeleteCallback::Run, |
| - base::Unretained(&callback_), num_deleted)); |
| - } |
| +int CookieMonster::DeleteAllForHostTask::RunDeleteTask() { |
| + return this->cookie_monster()->DeleteAllForHost(url_); |
| } |
| // Task class for DeleteAllCreatedBetweenForHost call. |
| class CookieMonster::DeleteAllCreatedBetweenForHostTask |
| - : public CookieMonster::CookieMonsterTask { |
| + : public CookieMonster::DeleteTask { |
| public: |
| DeleteAllCreatedBetweenForHostTask( |
| CookieMonster* cookie_monster, |
| @@ -639,15 +657,14 @@ class CookieMonster::DeleteAllCreatedBetweenForHostTask |
| Time delete_end, |
| const GURL& url, |
| const CookieMonster::DeleteCallback& callback) |
| - : CookieMonsterTask(cookie_monster), |
| + : DeleteTask(cookie_monster, callback), |
| delete_begin_(delete_begin), |
| delete_end_(delete_end), |
| - url_(url), |
| - callback_(callback) { |
| + url_(url) { |
| } |
| - // CookieMonster::CookieMonsterTask: |
| - virtual void Run() OVERRIDE; |
| + // CookieMonster::DeleteTask: |
| + int RunDeleteTask() OVERRIDE; |
| protected: |
| virtual ~DeleteAllCreatedBetweenForHostTask() {} |
| @@ -656,18 +673,13 @@ class CookieMonster::DeleteAllCreatedBetweenForHostTask |
| Time delete_begin_; |
| Time delete_end_; |
| GURL url_; |
| - CookieMonster::DeleteCallback callback_; |
| DISALLOW_COPY_AND_ASSIGN(DeleteAllCreatedBetweenForHostTask); |
| }; |
| -void CookieMonster::DeleteAllCreatedBetweenForHostTask::Run() { |
| - int num_deleted = this->cookie_monster()->DeleteAllCreatedBetweenForHost( |
| +int CookieMonster::DeleteAllCreatedBetweenForHostTask::RunDeleteTask() { |
| + return this->cookie_monster()->DeleteAllCreatedBetweenForHost( |
| delete_begin_, delete_end_, url_); |
| - if (!callback_.is_null()) { |
| - this->InvokeCallback(base::Bind(&CookieMonster::DeleteCallback::Run, |
| - base::Unretained(&callback_), num_deleted)); |
| - } |
| } |
| // Task class for DeleteCanonicalCookie call. |
| @@ -816,31 +828,26 @@ void CookieMonster::DeleteCookieTask::Run() { |
| // Task class for DeleteSessionCookies call. |
| class CookieMonster::DeleteSessionCookiesTask |
| - : public CookieMonster::CookieMonsterTask { |
| + : public CookieMonster::DeleteTask { |
| public: |
| DeleteSessionCookiesTask(CookieMonster* cookie_monster, |
| const CookieMonster::DeleteCallback& callback) |
| - : CookieMonsterTask(cookie_monster), callback_(callback) { |
| + : DeleteTask(cookie_monster, callback) { |
| } |
| - // CookieMonster::CookieMonsterTask: |
| - virtual void Run() OVERRIDE; |
| + // CookieMonster::DeleteTask: |
| + virtual int RunDeleteTask() OVERRIDE; |
| protected: |
| virtual ~DeleteSessionCookiesTask() {} |
| private: |
| - CookieMonster::DeleteCallback callback_; |
| DISALLOW_COPY_AND_ASSIGN(DeleteSessionCookiesTask); |
| }; |
| -void CookieMonster::DeleteSessionCookiesTask::Run() { |
| - int num_deleted = this->cookie_monster()->DeleteSessionCookies(); |
| - if (!callback_.is_null()) { |
| - this->InvokeCallback(base::Bind(&CookieMonster::DeleteCallback::Run, |
| - base::Unretained(&callback_), num_deleted)); |
| - } |
| +int CookieMonster::DeleteSessionCookiesTask::RunDeleteTask() { |
| + return this->cookie_monster()->DeleteSessionCookies(); |
| } |
| // Task class for HasCookiesForETLDP1Task call. |