Chromium Code Reviews| Index: content/browser/devtools/protocol/network_handler.cc |
| diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/browser/devtools/protocol/network_handler.cc |
| index 4e3f2746c56f08364e7a7b8f03a2a7bfb6654140..3668f080abbe676d0b2a7bf78de697dd8f930085 100644 |
| --- a/content/browser/devtools/protocol/network_handler.cc |
| +++ b/content/browser/devtools/protocol/network_handler.cc |
| @@ -48,6 +48,8 @@ using GetCookiesCallback = Network::Backend::GetCookiesCallback; |
| using GetAllCookiesCallback = Network::Backend::GetAllCookiesCallback; |
| using SetCookieCallback = Network::Backend::SetCookieCallback; |
| using DeleteCookieCallback = Network::Backend::DeleteCookieCallback; |
| +using ClearBrowserCookiesCallback = |
| + Network::Backend::ClearBrowserCookiesCallback; |
| net::URLRequestContext* GetRequestContextOnIO( |
| ResourceContext* resource_context, |
| @@ -183,6 +185,22 @@ class CookieRetriever : public base::RefCountedThreadSafe<CookieRetriever> { |
| friend class base::RefCountedThreadSafe<CookieRetriever>; |
| }; |
| +void ClearedCookiesOnIO(std::unique_ptr<ClearBrowserCookiesCallback> callback, |
| + int num_deleted) { |
| + DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| + callback->sendSuccess(num_deleted); |
|
pfeldman
2017/04/01 00:23:23
We should get back to UI!
phulce
2017/04/03 17:04:04
Like in an alert post-confirmation?
|
| +} |
| + |
| +void ClearCookiesOnIO(ResourceContext* resource_context, |
| + net::URLRequestContextGetter* context_getter, |
| + std::unique_ptr<ClearBrowserCookiesCallback> callback) { |
| + DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| + net::URLRequestContext* request_context = |
| + context_getter->GetURLRequestContext(); |
| + request_context->cookie_store()->DeleteAllAsync( |
| + base::Bind(&ClearedCookiesOnIO, base::Passed(std::move(callback)))); |
| +} |
| + |
| void DeletedCookieOnIO(std::unique_ptr<DeleteCookieCallback> callback) { |
| DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| BrowserThread::PostTask( |
| @@ -438,10 +456,23 @@ Response NetworkHandler::ClearBrowserCache() { |
| return Response::OK(); |
| } |
| -Response NetworkHandler::ClearBrowserCookies() { |
| - if (host_) |
| - GetContentClient()->browser()->ClearCookies(host_); |
| - return Response::OK(); |
| +void NetworkHandler::ClearBrowserCookies( |
| + std::unique_ptr<ClearBrowserCookiesCallback> callback) { |
| + if (!host_) { |
| + callback->sendFailure(Response::InternalError()); |
| + return; |
| + } |
| + |
| + BrowserThread::PostTask( |
| + BrowserThread::IO, FROM_HERE, |
| + base::Bind(&ClearCookiesOnIO, |
| + base::Unretained(host_->GetSiteInstance() |
| + ->GetBrowserContext() |
| + ->GetResourceContext()), |
| + base::Unretained(host_->GetProcess() |
| + ->GetStoragePartition() |
| + ->GetURLRequestContext()), |
| + base::Passed(std::move(callback)))); |
| } |
| void NetworkHandler::GetCookies(Maybe<Array<String>> protocol_urls, |