Index: cc/layers/surface_layer.cc |
diff --git a/cc/layers/surface_layer.cc b/cc/layers/surface_layer.cc |
index a849589c08e06194597335fdcbcd03162a267bdd..0bd299cde4b5189fd9aabe69d19b075b1efc59d2 100644 |
--- a/cc/layers/surface_layer.cc |
+++ b/cc/layers/surface_layer.cc |
@@ -21,9 +21,9 @@ namespace cc { |
class SatisfySwapPromise : public SwapPromise { |
public: |
SatisfySwapPromise( |
- std::unique_ptr<SurfaceReferenceBase> surface_ref, |
+ base::Closure reference_returner, |
scoped_refptr<base::SingleThreadTaskRunner> main_task_runner) |
- : surface_ref_(std::move(surface_ref)), |
+ : reference_returner_(reference_returner), |
main_task_runner_(std::move(main_task_runner)) {} |
~SatisfySwapPromise() override {} |
@@ -34,17 +34,17 @@ class SatisfySwapPromise : public SwapPromise { |
void WillSwap(CompositorFrameMetadata* metadata) override {} |
void DidSwap() override { |
- main_task_runner_->DeleteSoon(FROM_HERE, surface_ref_.release()); |
+ main_task_runner_->PostTask(FROM_HERE, reference_returner_); |
} |
DidNotSwapAction DidNotSwap(DidNotSwapReason reason) override { |
- main_task_runner_->DeleteSoon(FROM_HERE, surface_ref_.release()); |
+ main_task_runner_->PostTask(FROM_HERE, reference_returner_); |
return DidNotSwapAction::BREAK_PROMISE; |
} |
int64_t TraceId() const override { return 0; } |
- std::unique_ptr<SurfaceReferenceBase> surface_ref_; |
+ base::Closure reference_returner_; |
scoped_refptr<base::SingleThreadTaskRunner> main_task_runner_; |
DISALLOW_COPY_AND_ASSIGN(SatisfySwapPromise); |
@@ -67,7 +67,7 @@ void SurfaceLayer::SetSurfaceInfo(const SurfaceInfo& surface_info, |
RemoveCurrentReference(); |
surface_info_ = surface_info; |
if (layer_tree_host()) { |
- current_ref_ = |
+ reference_returner_ = |
ref_factory_->CreateReference(layer_tree_host(), surface_info_.id()); |
} |
stretch_content_to_fill_bounds_ = stretch_content_to_fill_bounds; |
@@ -92,7 +92,7 @@ void SurfaceLayer::SetLayerTreeHost(LayerTreeHost* host) { |
RemoveCurrentReference(); |
Layer::SetLayerTreeHost(host); |
if (layer_tree_host()) { |
- current_ref_ = |
+ reference_returner_ = |
ref_factory_->CreateReference(layer_tree_host(), surface_info_.id()); |
} |
} |
@@ -106,10 +106,10 @@ void SurfaceLayer::PushPropertiesTo(LayerImpl* layer) { |
} |
void SurfaceLayer::RemoveCurrentReference() { |
- if (!current_ref_) |
+ if (!reference_returner_) |
return; |
auto swap_promise = base::MakeUnique<SatisfySwapPromise>( |
- std::move(current_ref_), base::ThreadTaskRunnerHandle::Get()); |
+ std::move(reference_returner_), base::ThreadTaskRunnerHandle::Get()); |
danakj
2017/01/10 21:12:06
Just noticed, but this code should not use ThreadT
Fady Samuel
2017/01/10 21:33:07
LayerTreeHostImpl::task_runner_provider()->MainThr
Saman Sami
2017/01/10 21:56:14
Done.
|
layer_tree_host()->GetSwapPromiseManager()->QueueSwapPromise( |
std::move(swap_promise)); |
} |