1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CHROME_BROWSER_DEVTOOLS_DEVTOOLS_NETWORK_PROTOCOL_HANDLER_H_ 6#define CHROME_BROWSER_DEVTOOLS_DEVTOOLS_NETWORK_PROTOCOL_HANDLER_H_ 7 8#include "base/compiler_specific.h" 9#include "base/macros.h" 10#include "base/memory/scoped_ptr.h" 11#include "chrome/browser/devtools/devtools_protocol.h" 12 13namespace content { 14class DevToolsAgentHost; 15} 16 17class DevToolsNetworkConditions; 18class Profile; 19 20class DevToolsNetworkProtocolHandler { 21 public: 22 DevToolsNetworkProtocolHandler(); 23 ~DevToolsNetworkProtocolHandler(); 24 25 void DevToolsAgentStateChanged(content::DevToolsAgentHost* agent_host, 26 bool attached); 27 base::DictionaryValue* HandleCommand( 28 content::DevToolsAgentHost* agent_host, 29 base::DictionaryValue* command_dict); 30 31 private: 32 Profile* GetProfile(content::DevToolsAgentHost* agent_host); 33 34 scoped_ptr<DevToolsProtocol::Response> CanEmulateNetworkConditions( 35 content::DevToolsAgentHost* agent_host, 36 DevToolsProtocol::Command* command); 37 38 scoped_ptr<DevToolsProtocol::Response> EmulateNetworkConditions( 39 content::DevToolsAgentHost* agent_host, 40 DevToolsProtocol::Command* command); 41 42 void UpdateNetworkState( 43 content::DevToolsAgentHost* agent_host, 44 scoped_ptr<DevToolsNetworkConditions> conditions); 45 46 DISALLOW_COPY_AND_ASSIGN(DevToolsNetworkProtocolHandler); 47}; 48 49#endif // CHROME_BROWSER_DEVTOOLS_DEVTOOLS_NETWORK_PROTOCOL_HANDLER_H_ 50