Index: cc/trees/layer_tree_impl.cc |
diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc |
index 25f48d6fb4a4c466f1e42ecb83223389ec13d19b..55652c65d6132d238c017170aac25f327cc1f4c7 100644 |
--- a/cc/trees/layer_tree_impl.cc |
+++ b/cc/trees/layer_tree_impl.cc |
@@ -70,7 +70,8 @@ LayerTreeImpl::LayerTreeImpl( |
} |
LayerTreeImpl::~LayerTreeImpl() { |
- BreakSwapPromises(SwapPromise::SWAP_FAILS); |
+ promises_.OnDidNotActivate(Promise::DidNotActivate::ACTIVATION_FAILS); |
+ promises_.OnDidNotSwap(Promise::DidNotSwap::SWAP_FAILS); |
// Need to explicitly clear the tree prior to destroying this so that |
// the LayerTreeImpl pointer is still valid in the LayerImpl dtor. |
@@ -199,7 +200,7 @@ void LayerTreeImpl::PushPropertiesTo(LayerTreeImpl* target_tree) { |
next_activation_forces_redraw_ = false; |
} |
- target_tree->PassSwapPromises(&swap_promise_list_); |
+ target_tree->PassPromises(&promises_); |
target_tree->set_top_controls_shrink_blink_size( |
top_controls_shrink_blink_size_); |
@@ -989,9 +990,11 @@ void LayerTreeImpl::AsValueInto(base::trace_event::TracedValue* state) const { |
} |
state->EndArray(); |
- state->BeginArray("swap_promise_trace_ids"); |
- for (size_t i = 0; i < swap_promise_list_.size(); i++) |
- state->AppendDouble(swap_promise_list_[i]->TraceId()); |
+ state->BeginArray("promise_trace_ids"); |
+ std::vector<int64> trace_ids; |
+ promises_.GetTraceIds(&trace_ids); |
+ for (size_t i = 0; i < trace_ids.size(); i++) |
+ state->AppendDouble(trace_ids[i]); |
state->EndArray(); |
} |
@@ -1065,28 +1068,28 @@ void LayerTreeImpl::DistributeRootScrollOffset() { |
UpdateRootScrollOffsetDelegate(); |
} |
-void LayerTreeImpl::QueueSwapPromise(scoped_ptr<SwapPromise> swap_promise) { |
- DCHECK(swap_promise); |
- swap_promise_list_.push_back(swap_promise.Pass()); |
+void LayerTreeImpl::PassPromises(PromiseList* other) { |
+ promises_.PassPromises(other); |
} |
-void LayerTreeImpl::PassSwapPromises( |
- ScopedPtrVector<SwapPromise>* new_swap_promise) { |
- swap_promise_list_.insert_and_take(swap_promise_list_.end(), |
- new_swap_promise); |
- new_swap_promise->clear(); |
+void LayerTreeImpl::QueuePromise(scoped_ptr<Promise> promise) { |
+ promises_.QueuePromise(promise.Pass()); |
+} |
+ |
+void LayerTreeImpl::BreakSwapPromises(Promise::DidNotSwap::Reason reason) { |
+ promises_.OnDidNotSwap(reason); |
} |
void LayerTreeImpl::FinishSwapPromises(CompositorFrameMetadata* metadata) { |
- for (size_t i = 0; i < swap_promise_list_.size(); i++) |
- swap_promise_list_[i]->DidSwap(metadata); |
- swap_promise_list_.clear(); |
+ promises_.OnDidSwap(metadata); |
+} |
+ |
+void LayerTreeImpl::BreakActivationPromises(Promise::DidNotActivate::Reason reason) { |
+ promises_.OnDidNotActivate(reason); |
} |
-void LayerTreeImpl::BreakSwapPromises(SwapPromise::DidNotSwapReason reason) { |
- for (size_t i = 0; i < swap_promise_list_.size(); i++) |
- swap_promise_list_[i]->DidNotSwap(reason); |
- swap_promise_list_.clear(); |
+void LayerTreeImpl::FinishActivationPromises(CompositorFrameMetadata* metadata) { |
+ promises_.OnDidActivate(metadata); |
} |
void LayerTreeImpl::DidModifyTilePriorities() { |