#ifndef COMPONENTS_PERFORMANCE_MANAGER_TEST_SUPPORT_GRAPH_TEST_HARNESS_H_
#define COMPONENTS_PERFORMANCE_MANAGER_TEST_SUPPORT_GRAPH_TEST_HARNESS_H_
#include <stdint.h>
#include <memory>
#include <string>
#include <utility>
#include "base/check_op.h"
#include "base/memory/raw_ptr.h"
#include "base/memory/weak_ptr.h"
#include "base/test/task_environment.h"
#include "components/performance_manager/embedder/graph_features.h"
#include "components/performance_manager/graph/frame_node_impl.h"
#include "components/performance_manager/graph/graph_impl.h"
#include "components/performance_manager/graph/node_base.h"
#include "components/performance_manager/graph/page_node_impl.h"
#include "components/performance_manager/graph/process_node_impl.h"
#include "components/performance_manager/graph/system_node_impl.h"
#include "components/performance_manager/graph/worker_node_impl.h"
#include "components/performance_manager/public/browser_child_process_host_id.h"
#include "components/performance_manager/public/browser_child_process_host_proxy.h"
#include "components/performance_manager/public/render_process_host_id.h"
#include "components/performance_manager/public/render_process_host_proxy.h"
#include "content/public/browser/browsing_instance_id.h"
#include "content/public/test/browser_task_environment.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/blink/public/common/tokens/tokens.h"
#include "url/origin.h"
namespace content {
class WebContents;
}
namespace performance_manager {
int NextTestFrameRoutingId();
RenderProcessHostId NextTestRenderProcessHostId();
BrowserChildProcessHostId NextTestBrowserChildProcessHostId();
template <class NodeClass>
class TestNodeWrapper { … };
template <class NodeClass>
struct TestNodeWrapper<NodeClass>::Factory { … };
template <>
struct TestNodeWrapper<FrameNodeImpl>::Factory { … };
template <>
struct TestNodeWrapper<ProcessNodeImpl>::Factory { … };
template <>
struct TestNodeWrapper<PageNodeImpl>::Factory { … };
template <>
struct TestNodeWrapper<WorkerNodeImpl>::Factory { … };
template <typename NodeClass>
template <typename... Args>
TestNodeWrapper<NodeClass> TestNodeWrapper<NodeClass>::Create(GraphImpl* graph,
Args&&... args) { … }
template <>
class TestNodeWrapper<SystemNodeImpl> { … };
class TestGraphImpl : public GraphImpl { … };
class GraphTestHarness : public ::testing::Test { … };
}
#endif