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

Unified Diff: cc/layers/surface_layer.cc

Issue 2616403003: Replacing SurfaceReferenceBase and SequenceSurfaceReference with Closures (Closed)
Patch Set: c Created 3 years, 11 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 side-by-side diff with in-line comments
Download patch
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));
}

Powered by Google App Engine
This is Rietveld 408576698