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. |