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

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

Issue 681713002: Update from chromium https://crrev.com/301315 (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 6 years, 1 month 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_host_unittest_context.cc ('k') | cc/trees/single_thread_proxy.h » ('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"
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 : layer_(layer), delegate_(delegate), layer_tree_impl_(layer_tree) {} 44 : layer_(layer), delegate_(delegate), layer_tree_impl_(layer_tree) {}
45 virtual ~LayerScrollOffsetDelegateProxy() {} 45 virtual ~LayerScrollOffsetDelegateProxy() {}
46 46
47 gfx::ScrollOffset last_set_scroll_offset() const { 47 gfx::ScrollOffset last_set_scroll_offset() const {
48 return last_set_scroll_offset_; 48 return last_set_scroll_offset_;
49 } 49 }
50 50
51 // LayerScrollOffsetDelegate implementation. 51 // LayerScrollOffsetDelegate implementation.
52 void SetTotalScrollOffset(const gfx::ScrollOffset& new_offset) override { 52 void SetTotalScrollOffset(const gfx::ScrollOffset& new_offset) override {
53 last_set_scroll_offset_ = new_offset; 53 last_set_scroll_offset_ = new_offset;
54 layer_tree_impl_->UpdateScrollOffsetDelegate();
55 } 54 }
56 55
57 gfx::ScrollOffset GetTotalScrollOffset() override { 56 gfx::ScrollOffset GetTotalScrollOffset() override {
58 return layer_tree_impl_->GetDelegatedScrollOffset(layer_); 57 return layer_tree_impl_->GetDelegatedScrollOffset(layer_);
59 } 58 }
60 59
61 bool IsExternalFlingActive() const override { 60 bool IsExternalFlingActive() const override {
62 return delegate_->IsExternalFlingActive(); 61 return delegate_->IsExternalFlingActive();
63 } 62 }
64 63
64 void Update() const override {
65 layer_tree_impl_->UpdateScrollOffsetDelegate();
66 }
67
65 private: 68 private:
66 LayerImpl* layer_; 69 LayerImpl* layer_;
67 LayerScrollOffsetDelegate* delegate_; 70 LayerScrollOffsetDelegate* delegate_;
68 LayerTreeImpl* layer_tree_impl_; 71 LayerTreeImpl* layer_tree_impl_;
69 gfx::ScrollOffset last_set_scroll_offset_; 72 gfx::ScrollOffset last_set_scroll_offset_;
70 }; 73 };
71 74
72 LayerTreeImpl::LayerTreeImpl(LayerTreeHostImpl* layer_tree_host_impl) 75 LayerTreeImpl::LayerTreeImpl(LayerTreeHostImpl* layer_tree_host_impl)
73 : layer_tree_host_impl_(layer_tree_host_impl), 76 : layer_tree_host_impl_(layer_tree_host_impl),
74 source_frame_number_(-1), 77 source_frame_number_(-1),
(...skipping 848 matching lines...) Expand 10 before | Expand all | Expand 10 after
923 } 926 }
924 927
925 if (outer_viewport_scroll_layer_) { 928 if (outer_viewport_scroll_layer_) {
926 outer_viewport_scroll_delegate_proxy_ = make_scoped_ptr( 929 outer_viewport_scroll_delegate_proxy_ = make_scoped_ptr(
927 new LayerScrollOffsetDelegateProxy(OuterViewportScrollLayer(), 930 new LayerScrollOffsetDelegateProxy(OuterViewportScrollLayer(),
928 root_layer_scroll_offset_delegate_, 931 root_layer_scroll_offset_delegate_,
929 this)); 932 this));
930 outer_viewport_scroll_layer_->SetScrollOffsetDelegate( 933 outer_viewport_scroll_layer_->SetScrollOffsetDelegate(
931 outer_viewport_scroll_delegate_proxy_.get()); 934 outer_viewport_scroll_delegate_proxy_.get());
932 } 935 }
936
937 if (inner_viewport_scroll_layer_)
938 UpdateScrollOffsetDelegate();
933 } 939 }
934 } 940 }
935 941
936 void LayerTreeImpl::OnRootLayerDelegatedScrollOffsetChanged() { 942 void LayerTreeImpl::OnRootLayerDelegatedScrollOffsetChanged() {
937 DCHECK(root_layer_scroll_offset_delegate_); 943 DCHECK(root_layer_scroll_offset_delegate_);
938 if (inner_viewport_scroll_layer_) { 944 if (inner_viewport_scroll_layer_) {
939 inner_viewport_scroll_layer_->DidScroll(); 945 inner_viewport_scroll_layer_->DidScroll();
940 } 946 }
941 if (outer_viewport_scroll_layer_) { 947 if (outer_viewport_scroll_layer_) {
942 outer_viewport_scroll_layer_->DidScroll(); 948 outer_viewport_scroll_layer_->DidScroll();
943 } 949 }
944 } 950 }
945 951
946 void LayerTreeImpl::UpdateScrollOffsetDelegate() { 952 void LayerTreeImpl::UpdateScrollOffsetDelegate() {
947 DCHECK(InnerViewportScrollLayer()); 953 DCHECK(InnerViewportScrollLayer());
954 DCHECK(!OuterViewportScrollLayer() || outer_viewport_scroll_delegate_proxy_);
948 DCHECK(root_layer_scroll_offset_delegate_); 955 DCHECK(root_layer_scroll_offset_delegate_);
949 956
950 gfx::ScrollOffset offset = 957 gfx::ScrollOffset offset =
951 inner_viewport_scroll_delegate_proxy_->last_set_scroll_offset(); 958 inner_viewport_scroll_delegate_proxy_->last_set_scroll_offset();
952 959
953 if (OuterViewportScrollLayer()) 960 if (OuterViewportScrollLayer())
954 offset += outer_viewport_scroll_delegate_proxy_->last_set_scroll_offset(); 961 offset += outer_viewport_scroll_delegate_proxy_->last_set_scroll_offset();
955 962
956 root_layer_scroll_offset_delegate_->UpdateRootLayerState( 963 root_layer_scroll_offset_delegate_->UpdateRootLayerState(
957 offset, 964 offset,
(...skipping 557 matching lines...) Expand 10 before | Expand all | Expand 10 after
1515 page_scale, 1522 page_scale,
1516 duration.InSecondsF()); 1523 duration.InSecondsF());
1517 } 1524 }
1518 } 1525 }
1519 1526
1520 scoped_ptr<PageScaleAnimation> LayerTreeImpl::TakePageScaleAnimation() { 1527 scoped_ptr<PageScaleAnimation> LayerTreeImpl::TakePageScaleAnimation() {
1521 return page_scale_animation_.Pass(); 1528 return page_scale_animation_.Pass();
1522 } 1529 }
1523 1530
1524 } // namespace cc 1531 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_unittest_context.cc ('k') | cc/trees/single_thread_proxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698