Home | History | Annotate | Download | only in devtools
      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 
     13 namespace content {
     14 class DevToolsAgentHost;
     15 }
     16 
     17 class DevToolsNetworkConditions;
     18 class Profile;
     19 
     20 class 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