Home | History | Annotate | Download | only in browser
      1 // Copyright 2013 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_SHELL_BROWSER_SHELL_DEVTOOLS_DELEGATE_H_
      6 #define CONTENT_SHELL_BROWSER_SHELL_DEVTOOLS_DELEGATE_H_
      7 
      8 #include "base/basictypes.h"
      9 #include "base/compiler_specific.h"
     10 #include "content/public/browser/devtools_http_handler_delegate.h"
     11 #include "content/public/browser/devtools_manager_delegate.h"
     12 
     13 namespace content {
     14 
     15 class BrowserContext;
     16 class DevToolsHttpHandler;
     17 
     18 class ShellDevToolsDelegate : public DevToolsHttpHandlerDelegate {
     19  public:
     20   explicit ShellDevToolsDelegate(BrowserContext* browser_context);
     21   virtual ~ShellDevToolsDelegate();
     22 
     23   // Stops http server.
     24   void Stop();
     25 
     26   // DevToolsHttpHandlerDelegate implementation.
     27   virtual std::string GetDiscoveryPageHTML() OVERRIDE;
     28   virtual bool BundlesFrontendResources() OVERRIDE;
     29   virtual base::FilePath GetDebugFrontendDir() OVERRIDE;
     30   virtual scoped_ptr<net::StreamListenSocket> CreateSocketForTethering(
     31       net::StreamListenSocket::Delegate* delegate,
     32       std::string* name) OVERRIDE;
     33 
     34   DevToolsHttpHandler* devtools_http_handler() {
     35     return devtools_http_handler_;
     36   }
     37 
     38  private:
     39   BrowserContext* browser_context_;
     40   DevToolsHttpHandler* devtools_http_handler_;
     41 
     42   DISALLOW_COPY_AND_ASSIGN(ShellDevToolsDelegate);
     43 };
     44 
     45 class ShellDevToolsManagerDelegate : public DevToolsManagerDelegate {
     46  public:
     47   explicit ShellDevToolsManagerDelegate(BrowserContext* browser_context);
     48   virtual ~ShellDevToolsManagerDelegate();
     49 
     50   // DevToolsManagerDelegate implementation.
     51   virtual void Inspect(BrowserContext* browser_context,
     52                        DevToolsAgentHost* agent_host) OVERRIDE {}
     53   virtual void DevToolsAgentStateChanged(DevToolsAgentHost* agent_host,
     54                                          bool attached) OVERRIDE {}
     55   virtual base::DictionaryValue* HandleCommand(
     56       DevToolsAgentHost* agent_host,
     57       base::DictionaryValue* command) OVERRIDE;
     58   virtual scoped_ptr<DevToolsTarget> CreateNewTarget(const GURL& url) OVERRIDE;
     59   virtual void EnumerateTargets(TargetCallback callback) OVERRIDE;
     60   virtual std::string GetPageThumbnailData(const GURL& url) OVERRIDE;
     61 
     62  private:
     63   BrowserContext* browser_context_;
     64 
     65   DISALLOW_COPY_AND_ASSIGN(ShellDevToolsManagerDelegate);
     66 };
     67 
     68 }  // namespace content
     69 
     70 #endif  // CONTENT_SHELL_BROWSER_SHELL_DEVTOOLS_DELEGATE_H_
     71