Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(84)

Unified Diff: net/cookies/cookie_monster.cc

Issue 18032002: Wait for store flush in CookieMonster::Delete*Task (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Wait for store flush in CookieMonster::Delete*Task Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/cookies/cookie_monster.h ('k') | net/cookies/cookie_monster_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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.
« no previous file with comments | « net/cookies/cookie_monster.h ('k') | net/cookies/cookie_monster_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698