OLD | NEW |
1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "cc/trees/layer_tree_host.h" | 5 #include "cc/trees/layer_tree_host.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <stack> | 8 #include <stack> |
9 #include <string> | 9 #include <string> |
10 | 10 |
(...skipping 1073 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1084 } | 1084 } |
1085 } | 1085 } |
1086 | 1086 |
1087 if (!inner_viewport_scroll_delta.IsZero() || | 1087 if (!inner_viewport_scroll_delta.IsZero() || |
1088 !outer_viewport_scroll_delta.IsZero() || | 1088 !outer_viewport_scroll_delta.IsZero() || |
1089 info->page_scale_delta != 1.f || | 1089 info->page_scale_delta != 1.f || |
1090 info->top_controls_delta) { | 1090 info->top_controls_delta) { |
1091 // SetScrollOffsetFromImplSide above could have destroyed the tree, | 1091 // SetScrollOffsetFromImplSide above could have destroyed the tree, |
1092 // so re-get this layer before doing anything to it. | 1092 // so re-get this layer before doing anything to it. |
1093 | 1093 |
| 1094 DCHECK(inner_viewport_scroll_layer_.get()); // We should always have this. |
| 1095 |
1094 // Preemptively apply the scroll offset and scale delta here before sending | 1096 // Preemptively apply the scroll offset and scale delta here before sending |
1095 // it to the client. If the client comes back and sets it to the same | 1097 // it to the client. If the client comes back and sets it to the same |
1096 // value, then the layer can early out without needing a full commit. | 1098 // value, then the layer can early out without needing a full commit. |
1097 DCHECK(inner_viewport_scroll_layer_.get()); // We should always have this. | |
1098 | |
1099 inner_viewport_scroll_layer_->SetScrollOffsetFromImplSide( | 1099 inner_viewport_scroll_layer_->SetScrollOffsetFromImplSide( |
1100 inner_viewport_scroll_layer_->scroll_offset() + | 1100 inner_viewport_scroll_layer_->scroll_offset() + |
1101 inner_viewport_scroll_delta); | 1101 inner_viewport_scroll_delta); |
1102 if (outer_viewport_scroll_layer_.get()) { | 1102 if (outer_viewport_scroll_layer_.get()) { |
1103 outer_viewport_scroll_layer_->SetScrollOffsetFromImplSide( | 1103 outer_viewport_scroll_layer_->SetScrollOffsetFromImplSide( |
1104 outer_viewport_scroll_layer_->scroll_offset() + | 1104 outer_viewport_scroll_layer_->scroll_offset() + |
1105 outer_viewport_scroll_delta); | 1105 outer_viewport_scroll_delta); |
1106 } | 1106 } |
| 1107 |
1107 ApplyPageScaleDeltaFromImplSide(info->page_scale_delta); | 1108 ApplyPageScaleDeltaFromImplSide(info->page_scale_delta); |
1108 | 1109 if (!outer_viewport_scroll_layer_.get()) { |
1109 client_->ApplyViewportDeltas( | 1110 client_->ApplyViewportDeltas( |
1110 inner_viewport_scroll_delta + outer_viewport_scroll_delta, | 1111 inner_viewport_scroll_delta + outer_viewport_scroll_delta, |
1111 info->page_scale_delta, | 1112 info->page_scale_delta, |
1112 info->top_controls_delta); | 1113 info->top_controls_delta); |
| 1114 } else { |
| 1115 client_->ApplyViewportDeltas( |
| 1116 inner_viewport_scroll_delta, |
| 1117 outer_viewport_scroll_delta, |
| 1118 info->page_scale_delta, |
| 1119 info->top_controls_delta); |
| 1120 } |
1113 } | 1121 } |
1114 } | 1122 } |
1115 | 1123 |
1116 void LayerTreeHost::StartRateLimiter() { | 1124 void LayerTreeHost::StartRateLimiter() { |
1117 if (inside_begin_main_frame_) | 1125 if (inside_begin_main_frame_) |
1118 return; | 1126 return; |
1119 | 1127 |
1120 if (!rate_limit_timer_.IsRunning()) { | 1128 if (!rate_limit_timer_.IsRunning()) { |
1121 rate_limit_timer_.Start(FROM_HERE, | 1129 rate_limit_timer_.Start(FROM_HERE, |
1122 base::TimeDelta(), | 1130 base::TimeDelta(), |
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1317 swap_promise_list_.push_back(swap_promise.Pass()); | 1325 swap_promise_list_.push_back(swap_promise.Pass()); |
1318 } | 1326 } |
1319 | 1327 |
1320 void LayerTreeHost::BreakSwapPromises(SwapPromise::DidNotSwapReason reason) { | 1328 void LayerTreeHost::BreakSwapPromises(SwapPromise::DidNotSwapReason reason) { |
1321 for (size_t i = 0; i < swap_promise_list_.size(); i++) | 1329 for (size_t i = 0; i < swap_promise_list_.size(); i++) |
1322 swap_promise_list_[i]->DidNotSwap(reason); | 1330 swap_promise_list_[i]->DidNotSwap(reason); |
1323 swap_promise_list_.clear(); | 1331 swap_promise_list_.clear(); |
1324 } | 1332 } |
1325 | 1333 |
1326 } // namespace cc | 1334 } // namespace cc |
OLD | NEW |