Chromium Code Reviews| Index: net/cookies/cookie_monster.cc |
| diff --git a/net/cookies/cookie_monster.cc b/net/cookies/cookie_monster.cc |
| index e090095c97422d3725a25e982571421ac478a4ee..ef2e9c8c891d2d076363192954cfc86a51bb172b 100644 |
| --- a/net/cookies/cookie_monster.cc |
| +++ b/net/cookies/cookie_monster.cc |
| @@ -559,18 +559,42 @@ void CookieMonster::DeleteAllTask::Run() { |
| } |
| } |
| +// Base task class for Delete*Task. |
| +class CookieMonster::DeleteTask |
| + : public CookieMonster::CookieMonsterTask { |
| + public: |
| + DeleteTask(CookieMonster* cookie_monster, |
| + const CookieMonster::DeleteCallback& callback) |
| + : CookieMonsterTask(cookie_monster), |
| + callback_(callback) { |
| + } |
| + |
| + void FlushDone(int num_deleted); |
| + |
| + private: |
| + CookieMonster::DeleteCallback callback_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(DeleteTask); |
| +}; |
| + |
| +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 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: |
| @@ -582,7 +606,6 @@ class CookieMonster::DeleteAllCreatedBetweenTask |
| private: |
| Time delete_begin_; |
| Time delete_end_; |
| - CookieMonster::DeleteCallback callback_; |
| DISALLOW_COPY_AND_ASSIGN(DeleteAllCreatedBetweenTask); |
| }; |
| @@ -590,10 +613,8 @@ class CookieMonster::DeleteAllCreatedBetweenTask |
| void CookieMonster::DeleteAllCreatedBetweenTask::Run() { |
|
erikwright (departed)
2013/08/09 17:31:51
Pull this method up to DeleteTask and delegate to
|
| int num_deleted = this->cookie_monster()-> |
| DeleteAllCreatedBetween(delete_begin_, delete_end_); |
| - if (!callback_.is_null()) { |
| - this->InvokeCallback(base::Bind(&CookieMonster::DeleteCallback::Run, |
| - base::Unretained(&callback_), num_deleted)); |
| - } |
| + this->cookie_monster()->FlushStore( |
| + base::Bind(&CookieMonster::DeleteTask::FlushDone, this, num_deleted)); |
| } |
| // Task class for DeleteAllForHost call. |