// Copyright 2024 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_FRAME_PAGINATION_STATE_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_FRAME_PAGINATION_STATE_H_ #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h" #include "third_party/blink/renderer/platform/heap/garbage_collected.h" #include "third_party/blink/renderer/platform/wtf/wtf_size_t.h" namespace blink { class ClipPaintPropertyNodeOrAlias; class ComputedStyle; class Document; class LayoutBlockFlow; class LayoutObject; class LayoutView; class ObjectPaintProperties; class PropertyTreeState; class TransformPaintPropertyNodeOrAlias; // Holds structures and state needed during pagination (layout and painting). // // Created before layout for pagination, and destroyed when leaving paginated // layout. // // For each page box that is being laid out, layout objects will be created for // each part of a page box that may need to paint something (page container, // page border box, and any @page margins). // // PaginationState also keeps track of the current page to print, and the paint // properties (translation, scaling and clipping) that are to be applied to the // document contents. Nothing outside the page area (@page margin, border and // padding) is affected by these properties. // // The paint properties are placed in the tree between the properties of the // LayoutView and its children. They are created during pre-paint, and updated // for each page printed. They affect all paginated content, but not things // outside the page area, such as @page decorations / margins. class PaginationState : public GarbageCollected<PaginationState> { … }; } // namespace blink #endif // THIRD_PARTY_BLINK_RENDERER_CORE_FRAME_PAGINATION_STATE_H_