| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef CONTENT_RENDERER_PEPPER_HOST_VAR_TRACKER_H_ | 5 #ifndef CONTENT_RENDERER_PEPPER_HOST_VAR_TRACKER_H_ |
| 6 #define CONTENT_RENDERER_PEPPER_HOST_VAR_TRACKER_H_ | 6 #define CONTENT_RENDERER_PEPPER_HOST_VAR_TRACKER_H_ |
| 7 | 7 |
| 8 #include <map> | 8 #include <map> |
| 9 | 9 |
| 10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 class ArrayBufferVar; | 24 class ArrayBufferVar; |
| 25 class V8ObjectVar; | 25 class V8ObjectVar; |
| 26 class Var; | 26 class Var; |
| 27 } | 27 } |
| 28 | 28 |
| 29 namespace content { | 29 namespace content { |
| 30 | 30 |
| 31 class HostVarTracker : public ppapi::VarTracker { | 31 class HostVarTracker : public ppapi::VarTracker { |
| 32 public: | 32 public: |
| 33 HostVarTracker(); | 33 HostVarTracker(); |
| 34 virtual ~HostVarTracker(); | 34 ~HostVarTracker() override; |
| 35 | 35 |
| 36 // Tracks all live V8ObjectVar. This is so we can map between instance + | 36 // Tracks all live V8ObjectVar. This is so we can map between instance + |
| 37 // V8Object and get the V8ObjectVar corresponding to it. This Add/Remove | 37 // V8Object and get the V8ObjectVar corresponding to it. This Add/Remove |
| 38 // function is called by the V8ObjectVar when it is created and destroyed. | 38 // function is called by the V8ObjectVar when it is created and destroyed. |
| 39 void AddV8ObjectVar(ppapi::V8ObjectVar* object_var); | 39 void AddV8ObjectVar(ppapi::V8ObjectVar* object_var); |
| 40 void RemoveV8ObjectVar(ppapi::V8ObjectVar* object_var); | 40 void RemoveV8ObjectVar(ppapi::V8ObjectVar* object_var); |
| 41 // Creates or retrieves a V8ObjectVar. | 41 // Creates or retrieves a V8ObjectVar. |
| 42 PP_Var V8ObjectVarForV8Object(PP_Instance instance, | 42 PP_Var V8ObjectVarForV8Object(PP_Instance instance, |
| 43 v8::Handle<v8::Object> object); | 43 v8::Handle<v8::Object> object); |
| 44 // Returns the number of V8ObjectVars associated with the given instance. | 44 // Returns the number of V8ObjectVars associated with the given instance. |
| 45 // Returns 0 if the instance isn't known. | 45 // Returns 0 if the instance isn't known. |
| 46 CONTENT_EXPORT int GetLiveV8ObjectVarsForTest(PP_Instance instance); | 46 CONTENT_EXPORT int GetLiveV8ObjectVarsForTest(PP_Instance instance); |
| 47 | 47 |
| 48 // VarTracker public implementation. | 48 // VarTracker public implementation. |
| 49 virtual PP_Var MakeResourcePPVarFromMessage( | 49 PP_Var MakeResourcePPVarFromMessage(PP_Instance instance, |
| 50 PP_Instance instance, | 50 const IPC::Message& creation_message, |
| 51 const IPC::Message& creation_message, | 51 int pending_renderer_id, |
| 52 int pending_renderer_id, | 52 int pending_browser_id) override; |
| 53 int pending_browser_id) override; | 53 ppapi::ResourceVar* MakeResourceVar(PP_Resource pp_resource) override; |
| 54 virtual ppapi::ResourceVar* MakeResourceVar(PP_Resource pp_resource) override; | 54 void DidDeleteInstance(PP_Instance pp_instance) override; |
| 55 virtual void DidDeleteInstance(PP_Instance pp_instance) override; | |
| 56 | 55 |
| 57 virtual int TrackSharedMemoryHandle(PP_Instance instance, | 56 int TrackSharedMemoryHandle(PP_Instance instance, |
| 58 base::SharedMemoryHandle file, | 57 base::SharedMemoryHandle file, |
| 59 uint32 size_in_bytes) override; | 58 uint32 size_in_bytes) override; |
| 60 virtual bool StopTrackingSharedMemoryHandle(int id, | 59 bool StopTrackingSharedMemoryHandle(int id, |
| 61 PP_Instance instance, | 60 PP_Instance instance, |
| 62 base::SharedMemoryHandle* handle, | 61 base::SharedMemoryHandle* handle, |
| 63 uint32* size_in_bytes) override; | 62 uint32* size_in_bytes) override; |
| 64 | 63 |
| 65 private: | 64 private: |
| 66 // VarTracker private implementation. | 65 // VarTracker private implementation. |
| 67 virtual ppapi::ArrayBufferVar* CreateArrayBuffer(uint32 size_in_bytes) | 66 ppapi::ArrayBufferVar* CreateArrayBuffer(uint32 size_in_bytes) override; |
| 68 override; | 67 ppapi::ArrayBufferVar* CreateShmArrayBuffer( |
| 69 virtual ppapi::ArrayBufferVar* CreateShmArrayBuffer( | |
| 70 uint32 size_in_bytes, | 68 uint32 size_in_bytes, |
| 71 base::SharedMemoryHandle handle) override; | 69 base::SharedMemoryHandle handle) override; |
| 72 | 70 |
| 73 // Clear the reference count of the given object and remove it from | 71 // Clear the reference count of the given object and remove it from |
| 74 // live_vars_. | 72 // live_vars_. |
| 75 void ForceReleaseV8Object(ppapi::V8ObjectVar* object_var); | 73 void ForceReleaseV8Object(ppapi::V8ObjectVar* object_var); |
| 76 | 74 |
| 77 // A non-unique, ordered key for a V8ObjectVar. Contains the hash of the v8 | 75 // A non-unique, ordered key for a V8ObjectVar. Contains the hash of the v8 |
| 78 // and the instance it is associated with. | 76 // and the instance it is associated with. |
| 79 struct V8ObjectVarKey { | 77 struct V8ObjectVarKey { |
| (...skipping 26 matching lines...) Expand all Loading... |
| 106 typedef std::map<int, SharedMemoryMapEntry> SharedMemoryMap; | 104 typedef std::map<int, SharedMemoryMapEntry> SharedMemoryMap; |
| 107 SharedMemoryMap shared_memory_map_; | 105 SharedMemoryMap shared_memory_map_; |
| 108 uint32_t last_shared_memory_map_id_; | 106 uint32_t last_shared_memory_map_id_; |
| 109 | 107 |
| 110 DISALLOW_COPY_AND_ASSIGN(HostVarTracker); | 108 DISALLOW_COPY_AND_ASSIGN(HostVarTracker); |
| 111 }; | 109 }; |
| 112 | 110 |
| 113 } // namespace content | 111 } // namespace content |
| 114 | 112 |
| 115 #endif // CONTENT_RENDERER_PEPPER_HOST_VAR_TRACKER_H_ | 113 #endif // CONTENT_RENDERER_PEPPER_HOST_VAR_TRACKER_H_ |
| OLD | NEW |