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