| 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..2715598464e354fe8aea001bfa6daf342065aa81 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,24 @@ 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);
|
| + BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
|
| + base::Bind(&ClearBrowserCookiesCallback::sendSuccess,
|
| + base::Passed(std::move(callback))));
|
| +}
|
| +
|
| +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 +458,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,
|
|
|