gpu_data_manager_observer.h revision 58e6fbe4ee35d65e14b626c557d37565bf8ad179
1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CONTENT_PUBLIC_BROWSER_GPU_DATA_MANAGER_OBSERVER_H_ 6#define CONTENT_PUBLIC_BROWSER_GPU_DATA_MANAGER_OBSERVER_H_ 7 8#include "base/process/kill.h" 9#include "content/common/content_export.h" 10#include "content/public/common/gpu_memory_stats.h" 11#include "content/public/common/three_d_api_types.h" 12 13class GURL; 14 15namespace content { 16 17// Observers can register themselves via GpuDataManager::AddObserver, and 18// can un-register with GpuDataManager::RemoveObserver. 19class CONTENT_EXPORT GpuDataManagerObserver { 20 public: 21 // Called for any observers whenever there is a GPU info update. 22 virtual void OnGpuInfoUpdate() {} 23 24 // Called for any observers whenever there is a GPU video memory update. 25 virtual void OnVideoMemoryUsageStatsUpdate( 26 const GPUVideoMemoryUsageStats& video_memory_usage_stats) {} 27 28 // Indicates that client 3D APIs (Pepper 3D, WebGL) were just blocked on the 29 // given page, specifically because the GPU was reset recently. 30 virtual void DidBlock3DAPIs(const GURL& url, 31 int render_process_id, 32 int render_view_id, 33 ThreeDAPIType requester) {} 34 35 // Called for any observer when the GPU process crashed. 36 virtual void OnGpuProcessCrashed(base::TerminationStatus exit_code) {} 37 38 // Called for any observer when the system switches to a different GPU. 39 virtual void OnGpuSwitching() {} 40 41 protected: 42 virtual ~GpuDataManagerObserver() {} 43}; 44 45}; // namespace content 46 47#endif // CONTENT_PUBLIC_BROWSER_GPU_DATA_MANAGER_OBSERVER_H_ 48