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

Side by Side Diff: content/browser/devtools/render_frame_devtools_agent_host.cc

Issue 2739323003: DevTools protocol interception, blocking & modification of requests (Closed)
Patch Set: Add missing expects plus tweak test output of Network.interceptedRedirect for clarity Created 3 years, 9 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/devtools/render_frame_devtools_agent_host.h" 5 #include "content/browser/devtools/render_frame_devtools_agent_host.h"
6 6
7 #include <tuple> 7 #include <tuple>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/guid.h" 10 #include "base/guid.h"
(...skipping 407 matching lines...) Expand 10 before | Expand all | Expand 10 after
418 bool RenderFrameDevToolsAgentHost::IsNetworkHandlerEnabled( 418 bool RenderFrameDevToolsAgentHost::IsNetworkHandlerEnabled(
419 FrameTreeNode* frame_tree_node) { 419 FrameTreeNode* frame_tree_node) {
420 RenderFrameDevToolsAgentHost* agent_host = GetAgentHostFor(frame_tree_node); 420 RenderFrameDevToolsAgentHost* agent_host = GetAgentHostFor(frame_tree_node);
421 if (!agent_host || !agent_host->session()) 421 if (!agent_host || !agent_host->session())
422 return false; 422 return false;
423 return protocol::NetworkHandler::FromSession(agent_host->session()) 423 return protocol::NetworkHandler::FromSession(agent_host->session())
424 ->enabled(); 424 ->enabled();
425 } 425 }
426 426
427 // static 427 // static
428 std::string RenderFrameDevToolsAgentHost::UserAgentOverride( 428 void RenderFrameDevToolsAgentHost::ModifyRequestHeadersIfNeeded(
429 FrameTreeNode* frame_tree_node) { 429 FrameTreeNode* frame_tree_node,
430 net::HttpRequestHeaders* headers) {
430 RenderFrameDevToolsAgentHost* agent_host = GetAgentHostFor(frame_tree_node); 431 RenderFrameDevToolsAgentHost* agent_host = GetAgentHostFor(frame_tree_node);
431 if (!agent_host || !agent_host->session()) 432 if (!agent_host || !agent_host->session())
432 return std::string(); 433 return;
433 return protocol::NetworkHandler::FromSession(agent_host->session()) 434 protocol::NetworkHandler* network_handler =
434 ->UserAgentOverride(); 435 protocol::NetworkHandler::FromSession(agent_host->session());
436 std::string user_agent_override = network_handler->UserAgentOverride();
437 if (!user_agent_override.empty()) {
438 headers->SetHeader(net::HttpRequestHeaders::kUserAgent,
439 user_agent_override);
440 }
441 if (network_handler->interception_enabled()) {
442 // Needed by DevToolsURLRequestInterceptor and will be removed by
443 // DevToolsNetworkTransaction::Start before the request is actually sent.
444 headers->SetHeader("X-DevTools-Emulate-Network-Conditions-Client-Id",
445 agent_host->GetId());
446 }
435 } 447 }
436 448
437 // static 449 // static
438 void RenderFrameDevToolsAgentHost::WebContentsCreated( 450 void RenderFrameDevToolsAgentHost::WebContentsCreated(
439 WebContents* web_contents) { 451 WebContents* web_contents) {
440 if (ShouldForceCreation()) { 452 if (ShouldForceCreation()) {
441 // Force agent host. 453 // Force agent host.
442 DevToolsAgentHost::GetOrCreateFor(web_contents); 454 DevToolsAgentHost::GetOrCreateFor(web_contents);
443 } 455 }
444 } 456 }
(...skipping 733 matching lines...) Expand 10 before | Expand all | Expand 10 after
1178 RenderFrameHost* host) { 1190 RenderFrameHost* host) {
1179 return (current_ && current_->host() == host) || 1191 return (current_ && current_->host() == host) ||
1180 (pending_ && pending_->host() == host); 1192 (pending_ && pending_->host() == host);
1181 } 1193 }
1182 1194
1183 bool RenderFrameDevToolsAgentHost::IsChildFrame() { 1195 bool RenderFrameDevToolsAgentHost::IsChildFrame() {
1184 return current_ && current_->host()->GetParent(); 1196 return current_ && current_->host()->GetParent();
1185 } 1197 }
1186 1198
1187 } // namespace content 1199 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698