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

Unified Diff: cc/layers/layer_impl.cc

Issue 1038173002: Refactor delegated scrolling in LayerImpl (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove "scrollOffsetDelegate" Created 5 years, 8 months 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 side-by-side diff with in-line comments
Download patch
Index: cc/layers/layer_impl.cc
diff --git a/cc/layers/layer_impl.cc b/cc/layers/layer_impl.cc
index 3ffeb730bfcb35e7c2316b5838e8610ea016cca3..678ac31fc23b6b778fb05c10256110df14a0feeb 100644
--- a/cc/layers/layer_impl.cc
+++ b/cc/layers/layer_impl.cc
@@ -16,7 +16,6 @@
#include "cc/debug/layer_tree_debug_state.h"
#include "cc/debug/micro_benchmark_impl.h"
#include "cc/debug/traced_value.h"
-#include "cc/input/layer_scroll_offset_delegate.h"
#include "cc/layers/layer_utils.h"
#include "cc/layers/painted_scrollbar_layer_impl.h"
#include "cc/output/copy_output_request.h"
@@ -49,7 +48,7 @@ LayerImpl::LayerImpl(LayerTreeImpl* tree_impl,
layer_id_(id),
layer_tree_impl_(tree_impl),
scroll_offset_(scroll_offset),
- scroll_offset_delegate_(nullptr),
+ scroll_offset_listener_(nullptr),
scroll_clip_layer_(nullptr),
should_scroll_on_main_thread_(false),
have_wheel_event_handlers_(false),
@@ -165,7 +164,7 @@ void LayerImpl::SetScrollParent(LayerImpl* parent) {
return;
// Having both a scroll parent and a scroll offset delegate is unsupported.
- DCHECK(!scroll_offset_delegate_);
+ DCHECK(!scroll_offset_listener_);
if (parent)
DCHECK_EQ(layer_tree_impl()->LayerById(parent->id()), parent);
@@ -385,8 +384,6 @@ void LayerImpl::GetContentsResourceId(ResourceProvider::ResourceId* resource_id,
}
gfx::Vector2dF LayerImpl::ScrollBy(const gfx::Vector2dF& scroll) {
- RefreshFromScrollDelegate();
-
gfx::ScrollOffset adjusted_scroll(scroll);
if (layer_tree_impl()->settings().use_pinch_virtual_viewport) {
if (!user_scrollable_horizontal_)
@@ -1108,19 +1105,19 @@ void LayerImpl::SetContentsScale(float contents_scale_x,
NoteLayerPropertyChanged();
}
-void LayerImpl::SetScrollOffsetDelegate(
- ScrollOffsetDelegate* scroll_offset_delegate) {
- // Having both a scroll parent and a scroll offset delegate is unsupported.
+void LayerImpl::SetExternalScrollOffsetListener(
+ ExternalScrollOffsetListener* scroll_offset_listener) {
+ // Having both a scroll parent and an external scroll offset listener is
+ // unsupported.
DCHECK(!scroll_parent_);
- RefreshFromScrollDelegate();
- scroll_offset_delegate_ = scroll_offset_delegate;
- if (scroll_offset_delegate_)
- scroll_offset_delegate_->SetCurrentScrollOffset(CurrentScrollOffset());
+ scroll_offset_listener_ = scroll_offset_listener;
+ if (scroll_offset_listener_)
+ scroll_offset_listener_->DidUpdateScrollOffset();
}
bool LayerImpl::IsExternalFlingActive() const {
- return scroll_offset_delegate_ &&
- scroll_offset_delegate_->IsExternalFlingActive();
+ return scroll_offset_listener_ &&
+ scroll_offset_listener_->IsExternalFlingActive();
}
void LayerImpl::SetCurrentScrollOffset(const gfx::ScrollOffset& scroll_offset) {
@@ -1141,8 +1138,6 @@ void LayerImpl::PushScrollOffsetFromMainThreadAndClobberActiveValue(
}
gfx::ScrollOffset LayerImpl::PullDeltaForMainThread() {
- RefreshFromScrollDelegate();
-
// TODO(miletus): Remove all this temporary flooring machinery when
// Blink fully supports fractional scrolls.
gfx::ScrollOffset current_offset = CurrentScrollOffset();
@@ -1158,13 +1153,6 @@ gfx::ScrollOffset LayerImpl::PullDeltaForMainThread() {
return delta;
}
-void LayerImpl::RefreshFromScrollDelegate() {
- if (scroll_offset_delegate_) {
- SetCurrentScrollOffset(
- gfx::ScrollOffset(scroll_offset_delegate_->GetCurrentScrollOffset()));
- }
-}
-
gfx::ScrollOffset LayerImpl::CurrentScrollOffset() const {
return scroll_offset_->Current(IsActive());
}
@@ -1207,12 +1195,9 @@ void LayerImpl::PushScrollOffset(const gfx::ScrollOffset* scroll_offset) {
}
void LayerImpl::DidUpdateScrollOffset() {
- if (scroll_offset_delegate_) {
- scroll_offset_delegate_->SetCurrentScrollOffset(CurrentScrollOffset());
- scroll_offset_delegate_->Update();
- RefreshFromScrollDelegate();
+ if (scroll_offset_listener_) {
+ scroll_offset_listener_->DidUpdateScrollOffset();
}
-
NoteLayerPropertyChangedForSubtree();
ScrollbarParametersDidChange(false);
}

Powered by Google App Engine
This is Rietveld 408576698