Commit 500beade authored by Iris Uy's avatar Iris Uy Committed by Commit Bot

Set network conditions in all available browser contexts instead of only the default.

Bug: 
Change-Id: I96727d1c6b4cd09303eba6ca88630d83405623e2
Reviewed-on: https://chromium-review.googlesource.com/722362
Commit-Queue: Iris Uy <irisu@chromium.org>
Reviewed-by: default avatarJianzhou Feng <jzfeng@chromium.org>
Reviewed-by: default avatarDavid Vallet <dvallet@chromium.org>
Cr-Commit-Position: refs/heads/master@{#509651}
parent ae3aae57
...@@ -21,7 +21,6 @@ ...@@ -21,7 +21,6 @@
#include "headless/grit/headless_lib_resources.h" #include "headless/grit/headless_lib_resources.h"
#include "headless/lib/browser/headless_browser_context_impl.h" #include "headless/lib/browser/headless_browser_context_impl.h"
#include "headless/lib/browser/headless_browser_impl.h" #include "headless/lib/browser/headless_browser_impl.h"
#include "headless/lib/browser/headless_network_conditions.h"
#include "headless/lib/browser/headless_web_contents_impl.h" #include "headless/lib/browser/headless_web_contents_impl.h"
#include "headless/public/devtools/domains/target.h" #include "headless/public/devtools/domains/target.h"
#include "printing/units.h" #include "printing/units.h"
...@@ -686,9 +685,10 @@ HeadlessDevToolsManagerDelegate::EmulateNetworkConditions( ...@@ -686,9 +685,10 @@ HeadlessDevToolsManagerDelegate::EmulateNetworkConditions(
int command_id, int command_id,
const base::DictionaryValue* params) { const base::DictionaryValue* params) {
// Associate NetworkConditions to context // Associate NetworkConditions to context
HeadlessBrowserContextImpl* browser_context = std::vector<HeadlessBrowserContext*> browser_contexts =
static_cast<HeadlessBrowserContextImpl*>( browser_->GetAllBrowserContexts();
browser_->GetDefaultBrowserContext()); if (browser_contexts.empty())
return CreateSuccessResponse(command_id, nullptr);
bool offline = false; bool offline = false;
double latency = 0, download_throughput = 0, upload_throughput = 0; double latency = 0, download_throughput = 0, upload_throughput = 0;
params->GetBoolean("offline", &offline); params->GetBoolean("offline", &offline);
...@@ -698,7 +698,7 @@ HeadlessDevToolsManagerDelegate::EmulateNetworkConditions( ...@@ -698,7 +698,7 @@ HeadlessDevToolsManagerDelegate::EmulateNetworkConditions(
HeadlessNetworkConditions conditions(HeadlessNetworkConditions( HeadlessNetworkConditions conditions(HeadlessNetworkConditions(
offline, std::max(latency, 0.0), std::max(download_throughput, 0.0), offline, std::max(latency, 0.0), std::max(download_throughput, 0.0),
std::max(upload_throughput, 0.0))); std::max(upload_throughput, 0.0)));
browser_context->SetNetworkConditions(conditions); SetNetworkConditions(browser_contexts, conditions);
return CreateSuccessResponse(command_id, nullptr); return CreateSuccessResponse(command_id, nullptr);
} }
...@@ -708,13 +708,26 @@ HeadlessDevToolsManagerDelegate::NetworkDisable( ...@@ -708,13 +708,26 @@ HeadlessDevToolsManagerDelegate::NetworkDisable(
int session_id, int session_id,
int command_id, int command_id,
const base::DictionaryValue* params) { const base::DictionaryValue* params) {
HeadlessBrowserContextImpl* browser_context = std::vector<HeadlessBrowserContext*> browser_contexts =
static_cast<HeadlessBrowserContextImpl*>( browser_->GetAllBrowserContexts();
browser_->GetDefaultBrowserContext()); if (browser_contexts.empty())
browser_context->SetNetworkConditions(HeadlessNetworkConditions()); return CreateSuccessResponse(command_id, nullptr);
SetNetworkConditions(browser_contexts, HeadlessNetworkConditions());
return CreateSuccessResponse(command_id, nullptr); return CreateSuccessResponse(command_id, nullptr);
} }
void HeadlessDevToolsManagerDelegate::SetNetworkConditions(
std::vector<HeadlessBrowserContext*> browser_contexts,
HeadlessNetworkConditions conditions) {
for (std::vector<HeadlessBrowserContext*>::iterator it =
browser_contexts.begin();
it != browser_contexts.end(); ++it) {
HeadlessBrowserContextImpl* context =
static_cast<HeadlessBrowserContextImpl*>(*it);
context->SetNetworkConditions(HeadlessNetworkConditions());
}
}
std::unique_ptr<base::DictionaryValue> std::unique_ptr<base::DictionaryValue>
HeadlessDevToolsManagerDelegate::EnableHeadlessExperimental( HeadlessDevToolsManagerDelegate::EnableHeadlessExperimental(
content::DevToolsAgentHost* agent_host, content::DevToolsAgentHost* agent_host,
......
...@@ -13,6 +13,8 @@ ...@@ -13,6 +13,8 @@
#include "base/memory/weak_ptr.h" #include "base/memory/weak_ptr.h"
#include "base/values.h" #include "base/values.h"
#include "content/public/browser/devtools_manager_delegate.h" #include "content/public/browser/devtools_manager_delegate.h"
#include "headless/lib/browser/headless_network_conditions.h"
#include "headless/public/headless_browser_context.h"
#include "printing/features/features.h" #include "printing/features/features.h"
#if BUILDFLAG(ENABLE_BASIC_PRINTING) #if BUILDFLAG(ENABLE_BASIC_PRINTING)
...@@ -116,6 +118,10 @@ class HeadlessDevToolsManagerDelegate ...@@ -116,6 +118,10 @@ class HeadlessDevToolsManagerDelegate
int command_id, int command_id,
const base::DictionaryValue* params); const base::DictionaryValue* params);
void SetNetworkConditions(
std::vector<HeadlessBrowserContext*> browser_contexts,
HeadlessNetworkConditions conditions);
void PrintToPDF(content::DevToolsAgentHost* agent_host, void PrintToPDF(content::DevToolsAgentHost* agent_host,
int session_id, int session_id,
int command_id, int command_id,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment