| Index: net/cookies/cookie_monster.cc
|
| ===================================================================
|
| --- net/cookies/cookie_monster.cc (revision 194665)
|
| +++ net/cookies/cookie_monster.cc (working copy)
|
| @@ -765,6 +765,41 @@
|
| }
|
| }
|
|
|
| +// Task class for HasCookiesForETLDP1Task call.
|
| +class CookieMonster::HasCookiesForETLDP1Task
|
| + : public CookieMonster::CookieMonsterTask {
|
| + public:
|
| + HasCookiesForETLDP1Task(
|
| + CookieMonster* cookie_monster,
|
| + const std::string& etldp1,
|
| + const CookieMonster::HasCookiesForETLDP1Callback& callback)
|
| + : CookieMonsterTask(cookie_monster),
|
| + etldp1_(etldp1),
|
| + callback_(callback) {
|
| + }
|
| +
|
| + // CookieMonster::CookieMonsterTask:
|
| + virtual void Run() OVERRIDE;
|
| +
|
| + protected:
|
| + virtual ~HasCookiesForETLDP1Task() {}
|
| +
|
| + private:
|
| + std::string etldp1_;
|
| + CookieMonster::HasCookiesForETLDP1Callback callback_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(HasCookiesForETLDP1Task);
|
| +};
|
| +
|
| +void CookieMonster::HasCookiesForETLDP1Task::Run() {
|
| + bool result = this->cookie_monster()->HasCookiesForETLDP1(etldp1_);
|
| + if (!callback_.is_null()) {
|
| + this->InvokeCallback(
|
| + base::Bind(&CookieMonster::HasCookiesForETLDP1Callback::Run,
|
| + base::Unretained(&callback_), result));
|
| + }
|
| +}
|
| +
|
| // Asynchronous CookieMonster API
|
|
|
| void CookieMonster::SetCookieWithDetailsAsync(
|
| @@ -813,6 +848,15 @@
|
| DoCookieTaskForURL(task, url);
|
| }
|
|
|
| +void CookieMonster::HasCookiesForETLDP1Async(
|
| + const std::string& etldp1,
|
| + const HasCookiesForETLDP1Callback& callback) {
|
| + scoped_refptr<HasCookiesForETLDP1Task> task =
|
| + new HasCookiesForETLDP1Task(this, etldp1, callback);
|
| +
|
| + DoCookieTaskForURL(task, GURL("http://" + etldp1));
|
| +}
|
| +
|
| void CookieMonster::DeleteAllAsync(const DeleteCallback& callback) {
|
| scoped_refptr<DeleteAllTask> task =
|
| new DeleteAllTask(this, callback);
|
| @@ -1232,6 +1276,15 @@
|
| return num_deleted;
|
| }
|
|
|
| +bool CookieMonster::HasCookiesForETLDP1(const std::string& etldp1) {
|
| + base::AutoLock autolock(lock_);
|
| +
|
| + const std::string key(GetKey(etldp1));
|
| +
|
| + CookieMapItPair its = cookies_.equal_range(key);
|
| + return its.first != its.second;
|
| +}
|
| +
|
| CookieMonster* CookieMonster::GetCookieMonster() {
|
| return this;
|
| }
|
|
|