Index: chrome/browser/devtools/chrome_devtools_manager_delegate.cc |
diff --git a/chrome/browser/devtools/chrome_devtools_manager_delegate.cc b/chrome/browser/devtools/chrome_devtools_manager_delegate.cc |
index 898f50a68b5d852843fbb3a856e9d7e3a5d845b1..31089eac346e7d468707b05a6dd420e7cc81ff7d 100644 |
--- a/chrome/browser/devtools/chrome_devtools_manager_delegate.cc |
+++ b/chrome/browser/devtools/chrome_devtools_manager_delegate.cc |
@@ -81,16 +81,39 @@ ChromeDevToolsManagerDelegate::EmulateNetworkConditions( |
content::DevToolsAgentHost* agent_host, |
DevToolsProtocol::Command* command) { |
base::DictionaryValue* params = command->params(); |
+ |
+ std::vector<std::string> domains; |
+ base::ListValue* domain_list = NULL; |
+ const char* domains_param = |
+ chrome::devtools::Network::emulateNetworkConditions::kParamDomains; |
+ if (!params || !params->GetList(domains_param, &domain_list)) |
+ return command->InvalidParamResponse(domains_param); |
+ size_t size = domain_list->GetSize(); |
+ for (size_t i = 0; i < size; ++i) { |
+ std::string domain; |
+ if (!domain_list->GetString(i, &domain)) |
+ return command->InvalidParamResponse(domains_param); |
+ domains.push_back(domain); |
+ } |
+ |
bool offline = false; |
const char* offline_param = |
chrome::devtools::Network::emulateNetworkConditions::kParamOffline; |
- if (!params || !params->GetBoolean(offline_param, &offline)) |
+ if (!params->GetBoolean(offline_param, &offline)) |
return command->InvalidParamResponse(offline_param); |
+ double maximal_throughput = 0.0; |
+ const char* maximal_throughput_param = |
+chrome::devtools::Network::emulateNetworkConditions::kParamMaximalThroughput; |
+ if (!params->GetDouble(maximal_throughput_param, &maximal_throughput)) |
+ return command->InvalidParamResponse(maximal_throughput_param); |
+ if (maximal_throughput < 0.0) |
+ maximal_throughput = 0.0; |
+ |
EnsureDevtoolsCallbackRegistered(); |
scoped_refptr<DevToolsNetworkConditions> conditions; |
- if (offline) |
- conditions = new DevToolsNetworkConditions(std::vector<std::string>()); |
+ if (offline || maximal_throughput) |
+ conditions = new DevToolsNetworkConditions(domains, maximal_throughput); |
UpdateNetworkState(agent_host, conditions); |
return command->SuccessResponse(NULL); |
} |