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

Unified Diff: net/cookies/cookie_monster.cc

Issue 2937963003: Shift cookie system callbacks to OnceCallback to impedance match mojo. (Closed)
Patch Set: Finish Merge Created 3 years, 6 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
Index: net/cookies/cookie_monster.cc
diff --git a/net/cookies/cookie_monster.cc b/net/cookies/cookie_monster.cc
index 59b3dc72c503d679c1a47537a0579cb3b64d8106..3e4621b89bde32c74bb676df585c6b6c01c43c8f 100644
--- a/net/cookies/cookie_monster.cc
+++ b/net/cookies/cookie_monster.cc
@@ -431,7 +431,7 @@ class CookieMonster::SetCookieWithDetailsTask : public CookieMonsterTask {
bool http_only,
CookieSameSite same_site,
CookiePriority priority,
- const SetCookiesCallback& callback)
+ SetCookiesCallback callback)
: CookieMonsterTask(cookie_monster),
url_(url),
name_(name),
@@ -445,7 +445,7 @@ class CookieMonster::SetCookieWithDetailsTask : public CookieMonsterTask {
http_only_(http_only),
same_site_(same_site),
priority_(priority),
- callback_(callback) {}
+ callback_(std::move(callback)) {}
// CookieMonsterTask:
void Run() override;
@@ -476,15 +476,15 @@ void CookieMonster::SetCookieWithDetailsTask::Run() {
url_, name_, value_, domain_, path_, creation_time_, expiration_time_,
last_access_time_, secure_, http_only_, same_site_, priority_);
if (!callback_.is_null())
- callback_.Run(success);
+ std::move(callback_).Run(success);
}
// Task class for GetAllCookies call.
class CookieMonster::GetAllCookiesTask : public CookieMonsterTask {
public:
GetAllCookiesTask(CookieMonster* cookie_monster,
- const GetCookieListCallback& callback)
- : CookieMonsterTask(cookie_monster), callback_(callback) {}
+ GetCookieListCallback callback)
+ : CookieMonsterTask(cookie_monster), callback_(std::move(callback)) {}
// CookieMonsterTask
void Run() override;
@@ -501,7 +501,7 @@ class CookieMonster::GetAllCookiesTask : public CookieMonsterTask {
void CookieMonster::GetAllCookiesTask::Run() {
if (!callback_.is_null()) {
CookieList cookies = this->cookie_monster()->GetAllCookies();
- callback_.Run(cookies);
+ std::move(callback_).Run(cookies);
}
}
@@ -511,11 +511,11 @@ class CookieMonster::GetCookieListWithOptionsTask : public CookieMonsterTask {
GetCookieListWithOptionsTask(CookieMonster* cookie_monster,
const GURL& url,
const CookieOptions& options,
- const GetCookieListCallback& callback)
+ GetCookieListCallback callback)
: CookieMonsterTask(cookie_monster),
url_(url),
options_(options),
- callback_(callback) {}
+ callback_(std::move(callback)) {}
// CookieMonsterTask:
void Run() override;
@@ -535,18 +535,18 @@ void CookieMonster::GetCookieListWithOptionsTask::Run() {
if (!callback_.is_null()) {
CookieList cookies =
this->cookie_monster()->GetCookieListWithOptions(url_, options_);
- callback_.Run(cookies);
+ std::move(callback_).Run(cookies);
}
}
template <typename Result>
struct CallbackType {
- typedef base::Callback<void(Result)> Type;
+ typedef base::OnceCallback<void(Result)> Type;
};
template <>
struct CallbackType<void> {
- typedef base::Closure Type;
+ typedef base::OnceClosure Type;
};
// Base task class for Delete*Task.
@@ -554,8 +554,8 @@ template <typename Result>
class CookieMonster::DeleteTask : public CookieMonsterTask {
public:
DeleteTask(CookieMonster* cookie_monster,
- const typename CallbackType<Result>::Type& callback)
- : CookieMonsterTask(cookie_monster), callback_(callback) {}
+ typename CallbackType<Result>::Type callback)
+ : CookieMonsterTask(cookie_monster), callback_(std::move(callback)) {}
// CookieMonsterTask:
void Run() override;
@@ -570,7 +570,7 @@ class CookieMonster::DeleteTask : public CookieMonsterTask {
// flushing the persistent store.
// TODO(mmenke): This seems like a pretty ugly and needlessly confusing API.
// Simplify it?
- base::Closure RunDeleteTaskAndBindCallback();
+ base::OnceClosure RunDeleteTaskAndBindCallback();
typename CallbackType<Result>::Type callback_;
@@ -582,29 +582,31 @@ CookieMonster::DeleteTask<Result>::~DeleteTask() {
}
template <typename Result>
-base::Closure
+base::OnceClosure
CookieMonster::DeleteTask<Result>::RunDeleteTaskAndBindCallback() {
Result result = RunDeleteTask();
if (callback_.is_null())
- return base::Closure();
- return base::Bind(callback_, result);
+ return base::OnceClosure();
+ return base::BindOnce(std::move(callback_), result);
}
template <>
-base::Closure CookieMonster::DeleteTask<void>::RunDeleteTaskAndBindCallback() {
+base::OnceClosure
+CookieMonster::DeleteTask<void>::RunDeleteTaskAndBindCallback() {
RunDeleteTask();
- return callback_;
+ return std::move(callback_);
}
template <typename Result>
void CookieMonster::DeleteTask<Result>::Run() {
- base::Closure callback = RunDeleteTaskAndBindCallback();
+ base::OnceClosure callback = RunDeleteTaskAndBindCallback();
if (!callback.is_null()) {
- callback = base::Bind(
- &CookieMonster::RunCallback,
- this->cookie_monster()->weak_ptr_factory_.GetWeakPtr(), callback);
+ callback =
+ base::BindOnce(&CookieMonster::RunCallback,
+ this->cookie_monster()->weak_ptr_factory_.GetWeakPtr(),
+ std::move(callback));
}
- this->cookie_monster()->FlushStore(callback);
+ this->cookie_monster()->FlushStore(std::move(callback));
}
// Task class for DeleteAllCreatedBetween call.
@@ -613,8 +615,8 @@ class CookieMonster::DeleteAllCreatedBetweenTask : public DeleteTask<int> {
DeleteAllCreatedBetweenTask(CookieMonster* cookie_monster,
const Time& delete_begin,
const Time& delete_end,
- const DeleteCallback& callback)
- : DeleteTask<int>(cookie_monster, callback),
+ DeleteCallback callback)
+ : DeleteTask<int>(cookie_monster, std::move(callback)),
delete_begin_(delete_begin),
delete_end_(delete_end) {}
@@ -645,8 +647,8 @@ class CookieMonster::DeleteAllCreatedBetweenWithPredicateTask
Time delete_begin,
Time delete_end,
base::Callback<bool(const CanonicalCookie&)> predicate,
- const DeleteCallback& callback)
- : DeleteTask<int>(cookie_monster, callback),
+ DeleteCallback callback)
+ : DeleteTask<int>(cookie_monster, std::move(callback)),
delete_begin_(delete_begin),
delete_end_(delete_end),
predicate_(predicate) {}
@@ -675,8 +677,8 @@ class CookieMonster::DeleteCanonicalCookieTask : public DeleteTask<int> {
public:
DeleteCanonicalCookieTask(CookieMonster* cookie_monster,
const CanonicalCookie& cookie,
- const DeleteCallback& callback)
- : DeleteTask<int>(cookie_monster, callback), cookie_(cookie) {}
+ DeleteCallback callback)
+ : DeleteTask<int>(cookie_monster, std::move(callback)), cookie_(cookie) {}
// DeleteTask:
int RunDeleteTask() override;
@@ -701,12 +703,12 @@ class CookieMonster::SetCanonicalCookieTask : public CookieMonsterTask {
std::unique_ptr<CanonicalCookie> cookie,
bool secure_source,
bool modify_http_only,
- const SetCookiesCallback& callback)
+ SetCookiesCallback callback)
: CookieMonsterTask(cookie_monster),
cookie_(std::move(cookie)),
secure_source_(secure_source),
modify_http_only_(modify_http_only),
- callback_(callback) {}
+ callback_(std::move(callback)) {}
// CookieMonsterTask:
void Run() override;
@@ -727,7 +729,7 @@ void CookieMonster::SetCanonicalCookieTask::Run() {
bool result = this->cookie_monster()->SetCanonicalCookie(
std::move(cookie_), secure_source_, modify_http_only_);
if (!callback_.is_null())
- callback_.Run(result);
+ std::move(callback_).Run(result);
}
// Task class for SetCookieWithOptions call.
@@ -737,12 +739,12 @@ class CookieMonster::SetCookieWithOptionsTask : public CookieMonsterTask {
const GURL& url,
const std::string& cookie_line,
const CookieOptions& options,
- const SetCookiesCallback& callback)
+ SetCookiesCallback callback)
: CookieMonsterTask(cookie_monster),
url_(url),
cookie_line_(cookie_line),
options_(options),
- callback_(callback) {}
+ callback_(std::move(callback)) {}
// CookieMonsterTask:
void Run() override;
@@ -763,7 +765,7 @@ void CookieMonster::SetCookieWithOptionsTask::Run() {
bool result = this->cookie_monster()->SetCookieWithOptions(url_, cookie_line_,
options_);
if (!callback_.is_null())
- callback_.Run(result);
+ std::move(callback_).Run(result);
}
// Task class for SetAllCookies call.
@@ -771,8 +773,10 @@ class CookieMonster::SetAllCookiesTask : public CookieMonsterTask {
public:
SetAllCookiesTask(CookieMonster* cookie_monster,
const CookieList& list,
- const SetCookiesCallback& callback)
- : CookieMonsterTask(cookie_monster), list_(list), callback_(callback) {}
+ SetCookiesCallback callback)
+ : CookieMonsterTask(cookie_monster),
+ list_(list),
+ callback_(std::move(callback)) {}
// CookieMonsterTask:
void Run() override;
@@ -804,7 +808,7 @@ void CookieMonster::SetAllCookiesTask::Run() {
result = this->cookie_monster()->SetAllCookies(list_);
if (!callback_.is_null())
- callback_.Run(result);
+ std::move(callback_).Run(result);
}
// Task class for GetCookiesWithOptions call.
@@ -813,11 +817,11 @@ class CookieMonster::GetCookiesWithOptionsTask : public CookieMonsterTask {
GetCookiesWithOptionsTask(CookieMonster* cookie_monster,
const GURL& url,
const CookieOptions& options,
- const GetCookiesCallback& callback)
+ GetCookiesCallback callback)
: CookieMonsterTask(cookie_monster),
url_(url),
options_(options),
- callback_(callback) {}
+ callback_(std::move(callback)) {}
// CookieMonsterTask:
void Run() override;
@@ -837,7 +841,7 @@ void CookieMonster::GetCookiesWithOptionsTask::Run() {
std::string cookie =
this->cookie_monster()->GetCookiesWithOptions(url_, options_);
if (!callback_.is_null())
- callback_.Run(cookie);
+ std::move(callback_).Run(cookie);
}
// Task class for DeleteCookie call.
@@ -846,8 +850,8 @@ class CookieMonster::DeleteCookieTask : public DeleteTask<void> {
DeleteCookieTask(CookieMonster* cookie_monster,
const GURL& url,
const std::string& cookie_name,
- const base::Closure& callback)
- : DeleteTask<void>(cookie_monster, callback),
+ base::OnceClosure callback)
+ : DeleteTask<void>(cookie_monster, std::move(callback)),
url_(url),
cookie_name_(cookie_name) {}
@@ -872,8 +876,8 @@ void CookieMonster::DeleteCookieTask::RunDeleteTask() {
class CookieMonster::DeleteSessionCookiesTask : public DeleteTask<int> {
public:
DeleteSessionCookiesTask(CookieMonster* cookie_monster,
- const DeleteCallback& callback)
- : DeleteTask<int>(cookie_monster, callback) {}
+ DeleteCallback callback)
+ : DeleteTask<int>(cookie_monster, std::move(callback)) {}
// DeleteTask:
int RunDeleteTask() override;
@@ -891,36 +895,37 @@ int CookieMonster::DeleteSessionCookiesTask::RunDeleteTask() {
// Asynchronous CookieMonster API
-void CookieMonster::SetCookieWithDetailsAsync(
- const GURL& url,
- const std::string& name,
- const std::string& value,
- const std::string& domain,
- const std::string& path,
- Time creation_time,
- Time expiration_time,
- Time last_access_time,
- bool secure,
- bool http_only,
- CookieSameSite same_site,
- CookiePriority priority,
- const SetCookiesCallback& callback) {
+void CookieMonster::SetCookieWithDetailsAsync(const GURL& url,
+ const std::string& name,
+ const std::string& value,
+ const std::string& domain,
+ const std::string& path,
+ Time creation_time,
+ Time expiration_time,
+ Time last_access_time,
+ bool secure,
+ bool http_only,
+ CookieSameSite same_site,
+ CookiePriority priority,
+ SetCookiesCallback callback) {
scoped_refptr<SetCookieWithDetailsTask> task = new SetCookieWithDetailsTask(
this, url, name, value, domain, path, creation_time, expiration_time,
- last_access_time, secure, http_only, same_site, priority, callback);
+ last_access_time, secure, http_only, same_site, priority,
+ std::move(callback));
DoCookieTaskForURL(task, url);
}
-void CookieMonster::FlushStore(const base::Closure& callback) {
+void CookieMonster::FlushStore(base::OnceClosure callback) {
DCHECK(thread_checker_.CalledOnValidThread());
if (initialized_ && store_.get()) {
if (channel_id_service_) {
channel_id_service_->GetChannelIDStore()->Flush();
}
- store_->Flush(callback);
+ store_->Flush(std::move(callback));
} else if (!callback.is_null()) {
- base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, callback);
+ base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE,
+ std::move(callback));
}
}
@@ -932,9 +937,9 @@ void CookieMonster::SetForceKeepSessionState() {
}
void CookieMonster::SetAllCookiesAsync(const CookieList& list,
- const SetCookiesCallback& callback) {
+ SetCookiesCallback callback) {
scoped_refptr<SetAllCookiesTask> task =
- new SetAllCookiesTask(this, list, callback);
+ new SetAllCookiesTask(this, list, std::move(callback));
kinuko 2017/06/19 10:52:07 I wonder if (eventually) these all CookieMonsterTa
Randy Smith (Not in Mondays) 2017/06/21 17:54:53 Yes, I think that would be a good design. I'd als
DoCookieTask(task);
}
@@ -942,10 +947,11 @@ void CookieMonster::SetCanonicalCookieAsync(
std::unique_ptr<CanonicalCookie> cookie,
bool secure_source,
bool modify_http_only,
- const SetCookiesCallback& callback) {
+ SetCookiesCallback callback) {
DCHECK(cookie->IsCanonical());
- scoped_refptr<SetCanonicalCookieTask> task = new SetCanonicalCookieTask(
- this, std::move(cookie), secure_source, modify_http_only, callback);
+ scoped_refptr<SetCanonicalCookieTask> task =
+ new SetCanonicalCookieTask(this, std::move(cookie), secure_source,
+ modify_http_only, std::move(callback));
// TODO(rdsmith): Switch to DoCookieTaskForURL (or the equivalent).
// This is tricky because we don't have the scheme in this routine
@@ -954,23 +960,21 @@ void CookieMonster::SetCanonicalCookieAsync(
DoCookieTask(task);
}
-void CookieMonster::SetCookieWithOptionsAsync(
- const GURL& url,
- const std::string& cookie_line,
- const CookieOptions& options,
- const SetCookiesCallback& callback) {
- scoped_refptr<SetCookieWithOptionsTask> task =
- new SetCookieWithOptionsTask(this, url, cookie_line, options, callback);
+void CookieMonster::SetCookieWithOptionsAsync(const GURL& url,
+ const std::string& cookie_line,
+ const CookieOptions& options,
+ SetCookiesCallback callback) {
+ scoped_refptr<SetCookieWithOptionsTask> task = new SetCookieWithOptionsTask(
+ this, url, cookie_line, options, std::move(callback));
DoCookieTaskForURL(task, url);
}
-void CookieMonster::GetCookiesWithOptionsAsync(
- const GURL& url,
- const CookieOptions& options,
- const GetCookiesCallback& callback) {
+void CookieMonster::GetCookiesWithOptionsAsync(const GURL& url,
+ const CookieOptions& options,
+ GetCookiesCallback callback) {
scoped_refptr<GetCookiesWithOptionsTask> task =
- new GetCookiesWithOptionsTask(this, url, options, callback);
+ new GetCookiesWithOptionsTask(this, url, options, std::move(callback));
DoCookieTaskForURL(task, url);
}
@@ -978,42 +982,43 @@ void CookieMonster::GetCookiesWithOptionsAsync(
void CookieMonster::GetCookieListWithOptionsAsync(
const GURL& url,
const CookieOptions& options,
- const GetCookieListCallback& callback) {
+ GetCookieListCallback callback) {
scoped_refptr<GetCookieListWithOptionsTask> task =
- new GetCookieListWithOptionsTask(this, url, options, callback);
+ new GetCookieListWithOptionsTask(this, url, options, std::move(callback));
DoCookieTaskForURL(task, url);
}
-void CookieMonster::GetAllCookiesAsync(const GetCookieListCallback& callback) {
- scoped_refptr<GetAllCookiesTask> task = new GetAllCookiesTask(this, callback);
+void CookieMonster::GetAllCookiesAsync(GetCookieListCallback callback) {
+ scoped_refptr<GetAllCookiesTask> task =
+ new GetAllCookiesTask(this, std::move(callback));
DoCookieTask(task);
}
void CookieMonster::DeleteCookieAsync(const GURL& url,
const std::string& cookie_name,
- const base::Closure& callback) {
+ base::OnceClosure callback) {
scoped_refptr<DeleteCookieTask> task =
- new DeleteCookieTask(this, url, cookie_name, callback);
+ new DeleteCookieTask(this, url, cookie_name, std::move(callback));
DoCookieTaskForURL(task, url);
}
void CookieMonster::DeleteCanonicalCookieAsync(const CanonicalCookie& cookie,
- const DeleteCallback& callback) {
+ DeleteCallback callback) {
scoped_refptr<DeleteCanonicalCookieTask> task =
- new DeleteCanonicalCookieTask(this, cookie, callback);
+ new DeleteCanonicalCookieTask(this, cookie, std::move(callback));
DoCookieTask(task);
}
-void CookieMonster::DeleteAllCreatedBetweenAsync(
- const Time& delete_begin,
- const Time& delete_end,
- const DeleteCallback& callback) {
+void CookieMonster::DeleteAllCreatedBetweenAsync(const Time& delete_begin,
+ const Time& delete_end,
+ DeleteCallback callback) {
scoped_refptr<DeleteAllCreatedBetweenTask> task =
- new DeleteAllCreatedBetweenTask(this, delete_begin, delete_end, callback);
+ new DeleteAllCreatedBetweenTask(this, delete_begin, delete_end,
+ std::move(callback));
DoCookieTask(task);
}
@@ -1022,21 +1027,21 @@ void CookieMonster::DeleteAllCreatedBetweenWithPredicateAsync(
const Time& delete_begin,
const Time& delete_end,
const base::Callback<bool(const CanonicalCookie&)>& predicate,
- const DeleteCallback& callback) {
+ DeleteCallback callback) {
if (predicate.is_null()) {
- callback.Run(0);
+ std::move(callback).Run(0);
return;
}
scoped_refptr<DeleteAllCreatedBetweenWithPredicateTask> task =
new DeleteAllCreatedBetweenWithPredicateTask(
- this, delete_begin, delete_end, predicate, callback);
+ this, delete_begin, delete_end, predicate, std::move(callback));
DoCookieTask(task);
}
void CookieMonster::DeleteSessionCookiesAsync(
- const CookieStore::DeleteCallback& callback) {
+ CookieStore::DeleteCallback callback) {
scoped_refptr<DeleteSessionCookiesTask> task =
- new DeleteSessionCookiesTask(this, callback);
+ new DeleteSessionCookiesTask(this, std::move(callback));
DoCookieTask(task);
}
@@ -2473,9 +2478,9 @@ void CookieMonster::ComputeCookieDiff(CookieList* old_cookies,
FullDiffCookieSorter);
}
-void CookieMonster::RunCallback(const base::Closure& callback) {
+void CookieMonster::RunCallback(base::OnceClosure callback) {
DCHECK(thread_checker_.CalledOnValidThread());
- callback.Run();
+ std::move(callback).Run();
}
void CookieMonster::RunCookieChangedCallbacks(const CanonicalCookie& cookie,

Powered by Google App Engine
This is Rietveld 408576698