| Index: cc/trees/layer_tree_impl.cc
|
| diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc
|
| index 15bd750b13e24e02122ecaeb8df7579b692fe4cf..ea3218d536450a5bdf8847322613798ad681af68 100644
|
| --- a/cc/trees/layer_tree_impl.cc
|
| +++ b/cc/trees/layer_tree_impl.cc
|
| @@ -122,6 +122,9 @@ void LayerTreeImpl::PushPropertiesTo(LayerTreeImpl* target_tree) {
|
|
|
| target_tree->SetLatencyInfo(latency_info_);
|
| latency_info_.Clear();
|
| +
|
| + target_tree->PassSwapPromises(&swap_promise_list_);
|
| +
|
| target_tree->SetPageScaleFactorAndLimits(
|
| page_scale_factor(), min_page_scale_factor(), max_page_scale_factor());
|
| target_tree->SetPageScaleDelta(
|
| @@ -708,6 +711,32 @@ void LayerTreeImpl::ClearLatencyInfo() {
|
| latency_info_.Clear();
|
| }
|
|
|
| +void LayerTreeImpl::QueueSwapPromise(scoped_ptr<SwapPromise> swap_promise) {
|
| + DCHECK(swap_promise);
|
| + if (swap_promise_list_.size() > kMaxQueuedSwapPromiseNumber)
|
| + BreakSwapPromises(SwapPromise::SWAP_PROMISE_LIST_OVERFLOW);
|
| + swap_promise_list_.push_back(swap_promise.Pass());
|
| +}
|
| +
|
| +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::FinishSwapPromises() {
|
| + for (size_t i = 0; i < swap_promise_list_.size(); i++)
|
| + swap_promise_list_[i]->DidSwap();
|
| + swap_promise_list_.clear();
|
| +}
|
| +
|
| +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::DidModifyTilePriorities() {
|
| layer_tree_host_impl_->DidModifyTilePriorities();
|
| }
|
|
|