1// Copyright (c) 2012 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_HTTP_HANDLER_DELEGATE_H_
6#define CONTENT_PUBLIC_BROWSER_DEVTOOLS_HTTP_HANDLER_DELEGATE_H_
7
8#include <string>
9#include <vector>
10
11#include "base/files/file_path.h"
12#include "base/memory/scoped_ptr.h"
13#include "net/socket/stream_listen_socket.h"
14
15namespace content {
16
17class DevToolsTarget;
18
19class DevToolsHttpHandlerDelegate {
20 public:
21  virtual ~DevToolsHttpHandlerDelegate() {}
22
23  // Should return discovery page HTML that should list available tabs
24  // and provide attach links.
25  virtual std::string GetDiscoveryPageHTML() = 0;
26
27  // Returns true if and only if frontend resources are bundled.
28  virtual bool BundlesFrontendResources() = 0;
29
30  // Returns path to the front-end files on the local filesystem for debugging.
31  virtual base::FilePath GetDebugFrontendDir() = 0;
32
33  // Creates named socket for reversed tethering implementation (used with
34  // remote debugging, primarily for mobile).
35  virtual scoped_ptr<net::StreamListenSocket> CreateSocketForTethering(
36      net::StreamListenSocket::Delegate* delegate,
37      std::string* name) = 0;
38};
39
40}  // namespace content
41
42#endif  // CONTENT_PUBLIC_BROWSER_DEVTOOLS_HTTP_HANDLER_DELEGATE_H_
43