// Copyright 2022 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_ANCHOR_QUERY_MAP_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_ANCHOR_QUERY_MAP_H_ #include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/core/layout/anchor_evaluator_impl.h" #include "third_party/blink/renderer/core/layout/inline/fragment_items_builder.h" #include "third_party/blink/renderer/core/layout/logical_fragment_link.h" #include "third_party/blink/renderer/platform/text/writing_direction_mode.h" namespace blink { class LayoutBox; class LayoutObject; // This computes anchor queries for each containing block by traversing // descendants. // // Normally anchor queries are propagated to the containing block chain during // the layout. However, there are some exceptions. // 1. When the containing block is an inline box, all OOFs are added to their // inline formatting context. // 2. When the containing block is in block fragmentation context, all OOFs are // added to their fragmentainers. // In such cases, traversing descendants is needed to compute anchor queries. class CORE_EXPORT LogicalAnchorQueryMap { … }; } // namespace blink #endif // THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_ANCHOR_QUERY_MAP_H_