| Index: cc/surfaces/surface_reference_factory.h
|
| diff --git a/cc/surfaces/surface_reference_factory.h b/cc/surfaces/surface_reference_factory.h
|
| index a4a32afa5667029acdef1c326bc267fbc5f76e92..ab0a430a3b4dc1f228a3cb94452691c657468461 100644
|
| --- a/cc/surfaces/surface_reference_factory.h
|
| +++ b/cc/surfaces/surface_reference_factory.h
|
| @@ -5,24 +5,22 @@
|
| #ifndef CC_SURFACES_SURFACE_REFERENCE_FACTORY_H_
|
| #define CC_SURFACES_SURFACE_REFERENCE_FACTORY_H_
|
|
|
| +#include "base/callback_forward.h"
|
| #include "base/memory/ref_counted.h"
|
| #include "cc/surfaces/surface_id.h"
|
| #include "cc/surfaces/surface_reference_owner.h"
|
|
|
| namespace cc {
|
|
|
| -class SurfaceReferenceBase;
|
| -
|
| -// Creates surface references. Returns an object of type
|
| -// SurfaceReferenceBase which holds on to its corresponding
|
| -// surface reference until destruction. The referenced surface
|
| -// will be kept alive as long as there is a reference to it.
|
| +// Creates surface references. The referenced surface will be kept alive as
|
| +// long as there is a reference to it.
|
| class SurfaceReferenceFactory
|
| : public base::RefCountedThreadSafe<SurfaceReferenceFactory> {
|
| public:
|
| - virtual std::unique_ptr<SurfaceReferenceBase> CreateReference(
|
| - SurfaceReferenceOwner* owner,
|
| - const SurfaceId& surface_id) const = 0;
|
| + // Creates a reference to the surface with the given surface id and returns
|
| + // a closure that must be called exactly once to remove the reference.
|
| + virtual base::Closure CreateReference(SurfaceReferenceOwner* owner,
|
| + const SurfaceId& surface_id) const = 0;
|
|
|
| SurfaceReferenceFactory() = default;
|
|
|
| @@ -30,11 +28,8 @@ class SurfaceReferenceFactory
|
| virtual ~SurfaceReferenceFactory() = default;
|
|
|
| private:
|
| - friend class SurfaceReferenceBase;
|
| friend class base::RefCountedThreadSafe<SurfaceReferenceFactory>;
|
|
|
| - virtual void DestroyReference(SurfaceReferenceBase* surface_ref) const = 0;
|
| -
|
| DISALLOW_COPY_AND_ASSIGN(SurfaceReferenceFactory);
|
| };
|
|
|
|
|