16e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
26e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
36e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)// found in the LICENSE file.
46e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
56e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#ifndef CHROMECAST_SHELL_BROWSER_DEVTOOLS_CAST_DEV_TOOLS_DELEGATE_H_
66e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#define CHROMECAST_SHELL_BROWSER_DEVTOOLS_CAST_DEV_TOOLS_DELEGATE_H_
76e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
86e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#include "content/public/browser/devtools_http_handler_delegate.h"
91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "content/public/browser/devtools_manager_delegate.h"
106e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#include "net/socket/stream_listen_socket.h"
116e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
126e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)namespace base {
136e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)class FilePath;
146e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)}
156e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccinamespace content {
171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass BrowserContext;
181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}
191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
206e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)namespace chromecast {
216e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)namespace shell {
226e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
236e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)class CastDevToolsDelegate : public content::DevToolsHttpHandlerDelegate {
246e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) public:
256e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  CastDevToolsDelegate();
266e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  virtual ~CastDevToolsDelegate();
276e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
286e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  // DevToolsHttpHandlerDelegate implementation.
296e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  virtual std::string GetDiscoveryPageHTML() OVERRIDE;
306e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  virtual bool BundlesFrontendResources() OVERRIDE;
316e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  virtual base::FilePath GetDebugFrontendDir() OVERRIDE;
326e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  virtual scoped_ptr<net::StreamListenSocket> CreateSocketForTethering(
336e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)      net::StreamListenSocket::Delegate* delegate,
346e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)      std::string* name) OVERRIDE;
356e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
366e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) private:
376e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(CastDevToolsDelegate);
386e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)};
396e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass CastDevToolsManagerDelegate : public content::DevToolsManagerDelegate {
411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci public:
421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  CastDevToolsManagerDelegate();
431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  virtual ~CastDevToolsManagerDelegate();
441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  // DevToolsManagerDelegate implementation.
461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  virtual void Inspect(
471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      content::BrowserContext* browser_context,
481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      content::DevToolsAgentHost* agent_host) OVERRIDE {}
491320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  virtual void DevToolsAgentStateChanged(
501320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      content::DevToolsAgentHost* agent_host,
511320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      bool attached) OVERRIDE {}
521320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  virtual base::DictionaryValue* HandleCommand(
531320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      content::DevToolsAgentHost* agent_host,
541320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      base::DictionaryValue* command) OVERRIDE;
551320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  virtual scoped_ptr<content::DevToolsTarget> CreateNewTarget(
561320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      const GURL& url) OVERRIDE;
571320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  virtual void EnumerateTargets(TargetCallback callback) OVERRIDE;
581320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  virtual std::string GetPageThumbnailData(const GURL& url) OVERRIDE;
591320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
601320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci private:
611320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  DISALLOW_COPY_AND_ASSIGN(CastDevToolsManagerDelegate);
621320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci};
631320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
646e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)}  // namespace shell
656e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)}  // namespace chromecast
666e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
676e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#endif  // CHROMECAST_SHELL_BROWSER_DEVTOOLS_CAST_DEV_TOOLS_DELEGATE_H_
68