// Copyright 2023 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef COMPONENTS_PERFORMANCE_MANAGER_TEST_SUPPORT_TEST_BROWSER_CHILD_PROCESS_H_ #define COMPONENTS_PERFORMANCE_MANAGER_TEST_SUPPORT_TEST_BROWSER_CHILD_PROCESS_H_ #include <memory> #include "base/process/process.h" #include "components/performance_manager/public/browser_child_process_host_id.h" #include "components/performance_manager/public/browser_child_process_host_proxy.h" #include "content/public/browser/browser_child_process_host.h" #include "content/public/browser/browser_child_process_host_delegate.h" namespace performance_manager { // A wrapper that owns a BrowserChildProcessHost and acts as a no-op // BrowserChildProcessHostDelegate. // // In production, a process and associated ProcessNode is created for // this by calling host()->Launch(), but in unit tests this has unsatisfied // dependencies so a ProcessNode can be created by calling // // PerformanceManagerRegistryImpl::GetInstance() // ->CreateBrowserChildProcessNodeForTesting(host()); class TestBrowserChildProcess final : public content::BrowserChildProcessHostDelegate { … }; // Helper function for tests to delete the browser process node, which is // created by default in BrowserChildProcessWatcher::Initialize(). Must not be // called again if the node was already deleted. void DeleteBrowserProcessNodeForTesting(); } // namespace performance_manager #endif // COMPONENTS_PERFORMANCE_MANAGER_TEST_SUPPORT_TEST_BROWSER_CHILD_PROCESS_H_