gpu_data_manager_observer.h revision 2a99a7e74a7f215066514fe81d2bfa6639d9eddd
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_util.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 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 protected: 39 virtual ~GpuDataManagerObserver() {} 40}; 41 42}; // namespace content 43 44#endif // CONTENT_PUBLIC_BROWSER_GPU_DATA_MANAGER_OBSERVER_H_ 45