diff options
Diffstat (limited to 'cc/trees/property_tree.cc')
-rw-r--r-- | cc/trees/property_tree.cc | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/cc/trees/property_tree.cc b/cc/trees/property_tree.cc index 4738e01..34f8c49 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), |