// Copyright 2017 The Chromium Authors. All rights reserved. // 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_PAINT_NG_NG_PAINT_FRAGMENT_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_NG_NG_PAINT_FRAGMENT_H_ #include #include #include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/core/layout/layout_inline.h" #include "third_party/blink/renderer/core/layout/ng/ng_physical_fragment.h" #include "third_party/blink/renderer/core/scroll/scroll_types.h" #include "third_party/blink/renderer/platform/graphics/paint/display_item_client.h" #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h" namespace blink { class NGBlockBreakToken; class NGInlineCursor; struct LayoutSelectionStatus; struct NGContainerInkOverflow; enum class NGOutlineType; // The NGPaintFragment contains a NGPhysicalFragment and geometry in the paint // coordinate system. // // NGPhysicalFragment is limited to its parent coordinate system for caching and // sharing subtree. This class makes it possible to compute visual rects in the // parent transform node. // // NGPaintFragment is an ImageResourceObserver, which means that it gets // notified when associated images are changed. // This is used for 2 main use cases: // - reply to 'background-image' as we need to invalidate the background in this // case. // (See https://drafts.csswg.org/css-backgrounds-3/#the-background-image) // - image (, svg ) or video (