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

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

Issue 2554293002: devtools: Make it possible to retrieve all cookies (Closed)
Patch Set: Update front-end Created 4 years 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: 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 648d5a7ae82dfa284db26709aa8b9810a3454ac4..1f33abf225b3841ccb631a385d72ea304034e2a8 100644
--- a/content/browser/devtools/protocol/network_handler.cc
+++ b/content/browser/devtools/protocol/network_handler.cc
@@ -85,6 +85,26 @@ void GetCookiesForURLOnUI(
callback));
}
+void GetCookiesOnIO(ResourceContext* resource_context,
+ net::URLRequestContextGetter* context_getter,
+ const CookieListCallback& callback) {
+ DCHECK_CURRENTLY_ON(BrowserThread::IO);
+ net::URLRequestContext* request_context =
+ context_getter->GetURLRequestContext();
+ request_context->cookie_store()->GetAllCookiesAsync(
+ base::Bind(&GotCookiesForURLOnIO, callback));
+}
+
+void GetCookiesOnUI(ResourceContext* resource_context,
+ net::URLRequestContextGetter* context_getter,
+ const CookieListCallback& callback) {
+ DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ BrowserThread::PostTask(
+ BrowserThread::IO, FROM_HERE,
+ base::Bind(&GetCookiesOnIO, base::Unretained(resource_context),
+ base::Unretained(context_getter), callback));
+}
+
void DeletedCookieOnIO(const base::Closure& callback) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
BrowserThread::PostTask(
@@ -192,14 +212,25 @@ void SetCookieOnUI(
class GetCookiesCommand {
public:
- explicit GetCookiesCommand(
- RenderFrameHostImpl* frame_host,
- const CookieListCallback& callback)
- : callback_(callback),
- request_count_(0) {
+ GetCookiesCommand(RenderFrameHostImpl* frame_host,
+ bool global,
+ const CookieListCallback& callback)
+ : callback_(callback), request_count_(0) {
CookieListCallback got_cookies_callback = base::Bind(
&GetCookiesCommand::GotCookiesForURL, base::Unretained(this));
+ if (global) {
+ request_count_ = 1;
+ GetCookiesOnUI(frame_host->GetSiteInstance()
+ ->GetBrowserContext()
+ ->GetResourceContext(),
+ frame_host->GetProcess()
+ ->GetStoragePartition()
+ ->GetURLRequestContext(),
+ got_cookies_callback);
+ return;
+ }
+
std::queue<FrameTreeNode*> queue;
queue.push(frame_host->frame_tree_node());
while (!queue.empty()) {
@@ -293,14 +324,13 @@ Response NetworkHandler::ClearBrowserCookies() {
return Response::OK();
}
-Response NetworkHandler::GetCookies(DevToolsCommandId command_id) {
+Response NetworkHandler::GetCookies(DevToolsCommandId command_id,
+ const bool* global) {
if (!host_)
return Response::InternalError("Could not connect to view");
- new GetCookiesCommand(
- host_,
- base::Bind(&NetworkHandler::SendGetCookiesResponse,
- weak_factory_.GetWeakPtr(),
- command_id));
+ new GetCookiesCommand(host_, global ? *global : false,
+ base::Bind(&NetworkHandler::SendGetCookiesResponse,
+ weak_factory_.GetWeakPtr(), command_id));
return Response::OK();
}

Powered by Google App Engine
This is Rietveld 408576698