// Copyright 2016 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_PAINT_FIND_PROPERTIES_NEEDING_UPDATE_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_FIND_PROPERTIES_NEEDING_UPDATE_H_ #include "base/dcheck_is_on.h" #if DCHECK_IS_ON() #include "base/check_op.h" #include "third_party/blink/renderer/core/layout/layout_object.h" #include "third_party/blink/renderer/core/paint/object_paint_properties.h" #include "third_party/blink/renderer/core/paint/paint_property_tree_builder.h" #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h" namespace blink { // This file contains a scope class for catching cases where paint properties // needed an update but were not marked as such. If paint properties will // change, the object must be marked as needing a paint property update // using LayoutObject::SetNeedsPaintPropertyUpdate() or by forcing a subtree // update (see: PaintPropertyTreeBuilderContext::force_subtree_update). // // This scope class works by marking the paint property state as immutable // before rebuilding properties, forcing the properties to get updated, which // causes object paint properties to DCHECK that property values are not // changed. class FindPropertiesNeedingUpdateScope { … }; } // namespace blink #endif // DCHECK_IS_ON() #endif // THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_FIND_PROPERTIES_NEEDING_UPDATE_H_