1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_MAP_COORDINATES_FLAGS_H_
6 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_MAP_COORDINATES_FLAGS_H_
7 
8 namespace blink {
9 
10 enum MapCoordinatesMode {
11   kIsFixed = 1 << 0,
12 
13   // Only needed in some special cases to intentionally ignore transforms.
14   kIgnoreTransforms = 1 << 2,
15 
16   kTraverseDocumentBoundaries = 1 << 3,
17 
18   // Ignore offset adjustments caused by position:sticky calculations when
19   // walking the chain.
20   kIgnoreStickyOffset = 1 << 4,
21 
22   // Ignore scroll offset from container, i.e. scrolling has no effect on mapped
23   // position.
24   kIgnoreScrollOffset = 1 << 5,
25 
26   // If the local root frame has a remote frame parent, apply the transformation
27   // from the local root frame to the remote main frame.
28   kApplyRemoteMainFrameTransform = 1 << 6,
29 
30   // Whether to use GeometryMapper to optimize for speed. This can only be
31   // used it the callsites are in a lifecycle state >= kPrePaintClean.
32   // This flag is not implemented in all methods that take a MapCoordinatesMode
33   // parameter;  see particular methods for more details.
34   kUseGeometryMapperMode = 1 << 7,
35 };
36 typedef unsigned MapCoordinatesFlags;
37 
38 }  // namespace blink
39 
40 #endif  // THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_MAP_COORDINATES_FLAGS_H_
41