Home | History | Annotate | Download | only in browser
      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 CONTENT_PUBLIC_BROWSER_DEVTOOLS_MANAGER_DELEGATE_H_
      6 #define CONTENT_PUBLIC_BROWSER_DEVTOOLS_MANAGER_DELEGATE_H_
      7 
      8 #include <string>
      9 #include <vector>
     10 
     11 #include "base/callback.h"
     12 
     13 namespace base {
     14 class DictionaryValue;
     15 }
     16 
     17 class GURL;
     18 
     19 namespace content {
     20 
     21 class BrowserContext;
     22 class DevToolsAgentHost;
     23 class DevToolsTarget;
     24 
     25 class DevToolsManagerDelegate {
     26  public:
     27   virtual ~DevToolsManagerDelegate() {}
     28 
     29   // Opens the inspector for |agent_host|.
     30   virtual void Inspect(BrowserContext* browser_context,
     31                        DevToolsAgentHost* agent_host) = 0;
     32 
     33   virtual void DevToolsAgentStateChanged(DevToolsAgentHost* agent_host,
     34                                          bool attached) = 0;
     35 
     36   // Result ownership is passed to the caller.
     37   virtual base::DictionaryValue* HandleCommand(
     38       DevToolsAgentHost* agent_host,
     39       base::DictionaryValue* command) = 0;
     40 
     41   // Creates new inspectable target.
     42   virtual scoped_ptr<DevToolsTarget> CreateNewTarget(const GURL& url) = 0;
     43 
     44   typedef std::vector<DevToolsTarget*> TargetList;
     45   typedef base::Callback<void(const TargetList&)> TargetCallback;
     46 
     47   // Requests the list of all inspectable targets.
     48   // The caller gets the ownership of the returned targets.
     49   virtual void EnumerateTargets(TargetCallback callback) = 0;
     50 
     51   // Get a thumbnail for a given page. Returns non-empty string iff we have the
     52   // thumbnail.
     53   virtual std::string GetPageThumbnailData(const GURL& url) = 0;
     54 };
     55 
     56 }  // namespace content
     57 
     58 #endif  // CONTENT_PUBLIC_BROWSER_DEVTOOLS_MANAGER_DELEGATE_H_
     59