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

Side by Side Diff: cc/trees/layer_tree_impl.cc

Issue 783543003: Update from https://crrev.com/306901 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years 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 unified diff | Download patch
« no previous file with comments | « cc/trees/layer_tree_impl.h ('k') | cc/trees/layer_tree_impl_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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_impl.h" 5 #include "cc/trees/layer_tree_impl.h"
6 6
7 #include <limits> 7 #include <limits>
8 #include <set> 8 #include <set>
9 9
10 #include "base/debug/trace_event.h" 10 #include "base/debug/trace_event.h"
11 #include "base/debug/trace_event_argument.h" 11 #include "base/debug/trace_event_argument.h"
12 #include "cc/animation/keyframed_animation_curve.h" 12 #include "cc/animation/keyframed_animation_curve.h"
13 #include "cc/animation/scrollbar_animation_controller.h" 13 #include "cc/animation/scrollbar_animation_controller.h"
14 #include "cc/animation/scrollbar_animation_controller_linear_fade.h" 14 #include "cc/animation/scrollbar_animation_controller_linear_fade.h"
15 #include "cc/animation/scrollbar_animation_controller_thinning.h" 15 #include "cc/animation/scrollbar_animation_controller_thinning.h"
16 #include "cc/base/math_util.h" 16 #include "cc/base/math_util.h"
17 #include "cc/base/synced_property.h"
17 #include "cc/base/util.h" 18 #include "cc/base/util.h"
18 #include "cc/debug/devtools_instrumentation.h" 19 #include "cc/debug/devtools_instrumentation.h"
19 #include "cc/debug/traced_value.h" 20 #include "cc/debug/traced_value.h"
20 #include "cc/input/page_scale_animation.h" 21 #include "cc/input/page_scale_animation.h"
21 #include "cc/layers/heads_up_display_layer_impl.h" 22 #include "cc/layers/heads_up_display_layer_impl.h"
22 #include "cc/layers/layer.h" 23 #include "cc/layers/layer.h"
23 #include "cc/layers/layer_iterator.h" 24 #include "cc/layers/layer_iterator.h"
24 #include "cc/layers/render_surface_impl.h" 25 #include "cc/layers/render_surface_impl.h"
25 #include "cc/layers/scrollbar_layer_impl_base.h" 26 #include "cc/layers/scrollbar_layer_impl_base.h"
26 #include "cc/resources/ui_resource_request.h" 27 #include "cc/resources/ui_resource_request.h"
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 layer_tree_impl_->UpdateScrollOffsetDelegate(); 66 layer_tree_impl_->UpdateScrollOffsetDelegate();
66 } 67 }
67 68
68 private: 69 private:
69 LayerImpl* layer_; 70 LayerImpl* layer_;
70 LayerScrollOffsetDelegate* delegate_; 71 LayerScrollOffsetDelegate* delegate_;
71 LayerTreeImpl* layer_tree_impl_; 72 LayerTreeImpl* layer_tree_impl_;
72 gfx::ScrollOffset last_set_scroll_offset_; 73 gfx::ScrollOffset last_set_scroll_offset_;
73 }; 74 };
74 75
75 LayerTreeImpl::LayerTreeImpl(LayerTreeHostImpl* layer_tree_host_impl) 76 LayerTreeImpl::LayerTreeImpl(
77 LayerTreeHostImpl* layer_tree_host_impl,
78 scoped_refptr<SyncedProperty<ScaleGroup>> page_scale_factor)
76 : layer_tree_host_impl_(layer_tree_host_impl), 79 : layer_tree_host_impl_(layer_tree_host_impl),
77 source_frame_number_(-1), 80 source_frame_number_(-1),
78 hud_layer_(0), 81 hud_layer_(0),
79 currently_scrolling_layer_(NULL), 82 currently_scrolling_layer_(NULL),
80 root_layer_scroll_offset_delegate_(NULL), 83 root_layer_scroll_offset_delegate_(NULL),
81 background_color_(0), 84 background_color_(0),
82 has_transparent_background_(false), 85 has_transparent_background_(false),
83 page_scale_layer_(NULL), 86 page_scale_layer_(NULL),
84 inner_viewport_scroll_layer_(NULL), 87 inner_viewport_scroll_layer_(NULL),
85 outer_viewport_scroll_layer_(NULL), 88 outer_viewport_scroll_layer_(NULL),
86 page_scale_factor_(1), 89 page_scale_factor_(page_scale_factor),
87 page_scale_delta_(1),
88 sent_page_scale_delta_(1),
89 min_page_scale_factor_(0), 90 min_page_scale_factor_(0),
90 max_page_scale_factor_(0), 91 max_page_scale_factor_(0),
91 scrolling_layer_id_from_previous_tree_(0), 92 scrolling_layer_id_from_previous_tree_(0),
92 contents_textures_purged_(false), 93 contents_textures_purged_(false),
93 viewport_size_invalid_(false), 94 viewport_size_invalid_(false),
94 needs_update_draw_properties_(true), 95 needs_update_draw_properties_(true),
95 needs_full_tree_sync_(true), 96 needs_full_tree_sync_(true),
96 next_activation_forces_redraw_(false), 97 next_activation_forces_redraw_(false),
97 has_ever_been_drawn_(false), 98 has_ever_been_drawn_(false),
98 render_surface_layer_list_id_(0), 99 render_surface_layer_list_id_(0),
99 top_controls_layout_height_(0), 100 top_controls_shrink_blink_size_(false),
101 top_controls_height_(0),
100 top_controls_content_offset_(0), 102 top_controls_content_offset_(0),
101 top_controls_delta_(0), 103 top_controls_delta_(0),
102 sent_top_controls_delta_(0) { 104 sent_top_controls_delta_(0) {
103 } 105 }
104 106
105 LayerTreeImpl::~LayerTreeImpl() { 107 LayerTreeImpl::~LayerTreeImpl() {
106 BreakSwapPromises(SwapPromise::SWAP_FAILS); 108 BreakSwapPromises(SwapPromise::SWAP_FAILS);
107 109
108 // Need to explicitly clear the tree prior to destroying this so that 110 // Need to explicitly clear the tree prior to destroying this so that
109 // the LayerTreeImpl pointer is still valid in the LayerImpl dtor. 111 // the LayerTreeImpl pointer is still valid in the LayerImpl dtor.
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
202 // The request queue should have been processed and does not require a push. 204 // The request queue should have been processed and does not require a push.
203 DCHECK_EQ(ui_resource_request_queue_.size(), 0u); 205 DCHECK_EQ(ui_resource_request_queue_.size(), 0u);
204 206
205 if (next_activation_forces_redraw_) { 207 if (next_activation_forces_redraw_) {
206 target_tree->ForceRedrawNextActivation(); 208 target_tree->ForceRedrawNextActivation();
207 next_activation_forces_redraw_ = false; 209 next_activation_forces_redraw_ = false;
208 } 210 }
209 211
210 target_tree->PassSwapPromises(&swap_promise_list_); 212 target_tree->PassSwapPromises(&swap_promise_list_);
211 213
212 target_tree->top_controls_layout_height_ = top_controls_layout_height_; 214 // Track the change in top controls height to offset the top_controls_delta
215 // properly. This is so that the top controls offset will be maintained
216 // across height changes.
217 float top_controls_height_delta =
218 target_tree->top_controls_height_ - top_controls_height_;
219
220 target_tree->top_controls_shrink_blink_size_ =
221 top_controls_shrink_blink_size_;
222 target_tree->top_controls_height_ = top_controls_height_;
213 target_tree->top_controls_content_offset_ = top_controls_content_offset_; 223 target_tree->top_controls_content_offset_ = top_controls_content_offset_;
214 target_tree->top_controls_delta_ = 224 target_tree->top_controls_delta_ = target_tree->top_controls_delta_ -
215 target_tree->top_controls_delta_ - 225 target_tree->sent_top_controls_delta_ -
216 target_tree->sent_top_controls_delta_; 226 top_controls_height_delta;
217 target_tree->sent_top_controls_delta_ = 0.f; 227 target_tree->sent_top_controls_delta_ = 0.f;
218 228
219 target_tree->SetPageScaleValues( 229 // Active tree already shares the page_scale_factor object with pending
220 page_scale_factor(), min_page_scale_factor(), max_page_scale_factor(), 230 // tree so only the limits need to be provided.
221 target_tree->page_scale_delta() / target_tree->sent_page_scale_delta()); 231 target_tree->PushPageScaleFactorAndLimits(nullptr, min_page_scale_factor(),
222 target_tree->set_sent_page_scale_delta(1); 232 max_page_scale_factor());
223 233
224 target_tree->pending_page_scale_animation_ = 234 target_tree->pending_page_scale_animation_ =
225 pending_page_scale_animation_.Pass(); 235 pending_page_scale_animation_.Pass();
226 236
227 if (page_scale_layer_ && inner_viewport_scroll_layer_) { 237 if (page_scale_layer_ && inner_viewport_scroll_layer_) {
228 target_tree->SetViewportLayersFromIds( 238 target_tree->SetViewportLayersFromIds(
229 overscroll_elasticity_layer_ ? overscroll_elasticity_layer_->id() 239 overscroll_elasticity_layer_ ? overscroll_elasticity_layer_->id()
230 : Layer::INVALID_ID, 240 : Layer::INVALID_ID,
231 page_scale_layer_->id(), inner_viewport_scroll_layer_->id(), 241 page_scale_layer_->id(), inner_viewport_scroll_layer_->id(),
232 outer_viewport_scroll_layer_ ? outer_viewport_scroll_layer_->id() 242 outer_viewport_scroll_layer_ ? outer_viewport_scroll_layer_->id()
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
305 return; 315 return;
306 316
307 while (current_layer) { 317 while (current_layer) {
308 current_layer->ScrollbarParametersDidChange(false); 318 current_layer->ScrollbarParametersDidChange(false);
309 current_layer = current_layer->parent(); 319 current_layer = current_layer->parent();
310 } 320 }
311 } 321 }
312 322
313 } // namespace 323 } // namespace
314 324
315 void LayerTreeImpl::SetPageScaleFactorAndLimits(float page_scale_factor, 325 float LayerTreeImpl::ClampPageScaleFactorToLimits(
316 float min_page_scale_factor, float max_page_scale_factor) { 326 float page_scale_factor) const {
317 SetPageScaleValues(page_scale_factor, min_page_scale_factor, 327 if (min_page_scale_factor_ && page_scale_factor < min_page_scale_factor_)
318 max_page_scale_factor, page_scale_delta_); 328 page_scale_factor = min_page_scale_factor_;
329 else if (max_page_scale_factor_ && page_scale_factor > max_page_scale_factor_)
330 page_scale_factor = max_page_scale_factor_;
331 return page_scale_factor;
319 } 332 }
320 333
321 void LayerTreeImpl::SetPageScaleDelta(float delta) { 334 void LayerTreeImpl::SetPageScaleOnActiveTree(float active_page_scale) {
322 SetPageScaleValues(page_scale_factor_, min_page_scale_factor_, 335 DCHECK(IsActiveTree());
323 max_page_scale_factor_, delta); 336 if (page_scale_factor()->SetCurrent(
337 ClampPageScaleFactorToLimits(active_page_scale)))
338 DidUpdatePageScale();
324 } 339 }
325 340
326 void LayerTreeImpl::SetPageScaleValues(float page_scale_factor, 341 void LayerTreeImpl::PushPageScaleFromMainThread(float page_scale_factor,
327 float min_page_scale_factor, float max_page_scale_factor, 342 float min_page_scale_factor,
328 float page_scale_delta) { 343 float max_page_scale_factor) {
329 bool page_scale_changed = 344 PushPageScaleFactorAndLimits(&page_scale_factor, min_page_scale_factor,
330 min_page_scale_factor != min_page_scale_factor_ || 345 max_page_scale_factor);
331 max_page_scale_factor != max_page_scale_factor_ || 346 }
332 page_scale_factor != page_scale_factor_; 347
348 void LayerTreeImpl::PushPageScaleFactorAndLimits(const float* page_scale_factor,
349 float min_page_scale_factor,
350 float max_page_scale_factor) {
351 DCHECK(page_scale_factor || IsActiveTree());
352 bool changed_page_scale = false;
353 if (page_scale_factor) {
354 DCHECK(!IsActiveTree() || !layer_tree_host_impl_->pending_tree());
355 changed_page_scale |=
356 page_scale_factor_->PushFromMainThread(*page_scale_factor);
357 }
358 if (IsActiveTree())
359 changed_page_scale |= page_scale_factor_->PushPendingToActive();
360 changed_page_scale |=
361 SetPageScaleFactorLimits(min_page_scale_factor, max_page_scale_factor);
362
363 if (changed_page_scale)
364 DidUpdatePageScale();
365 }
366
367 bool LayerTreeImpl::SetPageScaleFactorLimits(float min_page_scale_factor,
368 float max_page_scale_factor) {
369 if (min_page_scale_factor == min_page_scale_factor_ &&
370 max_page_scale_factor == max_page_scale_factor_)
371 return false;
333 372
334 min_page_scale_factor_ = min_page_scale_factor; 373 min_page_scale_factor_ = min_page_scale_factor;
335 max_page_scale_factor_ = max_page_scale_factor; 374 max_page_scale_factor_ = max_page_scale_factor;
336 page_scale_factor_ = page_scale_factor;
337 375
338 float total = page_scale_factor_ * page_scale_delta; 376 return true;
339 if (min_page_scale_factor_ && total < min_page_scale_factor_) 377 }
340 page_scale_delta = min_page_scale_factor_ / page_scale_factor_;
341 else if (max_page_scale_factor_ && total > max_page_scale_factor_)
342 page_scale_delta = max_page_scale_factor_ / page_scale_factor_;
343 378
344 if (page_scale_delta_ == page_scale_delta && !page_scale_changed) 379 void LayerTreeImpl::DidUpdatePageScale() {
345 return; 380 if (IsActiveTree())
381 page_scale_factor()->SetCurrent(
382 ClampPageScaleFactorToLimits(current_page_scale_factor()));
346 383
347 if (page_scale_delta_ != page_scale_delta) { 384 set_needs_update_draw_properties();
348 page_scale_delta_ = page_scale_delta;
349
350 if (IsActiveTree()) {
351 LayerTreeImpl* pending_tree = layer_tree_host_impl_->pending_tree();
352 if (pending_tree) {
353 DCHECK_EQ(1, pending_tree->sent_page_scale_delta());
354 pending_tree->SetPageScaleDelta(
355 page_scale_delta_ / sent_page_scale_delta_);
356 }
357 }
358
359 set_needs_update_draw_properties();
360 }
361 385
362 if (root_layer_scroll_offset_delegate_) { 386 if (root_layer_scroll_offset_delegate_) {
363 root_layer_scroll_offset_delegate_->UpdateRootLayerState( 387 root_layer_scroll_offset_delegate_->UpdateRootLayerState(
364 TotalScrollOffset(), 388 TotalScrollOffset(), TotalMaxScrollOffset(), ScrollableSize(),
365 TotalMaxScrollOffset(), 389 current_page_scale_factor(), min_page_scale_factor_,
366 ScrollableSize(),
367 total_page_scale_factor(),
368 min_page_scale_factor_,
369 max_page_scale_factor_); 390 max_page_scale_factor_);
370 } 391 }
371 392
372 ForceScrollbarParameterUpdateAfterScaleChange(page_scale_layer()); 393 ForceScrollbarParameterUpdateAfterScaleChange(page_scale_layer());
373 } 394 }
374 395
396 SyncedProperty<ScaleGroup>* LayerTreeImpl::page_scale_factor() {
397 return page_scale_factor_.get();
398 }
399
400 const SyncedProperty<ScaleGroup>* LayerTreeImpl::page_scale_factor() const {
401 return page_scale_factor_.get();
402 }
403
375 gfx::SizeF LayerTreeImpl::ScrollableViewportSize() const { 404 gfx::SizeF LayerTreeImpl::ScrollableViewportSize() const {
376 if (!InnerViewportContainerLayer()) 405 if (!InnerViewportContainerLayer())
377 return gfx::SizeF(); 406 return gfx::SizeF();
378 407
379 return gfx::ScaleSize(InnerViewportContainerLayer()->BoundsForScrolling(), 408 return gfx::ScaleSize(InnerViewportContainerLayer()->BoundsForScrolling(),
380 1.0f / total_page_scale_factor()); 409 1.0f / current_page_scale_factor());
381 } 410 }
382 411
383 gfx::Rect LayerTreeImpl::RootScrollLayerDeviceViewportBounds() const { 412 gfx::Rect LayerTreeImpl::RootScrollLayerDeviceViewportBounds() const {
384 LayerImpl* root_scroll_layer = OuterViewportScrollLayer() 413 LayerImpl* root_scroll_layer = OuterViewportScrollLayer()
385 ? OuterViewportScrollLayer() 414 ? OuterViewportScrollLayer()
386 : InnerViewportScrollLayer(); 415 : InnerViewportScrollLayer();
387 if (!root_scroll_layer || root_scroll_layer->children().empty()) 416 if (!root_scroll_layer || root_scroll_layer->children().empty())
388 return gfx::Rect(); 417 return gfx::Rect();
389 LayerImpl* layer = root_scroll_layer->children()[0]; 418 LayerImpl* layer = root_scroll_layer->children()[0];
390 return MathUtil::MapEnclosingClippedRect(layer->screen_space_transform(), 419 return MathUtil::MapEnclosingClippedRect(layer->screen_space_transform(),
391 gfx::Rect(layer->content_bounds())); 420 gfx::Rect(layer->content_bounds()));
392 } 421 }
393 422
394 static void ApplySentScrollDeltasFromAbortedCommitTo(LayerImpl* layer) { 423 static void ApplySentScrollDeltasFromAbortedCommitTo(LayerImpl* layer) {
395 layer->ApplySentScrollDeltasFromAbortedCommit(); 424 layer->ApplySentScrollDeltasFromAbortedCommit();
396 } 425 }
397 426
398 void LayerTreeImpl::ApplySentScrollAndScaleDeltasFromAbortedCommit() { 427 void LayerTreeImpl::ApplySentScrollAndScaleDeltasFromAbortedCommit() {
399 DCHECK(IsActiveTree()); 428 DCHECK(IsActiveTree());
400 429
401 page_scale_factor_ *= sent_page_scale_delta_; 430 page_scale_factor()->AbortCommit();
402 page_scale_delta_ /= sent_page_scale_delta_;
403 sent_page_scale_delta_ = 1.f;
404 431
405 top_controls_content_offset_ += sent_top_controls_delta_; 432 top_controls_content_offset_ += sent_top_controls_delta_;
406 top_controls_delta_ -= sent_top_controls_delta_; 433 top_controls_delta_ -= sent_top_controls_delta_;
407 sent_top_controls_delta_ = 0.f; 434 sent_top_controls_delta_ = 0.f;
408 435
409 if (!root_layer()) 436 if (!root_layer())
410 return; 437 return;
411 438
412 LayerTreeHostCommon::CallFunctionForSubtree( 439 LayerTreeHostCommon::CallFunctionForSubtree(
413 root_layer(), base::Bind(&ApplySentScrollDeltasFromAbortedCommitTo)); 440 root_layer(), base::Bind(&ApplySentScrollDeltasFromAbortedCommitTo));
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
489 LayerImpl* page_scale_layer = 516 LayerImpl* page_scale_layer =
490 page_scale_layer_ ? page_scale_layer_ : InnerViewportContainerLayer(); 517 page_scale_layer_ ? page_scale_layer_ : InnerViewportContainerLayer();
491 bool can_render_to_separate_surface = 518 bool can_render_to_separate_surface =
492 (layer_tree_host_impl_->GetDrawMode() != 519 (layer_tree_host_impl_->GetDrawMode() !=
493 DRAW_MODE_RESOURCELESS_SOFTWARE); 520 DRAW_MODE_RESOURCELESS_SOFTWARE);
494 521
495 ++render_surface_layer_list_id_; 522 ++render_surface_layer_list_id_;
496 LayerTreeHostCommon::CalcDrawPropsImplInputs inputs( 523 LayerTreeHostCommon::CalcDrawPropsImplInputs inputs(
497 root_layer(), DrawViewportSize(), 524 root_layer(), DrawViewportSize(),
498 layer_tree_host_impl_->DrawTransform(), device_scale_factor(), 525 layer_tree_host_impl_->DrawTransform(), device_scale_factor(),
499 total_page_scale_factor(), page_scale_layer, 526 current_page_scale_factor(), page_scale_layer,
500 resource_provider()->max_texture_size(), settings().can_use_lcd_text, 527 resource_provider()->max_texture_size(), settings().can_use_lcd_text,
501 settings().layers_always_allowed_lcd_text, 528 settings().layers_always_allowed_lcd_text,
502 can_render_to_separate_surface, 529 can_render_to_separate_surface,
503 settings().layer_transforms_should_scale_layer_contents, 530 settings().layer_transforms_should_scale_layer_contents,
504 &render_surface_layer_list_, render_surface_layer_list_id_); 531 &render_surface_layer_list_, render_surface_layer_list_id_);
505 LayerTreeHostCommon::CalculateDrawProperties(&inputs); 532 LayerTreeHostCommon::CalculateDrawProperties(&inputs);
506 } 533 }
507 534
508 { 535 {
509 TRACE_EVENT_BEGIN2("cc", "LayerTreeImpl::UpdateTilePriorities", "IsActive", 536 TRACE_EVENT_BEGIN2("cc", "LayerTreeImpl::UpdateTilePriorities", "IsActive",
(...skipping 393 matching lines...) Expand 10 before | Expand all | Expand 10 after
903 if (OuterViewportScrollLayer()) 930 if (OuterViewportScrollLayer())
904 OuterViewportScrollLayer()->SetScrollOffsetDelegate(NULL); 931 OuterViewportScrollLayer()->SetScrollOffsetDelegate(NULL);
905 inner_viewport_scroll_delegate_proxy_ = nullptr; 932 inner_viewport_scroll_delegate_proxy_ = nullptr;
906 outer_viewport_scroll_delegate_proxy_ = nullptr; 933 outer_viewport_scroll_delegate_proxy_ = nullptr;
907 } 934 }
908 935
909 root_layer_scroll_offset_delegate_ = root_layer_scroll_offset_delegate; 936 root_layer_scroll_offset_delegate_ = root_layer_scroll_offset_delegate;
910 937
911 if (root_layer_scroll_offset_delegate_) { 938 if (root_layer_scroll_offset_delegate_) {
912 root_layer_scroll_offset_delegate_->UpdateRootLayerState( 939 root_layer_scroll_offset_delegate_->UpdateRootLayerState(
913 TotalScrollOffset(), 940 TotalScrollOffset(), TotalMaxScrollOffset(), ScrollableSize(),
914 TotalMaxScrollOffset(), 941 current_page_scale_factor(), min_page_scale_factor(),
915 ScrollableSize(),
916 total_page_scale_factor(),
917 min_page_scale_factor(),
918 max_page_scale_factor()); 942 max_page_scale_factor());
919 943
920 if (inner_viewport_scroll_layer_) { 944 if (inner_viewport_scroll_layer_) {
921 inner_viewport_scroll_delegate_proxy_ = make_scoped_ptr( 945 inner_viewport_scroll_delegate_proxy_ = make_scoped_ptr(
922 new LayerScrollOffsetDelegateProxy(InnerViewportScrollLayer(), 946 new LayerScrollOffsetDelegateProxy(InnerViewportScrollLayer(),
923 root_layer_scroll_offset_delegate_, 947 root_layer_scroll_offset_delegate_,
924 this)); 948 this));
925 inner_viewport_scroll_layer_->SetScrollOffsetDelegate( 949 inner_viewport_scroll_layer_->SetScrollOffsetDelegate(
926 inner_viewport_scroll_delegate_proxy_.get()); 950 inner_viewport_scroll_delegate_proxy_.get());
927 } 951 }
(...skipping 27 matching lines...) Expand all
955 DCHECK(!OuterViewportScrollLayer() || outer_viewport_scroll_delegate_proxy_); 979 DCHECK(!OuterViewportScrollLayer() || outer_viewport_scroll_delegate_proxy_);
956 DCHECK(root_layer_scroll_offset_delegate_); 980 DCHECK(root_layer_scroll_offset_delegate_);
957 981
958 gfx::ScrollOffset offset = 982 gfx::ScrollOffset offset =
959 inner_viewport_scroll_delegate_proxy_->last_set_scroll_offset(); 983 inner_viewport_scroll_delegate_proxy_->last_set_scroll_offset();
960 984
961 if (OuterViewportScrollLayer()) 985 if (OuterViewportScrollLayer())
962 offset += outer_viewport_scroll_delegate_proxy_->last_set_scroll_offset(); 986 offset += outer_viewport_scroll_delegate_proxy_->last_set_scroll_offset();
963 987
964 root_layer_scroll_offset_delegate_->UpdateRootLayerState( 988 root_layer_scroll_offset_delegate_->UpdateRootLayerState(
965 offset, 989 offset, TotalMaxScrollOffset(), ScrollableSize(),
966 TotalMaxScrollOffset(), 990 current_page_scale_factor(), min_page_scale_factor(),
967 ScrollableSize(),
968 total_page_scale_factor(),
969 min_page_scale_factor(),
970 max_page_scale_factor()); 991 max_page_scale_factor());
971 } 992 }
972 993
973 gfx::ScrollOffset LayerTreeImpl::GetDelegatedScrollOffset(LayerImpl* layer) { 994 gfx::ScrollOffset LayerTreeImpl::GetDelegatedScrollOffset(LayerImpl* layer) {
974 DCHECK(root_layer_scroll_offset_delegate_); 995 DCHECK(root_layer_scroll_offset_delegate_);
975 DCHECK(InnerViewportScrollLayer()); 996 DCHECK(InnerViewportScrollLayer());
976 if (layer == InnerViewportScrollLayer() && !OuterViewportScrollLayer()) 997 if (layer == InnerViewportScrollLayer() && !OuterViewportScrollLayer())
977 return root_layer_scroll_offset_delegate_->GetTotalScrollOffset(); 998 return root_layer_scroll_offset_delegate_->GetTotalScrollOffset();
978 999
979 // If we get here, we have both inner/outer viewports, and need to distribute 1000 // If we get here, we have both inner/outer viewports, and need to distribute
(...skipping 512 matching lines...) Expand 10 before | Expand all | Expand 10 after
1492 scoped_ptr<PendingPageScaleAnimation> pending_animation) { 1513 scoped_ptr<PendingPageScaleAnimation> pending_animation) {
1493 pending_page_scale_animation_ = pending_animation.Pass(); 1514 pending_page_scale_animation_ = pending_animation.Pass();
1494 } 1515 }
1495 1516
1496 scoped_ptr<PendingPageScaleAnimation> 1517 scoped_ptr<PendingPageScaleAnimation>
1497 LayerTreeImpl::TakePendingPageScaleAnimation() { 1518 LayerTreeImpl::TakePendingPageScaleAnimation() {
1498 return pending_page_scale_animation_.Pass(); 1519 return pending_page_scale_animation_.Pass();
1499 } 1520 }
1500 1521
1501 } // namespace cc 1522 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_impl.h ('k') | cc/trees/layer_tree_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698