| Index: cc/layers/layer_impl.h
|
| diff --git a/cc/layers/layer_impl.h b/cc/layers/layer_impl.h
|
| index 4d2e85310fb23b08bb6659ef7414bade89188fda..2ed76e65d6aab49250dcac3e0d15281c759f5cd2 100644
|
| --- a/cc/layers/layer_impl.h
|
| +++ b/cc/layers/layer_impl.h
|
| @@ -70,6 +70,15 @@ enum DrawMode {
|
| DRAW_MODE_RESOURCELESS_SOFTWARE
|
| };
|
|
|
| +enum ViewportLayerType {
|
| + NOT_VIEWPORT_LAYER,
|
| + INNER_VIEWPORT_CONTAINER,
|
| + OUTER_VIEWPORT_CONTAINER,
|
| + INNER_VIEWPORT_SCROLL,
|
| + OUTER_VIEWPORT_SCROLL,
|
| + LAST_VIEWPORT_LAYER_TYPE = OUTER_VIEWPORT_SCROLL,
|
| +};
|
| +
|
| class CC_EXPORT LayerImpl {
|
| public:
|
| static std::unique_ptr<LayerImpl> Create(LayerTreeImpl* tree_impl, int id) {
|
| @@ -264,12 +273,22 @@ class CC_EXPORT LayerImpl {
|
| // of pixels) due to use of single precision float.
|
| gfx::SizeF BoundsForScrolling() const;
|
|
|
| - // Viewport bounds delta are used for viewport layers and accounts for changes
|
| - // in the viewport layers from browser controls and page scale factors. These
|
| - // deltas are only set on the active tree.
|
| + // Viewport bounds delta are only used for viewport layers and account for
|
| + // changes in the viewport layers from browser controls and page scale
|
| + // factors. These deltas are only set on the active tree.
|
| void SetViewportBoundsDelta(const gfx::Vector2dF& bounds_delta);
|
| gfx::Vector2dF ViewportBoundsDelta() const;
|
|
|
| + void SetViewportLayerType(ViewportLayerType type) {
|
| + // Once set as a viewport layer type, the viewport type should not change.
|
| + DCHECK(viewport_layer_type() == NOT_VIEWPORT_LAYER ||
|
| + viewport_layer_type() == type);
|
| + viewport_layer_type_ = type;
|
| + }
|
| + ViewportLayerType viewport_layer_type() const {
|
| + return static_cast<ViewportLayerType>(viewport_layer_type_);
|
| + }
|
| +
|
| void SetCurrentScrollOffset(const gfx::ScrollOffset& scroll_offset);
|
| gfx::ScrollOffset CurrentScrollOffset() const;
|
|
|
| @@ -503,6 +522,10 @@ class CC_EXPORT LayerImpl {
|
| // (all content was complete).
|
| bool was_ever_ready_since_last_transform_animation_ : 1;
|
|
|
| + static_assert(LAST_VIEWPORT_LAYER_TYPE < (1u << 3),
|
| + "enough bits for ViewportLayerType (viewport_layer_type_)");
|
| + uint8_t viewport_layer_type_ : 3; // ViewportLayerType
|
| +
|
| Region non_fast_scrollable_region_;
|
| Region touch_event_handler_region_;
|
| SkColor background_color_;
|
|
|