Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(225)

Side by Side Diff: ppapi/proxy/plugin_var_tracker.h

Issue 1097393007: Update {virtual,override} to follow C++11 style in ppapi. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Split off one file into separate review. Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ppapi/proxy/plugin_resource_var.h ('k') | ppapi/proxy/ppapi_command_buffer_proxy.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 PPAPI_PROXY_PLUGIN_VAR_TRACKER_H_ 5 #ifndef PPAPI_PROXY_PLUGIN_VAR_TRACKER_H_
6 #define PPAPI_PROXY_PLUGIN_VAR_TRACKER_H_ 6 #define PPAPI_PROXY_PLUGIN_VAR_TRACKER_H_
7 7
8 #include <map> 8 #include <map>
9 #include <string> 9 #include <string>
10 10
(...skipping 14 matching lines...) Expand all
25 class ProxyObjectVar; 25 class ProxyObjectVar;
26 26
27 namespace proxy { 27 namespace proxy {
28 28
29 class PluginDispatcher; 29 class PluginDispatcher;
30 30
31 // Tracks live strings and objects in the plugin process. 31 // Tracks live strings and objects in the plugin process.
32 class PPAPI_PROXY_EXPORT PluginVarTracker : public VarTracker { 32 class PPAPI_PROXY_EXPORT PluginVarTracker : public VarTracker {
33 public: 33 public:
34 PluginVarTracker(); 34 PluginVarTracker();
35 ~PluginVarTracker(); 35 ~PluginVarTracker() override;
36 36
37 // Manages tracking for receiving a VARTYPE_OBJECT from the remote side 37 // Manages tracking for receiving a VARTYPE_OBJECT from the remote side
38 // (either the plugin or the renderer) that has already had its reference 38 // (either the plugin or the renderer) that has already had its reference
39 // count incremented on behalf of the caller. 39 // count incremented on behalf of the caller.
40 PP_Var ReceiveObjectPassRef(const PP_Var& var, PluginDispatcher* dispatcher); 40 PP_Var ReceiveObjectPassRef(const PP_Var& var, PluginDispatcher* dispatcher);
41 41
42 // See the comment in var_tracker.h for more about what a tracked object is. 42 // See the comment in var_tracker.h for more about what a tracked object is.
43 // This adds and releases the "track_with_no_reference_count" for a given 43 // This adds and releases the "track_with_no_reference_count" for a given
44 // object. 44 // object.
45 PP_Var TrackObjectWithNoReference(const PP_Var& host_var, 45 PP_Var TrackObjectWithNoReference(const PP_Var& host_var,
46 PluginDispatcher* dispatcher); 46 PluginDispatcher* dispatcher);
47 void StopTrackingObjectWithNoReference(const PP_Var& plugin_var); 47 void StopTrackingObjectWithNoReference(const PP_Var& plugin_var);
48 48
49 // Returns the host var for the corresponding plugin object var. The object 49 // Returns the host var for the corresponding plugin object var. The object
50 // should be a VARTYPE_OBJECT. The reference count is not affeceted. 50 // should be a VARTYPE_OBJECT. The reference count is not affeceted.
51 PP_Var GetHostObject(const PP_Var& plugin_object) const; 51 PP_Var GetHostObject(const PP_Var& plugin_object) const;
52 52
53 PluginDispatcher* DispatcherForPluginObject( 53 PluginDispatcher* DispatcherForPluginObject(
54 const PP_Var& plugin_object) const; 54 const PP_Var& plugin_object) const;
55 55
56 // Like Release() but the var is identified by its host object ID (as 56 // Like Release() but the var is identified by its host object ID (as
57 // returned by GetHostObject). 57 // returned by GetHostObject).
58 void ReleaseHostObject(PluginDispatcher* dispatcher, 58 void ReleaseHostObject(PluginDispatcher* dispatcher,
59 const PP_Var& host_object); 59 const PP_Var& host_object);
60 60
61 // VarTracker public overrides. 61 // VarTracker public overrides.
62 virtual PP_Var MakeResourcePPVarFromMessage( 62 PP_Var MakeResourcePPVarFromMessage(PP_Instance instance,
63 PP_Instance instance, 63 const IPC::Message& creation_message,
64 const IPC::Message& creation_message, 64 int pending_renderer_id,
65 int pending_renderer_id, 65 int pending_browser_id) override;
66 int pending_browser_id) override; 66 ResourceVar* MakeResourceVar(PP_Resource pp_resource) override;
67 virtual ResourceVar* MakeResourceVar(PP_Resource pp_resource) override; 67 void DidDeleteInstance(PP_Instance instance) override;
68 virtual void DidDeleteInstance(PP_Instance instance) override; 68 int TrackSharedMemoryHandle(PP_Instance instance,
69 virtual int TrackSharedMemoryHandle(PP_Instance instance, 69 base::SharedMemoryHandle file,
70 base::SharedMemoryHandle file, 70 uint32 size_in_bytes) override;
71 uint32 size_in_bytes) override; 71 bool StopTrackingSharedMemoryHandle(int id,
72 virtual bool StopTrackingSharedMemoryHandle(int id, 72 PP_Instance instance,
73 PP_Instance instance, 73 base::SharedMemoryHandle* handle,
74 base::SharedMemoryHandle* handle, 74 uint32* size_in_bytes) override;
75 uint32* size_in_bytes) override;
76 75
77 // Notification that a plugin-implemented object (PPP_Class) was created by 76 // Notification that a plugin-implemented object (PPP_Class) was created by
78 // the plugin or deallocated by WebKit over IPC. 77 // the plugin or deallocated by WebKit over IPC.
79 void PluginImplementedObjectCreated(PP_Instance instance, 78 void PluginImplementedObjectCreated(PP_Instance instance,
80 const PP_Var& created_var, 79 const PP_Var& created_var,
81 const PPP_Class_Deprecated* ppp_class, 80 const PPP_Class_Deprecated* ppp_class,
82 void* ppp_class_data); 81 void* ppp_class_data);
83 void PluginImplementedObjectDestroyed(void* ppp_class_data); 82 void PluginImplementedObjectDestroyed(void* ppp_class_data);
84 83
85 // Returns true if there is an object implemented by the plugin with the 84 // Returns true if there is an object implemented by the plugin with the
86 // given user_data that has not been deallocated yet. Call this when 85 // given user_data that has not been deallocated yet. Call this when
87 // receiving a scripting call to the plugin to validate that the object 86 // receiving a scripting call to the plugin to validate that the object
88 // receiving the call is still alive (see user_data_to_plugin_ below). 87 // receiving the call is still alive (see user_data_to_plugin_ below).
89 bool IsPluginImplementedObjectAlive(void* user_data); 88 bool IsPluginImplementedObjectAlive(void* user_data);
90 89
91 // Validates that the given class/user_data pair corresponds to a currently 90 // Validates that the given class/user_data pair corresponds to a currently
92 // living plugin object. 91 // living plugin object.
93 bool ValidatePluginObjectCall(const PPP_Class_Deprecated* ppp_class, 92 bool ValidatePluginObjectCall(const PPP_Class_Deprecated* ppp_class,
94 void* user_data); 93 void* user_data);
95 94
96 void DidDeleteDispatcher(PluginDispatcher* dispatcher); 95 void DidDeleteDispatcher(PluginDispatcher* dispatcher);
97 96
98 private: 97 private:
99 // VarTracker protected overrides. 98 // VarTracker protected overrides.
100 virtual int32 AddVarInternal(Var* var, AddVarRefMode mode) override; 99 int32 AddVarInternal(Var* var, AddVarRefMode mode) override;
101 virtual void TrackedObjectGettingOneRef(VarMap::const_iterator iter) override; 100 void TrackedObjectGettingOneRef(VarMap::const_iterator iter) override;
102 virtual void ObjectGettingZeroRef(VarMap::iterator iter) override; 101 void ObjectGettingZeroRef(VarMap::iterator iter) override;
103 virtual bool DeleteObjectInfoIfNecessary(VarMap::iterator iter) override; 102 bool DeleteObjectInfoIfNecessary(VarMap::iterator iter) override;
104 virtual ArrayBufferVar* CreateArrayBuffer(uint32 size_in_bytes) override; 103 ArrayBufferVar* CreateArrayBuffer(uint32 size_in_bytes) override;
105 virtual ArrayBufferVar* CreateShmArrayBuffer( 104 ArrayBufferVar* CreateShmArrayBuffer(
106 uint32 size_in_bytes, 105 uint32 size_in_bytes,
107 base::SharedMemoryHandle handle) override; 106 base::SharedMemoryHandle handle) override;
108 107
109 private: 108 private:
110 friend struct DefaultSingletonTraits<PluginVarTracker>; 109 friend struct DefaultSingletonTraits<PluginVarTracker>;
111 friend class PluginProxyTestHarness; 110 friend class PluginProxyTestHarness;
112 111
113 // Represents a var as received from the host. 112 // Represents a var as received from the host.
114 struct HostVar { 113 struct HostVar {
115 HostVar(PluginDispatcher* d, int32 i); 114 HostVar(PluginDispatcher* d, int32 i);
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
202 UserDataToPluginImplementedVarMap; 201 UserDataToPluginImplementedVarMap;
203 UserDataToPluginImplementedVarMap user_data_to_plugin_; 202 UserDataToPluginImplementedVarMap user_data_to_plugin_;
204 203
205 DISALLOW_COPY_AND_ASSIGN(PluginVarTracker); 204 DISALLOW_COPY_AND_ASSIGN(PluginVarTracker);
206 }; 205 };
207 206
208 } // namespace proxy 207 } // namespace proxy
209 } // namespace ppapi 208 } // namespace ppapi
210 209
211 #endif // PPAPI_PROXY_PLUGIN_VAR_TRACKER_H_ 210 #endif // PPAPI_PROXY_PLUGIN_VAR_TRACKER_H_
OLDNEW
« no previous file with comments | « ppapi/proxy/plugin_resource_var.h ('k') | ppapi/proxy/ppapi_command_buffer_proxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698