| Index: webkit/plugins/ppapi/host_var_tracker.h
|
| ===================================================================
|
| --- webkit/plugins/ppapi/host_var_tracker.h (revision 213561)
|
| +++ webkit/plugins/ppapi/host_var_tracker.h (working copy)
|
| @@ -1,110 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#ifndef WEBKIT_PLUGINS_PPAPI_HOST_VAR_TRACKER_H_
|
| -#define WEBKIT_PLUGINS_PPAPI_HOST_VAR_TRACKER_H_
|
| -
|
| -#include <map>
|
| -
|
| -#include "base/basictypes.h"
|
| -#include "base/compiler_specific.h"
|
| -#include "base/containers/hash_tables.h"
|
| -#include "base/gtest_prod_util.h"
|
| -#include "base/memory/linked_ptr.h"
|
| -#include "base/memory/ref_counted.h"
|
| -#include "ppapi/c/pp_instance.h"
|
| -#include "ppapi/shared_impl/host_resource.h"
|
| -#include "ppapi/shared_impl/resource_tracker.h"
|
| -#include "ppapi/shared_impl/var_tracker.h"
|
| -#include "webkit/plugins/webkit_plugins_export.h"
|
| -
|
| -typedef struct NPObject NPObject;
|
| -
|
| -namespace ppapi {
|
| -class ArrayBufferVar;
|
| -class NPObjectVar;
|
| -class Var;
|
| -}
|
| -
|
| -namespace webkit {
|
| -namespace ppapi {
|
| -
|
| -// Adds NPObject var tracking to the standard PPAPI VarTracker for use in the
|
| -// renderer.
|
| -class HostVarTracker : public ::ppapi::VarTracker {
|
| - public:
|
| - HostVarTracker();
|
| - virtual ~HostVarTracker();
|
| -
|
| - // Tracks all live NPObjectVar. This is so we can map between instance +
|
| - // NPObject and get the NPObjectVar corresponding to it. This Add/Remove
|
| - // function is called by the NPObjectVar when it is created and
|
| - // destroyed.
|
| - void AddNPObjectVar(::ppapi::NPObjectVar* object_var);
|
| - void RemoveNPObjectVar(::ppapi::NPObjectVar* object_var);
|
| -
|
| - // Looks up a previously registered NPObjectVar for the given NPObject and
|
| - // instance. Returns NULL if there is no NPObjectVar corresponding to the
|
| - // given NPObject for the given instance. See AddNPObjectVar above.
|
| - ::ppapi::NPObjectVar* NPObjectVarForNPObject(PP_Instance instance,
|
| - NPObject* np_object);
|
| -
|
| - // Returns the number of NPObjectVar's associated with the given instance.
|
| - // Returns 0 if the instance isn't known.
|
| - WEBKIT_PLUGINS_EXPORT int GetLiveNPObjectVarsForInstance(
|
| - PP_Instance instance) const;
|
| -
|
| - // VarTracker public implementation.
|
| - virtual void DidDeleteInstance(PP_Instance instance) OVERRIDE;
|
| -
|
| - virtual int TrackSharedMemoryHandle(PP_Instance instance,
|
| - base::SharedMemoryHandle file,
|
| - uint32 size_in_bytes) OVERRIDE;
|
| - virtual bool StopTrackingSharedMemoryHandle(int id,
|
| - PP_Instance instance,
|
| - base::SharedMemoryHandle* handle,
|
| - uint32* size_in_bytes) OVERRIDE;
|
| -
|
| - private:
|
| - // VarTracker private implementation.
|
| - virtual ::ppapi::ArrayBufferVar* CreateArrayBuffer(
|
| - uint32 size_in_bytes) OVERRIDE;
|
| - virtual ::ppapi::ArrayBufferVar* CreateShmArrayBuffer(
|
| - uint32 size_in_bytes, base::SharedMemoryHandle handle) OVERRIDE;
|
| -
|
| - // Clear the reference count of the given object and remove it from
|
| - // live_vars_.
|
| - void ForceReleaseNPObject(::ppapi::NPObjectVar* object_var);
|
| -
|
| - typedef std::map<NPObject*, ::ppapi::NPObjectVar*>
|
| - NPObjectToNPObjectVarMap;
|
| -
|
| - // Lists all known NPObjects, first indexed by the corresponding instance,
|
| - // then by the NPObject*. This allows us to look up an NPObjectVar given
|
| - // these two pieces of information.
|
| - //
|
| - // The instance map is lazily managed, so we'll add the
|
| - // NPObjectToNPObjectVarMap lazily when the first NPObject var is created,
|
| - // and delete it when it's empty.
|
| - typedef std::map<PP_Instance, linked_ptr<NPObjectToNPObjectVarMap> >
|
| - InstanceMap;
|
| - InstanceMap instance_map_;
|
| -
|
| - // Tracks all shared memory handles used for transmitting array buffers.
|
| - struct SharedMemoryMapEntry {
|
| - PP_Instance instance;
|
| - base::SharedMemoryHandle handle;
|
| - uint32 size_in_bytes;
|
| - };
|
| - typedef std::map<int, SharedMemoryMapEntry> SharedMemoryMap;
|
| - SharedMemoryMap shared_memory_map_;
|
| - uint32_t last_shared_memory_map_id_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(HostVarTracker);
|
| -};
|
| -
|
| -} // namespace ppapi
|
| -} // namespace webkit
|
| -
|
| -#endif // WEBKIT_PLUGINS_PPAPI_HOST_VAR_TRACKER_H_
|
|
|