| Index: cc/trees/layer_tree_impl.h
|
| diff --git a/cc/trees/layer_tree_impl.h b/cc/trees/layer_tree_impl.h
|
| index 46f57fda5b625c775e9c8d0bb1647948137ce6c7..ccff3c2447bfcb393ab6ae4e38a813d4c3dec2b4 100644
|
| --- a/cc/trees/layer_tree_impl.h
|
| +++ b/cc/trees/layer_tree_impl.h
|
| @@ -578,13 +578,14 @@ class CC_EXPORT LayerTreeImpl {
|
| // derived from LayerImpl::scroll_clip_layer_ and exists to avoid O(n) walks.)
|
| std::unordered_map<int, int> clip_scroll_map_;
|
|
|
| - // Maps scroll element ids to scrollbar layer ids. For each scroll layer,
|
| - // there may be 1 or 2 scrollbar layers (for vertical and horizontal). (This
|
| - // is derived from ScrollbarLayerImplBase::scroll_element_id_ and exists to
|
| - // avoid O(n) walks.)
|
| - // TODO(pdr): Refactor this to be more efficient--likely a map where the value
|
| - // is a pair of scrollbar layer ids instead of using a multimap.
|
| - std::multimap<ElementId, int> element_id_to_scrollbar_layer_ids_;
|
| + struct ScrollbarLayerIds {
|
| + int horizontal = Layer::INVALID_ID;
|
| + int vertical = Layer::INVALID_ID;
|
| + };
|
| + // Each scroll layer can have up to two scrollbar layers (vertical and
|
| + // horizontal). This mapping is maintained as part of scrollbar registration.
|
| + base::flat_map<ElementId, ScrollbarLayerIds>
|
| + element_id_to_scrollbar_layer_ids_;
|
|
|
| std::vector<PictureLayerImpl*> picture_layers_;
|
| LayerImplList surface_layers_;
|
|
|