text: // Copyright (c) 2012 Intel Corp
  // Copyright (c) 2012 The Chromium Authors
  // 
  // Permission is hereby granted, free of charge, to any person obtaining a copy 
  // of this software and associated documentation files (the "Software"), to deal
  //  in the Software without restriction, including without limitation the rights
  //  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell co
  // pies of the Software, and to permit persons to whom the Software is furnished
  //  to do so, subject to the following conditions:
  // 
  // The above copyright notice and this permission notice shall be included in al
  // l copies or substantial portions of the Software.
  // 
  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IM
  // PLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNES
  // S FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS
  //  OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WH
  // ETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  //  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  
  #ifndef CONTENT_NW_SRC_BROWSER_SHELL_DEVTOOLS_DELEGATE_H_
  #define CONTENT_NW_SRC_BROWSER_SHELL_DEVTOOLS_DELEGATE_H_
  
  #include <vector>
  
  #include "base/basictypes.h"
  #include "base/compiler_specific.h"
  #include "content/public/browser/devtools_agent_host.h"
  #include "content/public/browser/devtools_http_handler_delegate.h"
  #include "content/public/browser/render_view_host.h"
  #include "content/public/browser/web_contents.h"
  
  namespace base {
  class FilePath;
  }
  
  namespace content {
  
  class BrowserContext;
  class DevToolsHttpHandler;
  
  class ShellDevToolsDelegate : public DevToolsHttpHandlerDelegate {
   public:
    ShellDevToolsDelegate(BrowserContext* browser_context, int port);
    virtual ~ShellDevToolsDelegate();
  
    // Stops http server.
    void Stop();
  
    // DevToolsHttpProtocolHandler::Delegate overrides.
    virtual std::string GetDiscoveryPageHTML() override;
    virtual bool BundlesFrontendResources() override;
    virtual base::FilePath GetDebugFrontendDir() override;
    virtual std::string GetPageThumbnailData(const GURL& url) override;
    virtual scoped_ptr<DevToolsTarget> CreateNewTarget(const GURL& url) override;
    virtual void EnumerateTargets(TargetCallback callback) override;
    virtual scoped_ptr<net::StreamListenSocket> CreateSocketForTethering(
        net::StreamListenSocket::Delegate* delegate,
        std::string* name) override;
  
    DevToolsHttpHandler* devtools_http_handler() {
      return devtools_http_handler_;
    }
  
   private:
    BrowserContext* browser_context_;
    DevToolsHttpHandler* devtools_http_handler_;
  
    DISALLOW_COPY_AND_ASSIGN(ShellDevToolsDelegate);
  };
  
  }  // namespace content
  
  #endif  // CONTENT_NW_SRC_BROWSER_SHELL_DEVTOOLS_DELEGATE_H_
  