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

Unified Diff: content/browser/devtools/renderer_overrides_handler.cc

Issue 182993003: Add the ability for DevTools to wrap network transactions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed comments Created 6 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
Index: content/browser/devtools/renderer_overrides_handler.cc
diff --git a/content/browser/devtools/renderer_overrides_handler.cc b/content/browser/devtools/renderer_overrides_handler.cc
index 4951557ef17d5a78eb212e8f0ee9fdf4ab26a458..82e7cb06997d2aa908789ca235c682e27086124d 100644
--- a/content/browser/devtools/renderer_overrides_handler.cc
+++ b/content/browser/devtools/renderer_overrides_handler.cc
@@ -23,6 +23,7 @@
#include "content/browser/renderer_host/render_view_host_impl.h"
#include "content/common/view_messages.h"
#include "content/port/browser/render_widget_host_view_port.h"
+#include "content/public/browser/browser_context.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/content_browser_client.h"
#include "content/public/browser/devtools_agent_host.h"
@@ -32,6 +33,7 @@
#include "content/public/browser/render_process_host.h"
#include "content/public/browser/render_view_host.h"
#include "content/public/browser/render_widget_host_view.h"
+#include "content/public/browser/resource_context.h"
#include "content/public/browser/storage_partition.h"
#include "content/public/browser/web_contents.h"
#include "content/public/browser/web_contents_delegate.h"
@@ -103,6 +105,11 @@ RendererOverridesHandler::RendererOverridesHandler(DevToolsAgentHost* agent)
&RendererOverridesHandler::ClearBrowserCookies,
base::Unretained(this)));
RegisterCommandHandler(
+ devtools::Network::emulateNetworkConditions::kName,
+ base::Bind(
+ &RendererOverridesHandler::EmulateNetworkConditions,
+ base::Unretained(this)));
+ RegisterCommandHandler(
devtools::Page::disable::kName,
base::Bind(
&RendererOverridesHandler::PageDisable, base::Unretained(this)));
@@ -172,6 +179,7 @@ RendererOverridesHandler::~RendererOverridesHandler() {}
void RendererOverridesHandler::OnClientDetached() {
screencast_command_ = NULL;
+ UpdateNetworkState(false);
}
void RendererOverridesHandler::OnSwapCompositorFrame(
@@ -272,6 +280,15 @@ base::DictionaryValue* RendererOverridesHandler::CreateScreenshotResponse(
return response;
}
+void RendererOverridesHandler::UpdateNetworkState(bool offline) {
+ RenderViewHost* host = agent_->GetRenderViewHost();
+ if (!host)
+ return;
+ ResourceContext* context = host->GetSiteInstance()->GetProcess()->
+ GetBrowserContext()->GetResourceContext();
+ context->SetNetworkState(agent_->GetId(), offline);
+}
+
// DOM agent handlers --------------------------------------------------------
scoped_refptr<DevToolsProtocol::Response>
@@ -314,6 +331,20 @@ RendererOverridesHandler::ClearBrowserCookies(
return command->SuccessResponse(NULL);
}
+scoped_refptr<DevToolsProtocol::Response>
+RendererOverridesHandler::EmulateNetworkConditions(
+ scoped_refptr<DevToolsProtocol::Command> command) {
+ base::DictionaryValue* params = command->params();
+ bool offline = false;
+ const char* offline_param =
+ devtools::Network::emulateNetworkConditions::kParamOffline;
+ if (!params || !params->GetBoolean(offline_param, &offline))
+ return command->InvalidParamResponse(offline_param);
+
+ UpdateNetworkState(offline);
+ return command->SuccessResponse(NULL);
+}
+
// Page agent handlers -------------------------------------------------------

Powered by Google App Engine
This is Rietveld 408576698