| // 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. | 
 |  | 
 | #include "components/viz/test/gpu_host_impl_test_api.h" | 
 |  | 
 | #include <algorithm> | 
 | #include <memory> | 
 | #include <set> | 
 | #include <string> | 
 | #include <utility> | 
 |  | 
 | #include "build/build_config.h" | 
 |  | 
 | namespace viz { | 
 |  | 
 | gpu::GPUInfo GpuHostImplTestApi::HookDelegateBase::GetGPUInfo() const { | 
 |   return original_delegate_->GetGPUInfo(); | 
 | } | 
 |  | 
 | gpu::GpuFeatureInfo GpuHostImplTestApi::HookDelegateBase::GetGpuFeatureInfo() | 
 |     const { | 
 |   return original_delegate_->GetGpuFeatureInfo(); | 
 | } | 
 |  | 
 | void GpuHostImplTestApi::HookDelegateBase::DidInitialize( | 
 |     const gpu::GPUInfo& gpu_info, | 
 |     const gpu::GpuFeatureInfo& gpu_feature_info, | 
 |     const std::optional<gpu::GPUInfo>& gpu_info_for_hardware_gpu, | 
 |     const std::optional<gpu::GpuFeatureInfo>& gpu_feature_info_for_hardware_gpu, | 
 |     const gfx::GpuExtraInfo& gpu_extra_info) { | 
 |   original_delegate_->DidInitialize( | 
 |       gpu_info, gpu_feature_info, gpu_info_for_hardware_gpu, | 
 |       gpu_feature_info_for_hardware_gpu, gpu_extra_info); | 
 | } | 
 |  | 
 | void GpuHostImplTestApi::HookDelegateBase::DidFailInitialize() { | 
 |   original_delegate_->DidFailInitialize(); | 
 | } | 
 |  | 
 | void GpuHostImplTestApi::HookDelegateBase::DidCreateContextSuccessfully() { | 
 |   original_delegate_->DidCreateContextSuccessfully(); | 
 | } | 
 |  | 
 | void GpuHostImplTestApi::HookDelegateBase::MaybeShutdownGpuProcess() { | 
 |   original_delegate_->MaybeShutdownGpuProcess(); | 
 | } | 
 |  | 
 | void GpuHostImplTestApi::HookDelegateBase::DidUpdateGPUInfo( | 
 |     const gpu::GPUInfo& gpu_info) { | 
 |   original_delegate_->DidUpdateGPUInfo(gpu_info); | 
 | } | 
 |  | 
 | #if BUILDFLAG(IS_WIN) | 
 | void GpuHostImplTestApi::HookDelegateBase::DidUpdateOverlayInfo( | 
 |     const gpu::OverlayInfo& overlay_info) { | 
 |   original_delegate_->DidUpdateOverlayInfo(overlay_info); | 
 | } | 
 |  | 
 | void GpuHostImplTestApi::HookDelegateBase::DidUpdateDXGIInfo( | 
 |     gfx::mojom::DXGIInfoPtr dxgi_info) { | 
 |   original_delegate_->DidUpdateDXGIInfo(std::move(dxgi_info)); | 
 | } | 
 | #endif | 
 |  | 
 | void GpuHostImplTestApi::HookDelegateBase::BlockDomainsFrom3DAPIs( | 
 |     const std::set<GURL>& urls, | 
 |     gpu::DomainGuilt guilt) { | 
 |   original_delegate_->BlockDomainsFrom3DAPIs(urls, guilt); | 
 | } | 
 |  | 
 | std::string GpuHostImplTestApi::HookDelegateBase::GetIsolationKey( | 
 |     int32_t client_id, | 
 |     const blink::WebGPUExecutionContextToken& token) { | 
 |   return original_delegate_->GetIsolationKey(client_id, token); | 
 | } | 
 |  | 
 | void GpuHostImplTestApi::HookDelegateBase::DisableGpuCompositing() { | 
 |   original_delegate_->DisableGpuCompositing(); | 
 | } | 
 |  | 
 | bool GpuHostImplTestApi::HookDelegateBase::GpuAccessAllowed() const { | 
 |   return original_delegate_->GpuAccessAllowed(); | 
 | } | 
 |  | 
 | gpu::GpuDiskCacheFactory* | 
 | GpuHostImplTestApi::HookDelegateBase::GetGpuDiskCacheFactory() { | 
 |   return original_delegate_->GetGpuDiskCacheFactory(); | 
 | } | 
 |  | 
 | void GpuHostImplTestApi::HookDelegateBase::RecordLogMessage( | 
 |     int32_t severity, | 
 |     const std::string& header, | 
 |     const std::string& message) { | 
 |   original_delegate_->RecordLogMessage(severity, header, message); | 
 | } | 
 |  | 
 | void GpuHostImplTestApi::HookDelegateBase::BindDiscardableMemoryReceiver( | 
 |     mojo::PendingReceiver< | 
 |         discardable_memory::mojom::DiscardableSharedMemoryManager> receiver) { | 
 |   original_delegate_->BindDiscardableMemoryReceiver(std::move(receiver)); | 
 | } | 
 |  | 
 | void GpuHostImplTestApi::HookDelegateBase::BindInterface( | 
 |     const std::string& interface_name, | 
 |     mojo::ScopedMessagePipeHandle interface_pipe) { | 
 |   original_delegate_->BindInterface(interface_name, std::move(interface_pipe)); | 
 | } | 
 |  | 
 | #if BUILDFLAG(IS_OZONE) | 
 | void GpuHostImplTestApi::HookDelegateBase::TerminateGpuProcess( | 
 |     const std::string& message) { | 
 |   original_delegate_->TerminateGpuProcess(message); | 
 | } | 
 | #endif | 
 |  | 
 | GpuHostImplTestApi::GpuHostImplTestApi(GpuHostImpl* gpu_host) | 
 |     : gpu_host_(gpu_host) {} | 
 |  | 
 | GpuHostImplTestApi::~GpuHostImplTestApi() { | 
 |   if (hook_delegate_) | 
 |     gpu_host_->delegate_ = hook_delegate_->original_delegate(); | 
 | } | 
 |  | 
 | void GpuHostImplTestApi::FlushRemoteForTesting() { | 
 |   gpu_host_->gpu_service_remote_.FlushForTesting(); | 
 | } | 
 |  | 
 | void GpuHostImplTestApi::SetGpuService( | 
 |     mojo::Remote<mojom::GpuService> gpu_service) { | 
 |   gpu_host_->gpu_service_remote_ = std::move(gpu_service); | 
 | } | 
 |  | 
 | void GpuHostImplTestApi::HookDelegate( | 
 |     std::unique_ptr<HookDelegateBase> delegate) { | 
 |   DCHECK(delegate); | 
 |  | 
 |   GpuHostImpl::Delegate* original_delegate = | 
 |       hook_delegate_ ? hook_delegate_->original_delegate() | 
 |                      : gpu_host_->delegate_.get(); | 
 |  | 
 |   hook_delegate_ = std::move(delegate); | 
 |   hook_delegate_->set_original_delegate(original_delegate); | 
 |  | 
 |   gpu_host_->delegate_ = hook_delegate_.get(); | 
 | } | 
 |  | 
 | }  // namespace viz |