summaryrefslogtreecommitdiffstats
path: root/cc/trees/property_tree.cc
diff options
context:
space:
mode:
Diffstat (limited to 'cc/trees/property_tree.cc')
-rw-r--r--cc/trees/property_tree.cc29
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),