devtools_http_handler_delegate.h revision 2a99a7e74a7f215066514fe81d2bfa6639d9eddd
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
13class GURL;
14
15namespace content {
16
17class RenderViewHost;
18
19class DevToolsHttpHandlerDelegate {
20 public:
21  enum TargetType {
22    kTargetTypeTab = 0,
23    kTargetTypeOther,
24  };
25
26  virtual ~DevToolsHttpHandlerDelegate() {}
27
28  // Should return discovery page HTML that should list available tabs
29  // and provide attach links.
30  virtual std::string GetDiscoveryPageHTML() = 0;
31
32  // Returns true if and only if frontend resources are bundled.
33  virtual bool BundlesFrontendResources() = 0;
34
35  // Returns path to the front-end files on the local filesystem for debugging.
36  virtual base::FilePath GetDebugFrontendDir() = 0;
37
38  // Get a thumbnail for a given page. Returns non-empty string iff we have the
39  // thumbnail.
40  virtual std::string GetPageThumbnailData(const GURL& url) = 0;
41
42  // Creates new inspectable target and returns its render view host.
43  virtual RenderViewHost* CreateNewTarget() = 0;
44
45  // Returns the type of the target.
46  virtual TargetType GetTargetType(RenderViewHost*) = 0;
47
48  // Provides the delegate with an ability to supply a description for views.
49  virtual std::string GetViewDescription(content::RenderViewHost*) = 0;
50};
51
52}  // namespace content
53
54#endif  // CONTENT_PUBLIC_BROWSER_DEVTOOLS_HTTP_HANDLER_DELEGATE_H_
55