chromium/content/browser/devtools/devtools_renderer_channel.h

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

#ifndef CONTENT_BROWSER_DEVTOOLS_DEVTOOLS_RENDERER_CHANNEL_H_
#define CONTENT_BROWSER_DEVTOOLS_DEVTOOLS_RENDERER_CHANNEL_H_

#include "base/containers/flat_set.h"
#include "base/functional/callback.h"
#include "base/functional/callback_helpers.h"
#include "base/memory/raw_ptr.h"
#include "base/memory/weak_ptr.h"
#include "mojo/public/cpp/bindings/associated_receiver.h"
#include "mojo/public/cpp/bindings/associated_remote.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "third_party/blink/public/mojom/devtools/devtools_agent.mojom.h"

namespace gfx {
class Point;
}

namespace content {

class DevToolsAgentHostImpl;
class DevToolsSession;
class RenderFrameHostImpl;
class WorkerOrWorkletDevToolsAgentHost;

// This class encapsulates a connection to blink::mojom::DevToolsAgent
// in the renderer (either RenderFrame or some kind of worker).
// When the renderer changes (e.g. worker restarts or a new RenderFrame
// is used for the frame), different DevToolsAgentHostImpl subclasses
// retrieve a new blink::mojom::DevToolsAgent pointer, and this channel
// starts using it for all existing and future sessions.
class DevToolsRendererChannel : public blink::mojom::DevToolsAgentHost {};

}  // namespace content

#endif  // CONTENT_BROWSER_DEVTOOLS_DEVTOOLS_RENDERER_CHANNEL_H_