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

Unified Diff: content/browser/devtools/protocol/network_handler.cc

Issue 2785943005: DevTools: Fix Network.clearBrowserCookies (Closed)
Patch Set: undo protocol changes Created 3 years, 8 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 | « content/browser/devtools/protocol/network_handler.h ('k') | content/browser/devtools/protocol_config.json » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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,
« no previous file with comments | « content/browser/devtools/protocol/network_handler.h ('k') | content/browser/devtools/protocol_config.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698