test_globals.h revision 7dbb3d5cf0c15f500944d211057644d6a2f37371
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 PPAPI_SHARED_IMPL_TEST_GLOBALS_H_ 6#define PPAPI_SHARED_IMPL_TEST_GLOBALS_H_ 7 8#include "base/compiler_specific.h" 9#include "base/shared_memory.h" 10#include "ppapi/shared_impl/callback_tracker.h" 11#include "ppapi/shared_impl/ppapi_globals.h" 12#include "ppapi/shared_impl/resource_tracker.h" 13#include "ppapi/shared_impl/var_tracker.h" 14 15namespace ppapi { 16 17class TestVarTracker : public VarTracker { 18 public: 19 TestVarTracker() : VarTracker(THREAD_SAFE) {} 20 virtual ~TestVarTracker() {} 21 virtual ArrayBufferVar* CreateArrayBuffer(uint32 size_in_bytes) OVERRIDE { 22 return NULL; 23 } 24 virtual ArrayBufferVar* CreateShmArrayBuffer( 25 uint32 size_in_bytes, 26 base::SharedMemoryHandle handle) OVERRIDE { 27 return NULL; 28 } 29 virtual void DidDeleteInstance(PP_Instance instance) OVERRIDE { 30 } 31 virtual int TrackSharedMemoryHandle(PP_Instance instance, 32 base::SharedMemoryHandle handle, 33 uint32 size_in_bytes) OVERRIDE { 34 return -1; 35 } 36 virtual bool StopTrackingSharedMemoryHandle(int id, 37 PP_Instance instance, 38 base::SharedMemoryHandle* handle, 39 uint32* size_in_bytes) OVERRIDE { 40 return false; 41 } 42}; 43 44// Implementation of PpapiGlobals for tests that don't need either the host- or 45// plugin-specific implementations. 46class TestGlobals : public PpapiGlobals { 47 public: 48 TestGlobals(); 49 explicit TestGlobals(PpapiGlobals::PerThreadForTest); 50 virtual ~TestGlobals(); 51 52 // PpapiGlobals implementation. 53 virtual ResourceTracker* GetResourceTracker() OVERRIDE; 54 virtual VarTracker* GetVarTracker() OVERRIDE; 55 virtual CallbackTracker* GetCallbackTrackerForInstance( 56 PP_Instance instance) OVERRIDE; 57 virtual thunk::PPB_Instance_API* GetInstanceAPI( 58 PP_Instance instance) OVERRIDE; 59 virtual thunk::ResourceCreationAPI* GetResourceCreationAPI( 60 PP_Instance instance) OVERRIDE; 61 virtual PP_Module GetModuleForInstance(PP_Instance instance) OVERRIDE; 62 virtual std::string GetCmdLine() OVERRIDE; 63 virtual void PreCacheFontForFlash(const void* logfontw) OVERRIDE; 64 virtual base::Lock* GetProxyLock() OVERRIDE; 65 virtual void LogWithSource(PP_Instance instance, 66 PP_LogLevel level, 67 const std::string& source, 68 const std::string& value) OVERRIDE; 69 virtual void BroadcastLogWithSource(PP_Module module, 70 PP_LogLevel level, 71 const std::string& source, 72 const std::string& value) OVERRIDE; 73 virtual MessageLoopShared* GetCurrentMessageLoop() OVERRIDE; 74 virtual base::TaskRunner* GetFileTaskRunner(PP_Instance instance) OVERRIDE; 75 76 // PpapiGlobals overrides: 77 virtual bool IsHostGlobals() const OVERRIDE; 78 79 private: 80 ResourceTracker resource_tracker_; 81 TestVarTracker var_tracker_; 82 scoped_refptr<CallbackTracker> callback_tracker_; 83 84 DISALLOW_COPY_AND_ASSIGN(TestGlobals); 85}; 86 87} // namespace ppapi 88 89#endif // PPAPI_SHARED_IMPL_TEST_GLOBALS_H_ 90