Index: cc/trees/property_tree.cc |
diff --git a/cc/trees/property_tree.cc b/cc/trees/property_tree.cc |
index 4738e01da6a8e738c49a16a37c4669b5653049cf..34f8c4989fe2c35cb4c14349a1a029702fcd8bf6 100644 |
--- a/cc/trees/property_tree.cc |
+++ b/cc/trees/property_tree.cc |
@@ -1487,6 +1487,14 @@ SyncedScrollOffset* ScrollTree::synced_scroll_offset(int layer_id) { |
return layer_id_to_scroll_offset_map_[layer_id].get(); |
} |
+const SyncedScrollOffset* ScrollTree::synced_scroll_offset(int layer_id) const { |
+ if (layer_id_to_scroll_offset_map_.find(layer_id) == |
+ layer_id_to_scroll_offset_map_.end()) { |
+ return nullptr; |
+ } |
+ return layer_id_to_scroll_offset_map_.at(layer_id).get(); |
+} |
+ |
gfx::ScrollOffset ScrollTree::PullDeltaForMainThread( |
SyncedScrollOffset* scroll_offset) { |
// TODO(miletus): Remove all this temporary flooring machinery when |
@@ -1593,6 +1601,27 @@ bool ScrollTree::SetScrollOffset(int layer_id, |
return false; |
} |
+bool ScrollTree::UpdateScrollOffsetBaseForTesting( |
+ int layer_id, |
+ const gfx::ScrollOffset& offset) { |
+ DCHECK(!property_trees()->is_main_thread); |
+ bool changed = synced_scroll_offset(layer_id)->PushFromMainThread(offset); |
+ if (property_trees()->is_active) |
+ changed |= synced_scroll_offset(layer_id)->PushPendingToActive(); |
+ return changed; |
+} |
+ |
+const gfx::ScrollOffset ScrollTree::GetScrollOffsetBaseForTesting( |
+ int layer_id) const { |
+ DCHECK(!property_trees()->is_main_thread); |
+ if (synced_scroll_offset(layer_id)) |
+ return property_trees()->is_active |
+ ? synced_scroll_offset(layer_id)->ActiveBase() |
+ : synced_scroll_offset(layer_id)->PendingBase(); |
+ else |
+ return gfx::ScrollOffset(); |
+} |
+ |
PropertyTrees::PropertyTrees() |
: needs_rebuild(true), |
non_root_surfaces_enabled(true), |