chromium/chromecast/browser/devtools/cast_ui_devtools.h

// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CHROMECAST_BROWSER_DEVTOOLS_CAST_UI_DEVTOOLS_H_
#define CHROMECAST_BROWSER_DEVTOOLS_CAST_UI_DEVTOOLS_H_

#include <memory>

namespace network {
namespace mojom {
class NetworkContext;
}  // namespace mojom
}  // namespace network

namespace ui_devtools {
class UiDevToolsServer;
}  // namespace ui_devtools

namespace chromecast {
namespace shell {

// Container to instantiate a separate devtools server for viewing the hierarchy
// of the Aura UI tree. Instantiated only when USE_AURA is true and
// --enable-ui-devtools is passed.
class CastUIDevTools {
 public:
  explicit CastUIDevTools(network::mojom::NetworkContext* network_context);

  CastUIDevTools(const CastUIDevTools&) = delete;
  CastUIDevTools& operator=(const CastUIDevTools&) = delete;

  ~CastUIDevTools();

 private:
  std::unique_ptr<ui_devtools::UiDevToolsServer> CreateServer(
      network::mojom::NetworkContext* network_context) const;

  std::unique_ptr<ui_devtools::UiDevToolsServer> devtools_server_;
};

}  // namespace shell
}  // namespace chromecast

#endif  // CHROMECAST_BROWSER_DEVTOOLS_CAST_UI_DEVTOOLS_H_