// Copyright 2014 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_FRAME_OWNER_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_FRAME_FRAME_OWNER_H_ #include "third_party/blink/public/common/frame/frame_policy.h" #include "third_party/blink/public/mojom/frame/color_scheme.mojom-blink.h" #include "third_party/blink/public/mojom/scroll/scrollbar_mode.mojom-blink.h" #include "third_party/blink/public/mojom/timing/resource_timing.mojom-blink-forward.h" #include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/platform/heap/garbage_collected.h" #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h" namespace blink { class Frame; class FrameSwapScope; // Oilpan: all FrameOwner instances are GCed objects. FrameOwner additionally // derives from GarbageCollectedMixin so that Member<FrameOwner> references can // be kept (e.g., Frame::m_owner.) class CORE_EXPORT FrameOwner : public GarbageCollectedMixin { … }; // The purpose of this class is to suppress the propagation of frame owner // properties while a frame is being replaced. In particular, it prevents the // erroneous propagation of is_display_none=true, which would otherwise happen // when the old frame is detached prior to attaching the new frame. This class // will postpone the propagation until the properties are in their new stable // state. // // It is only intended to handle cases where one frame is detached and a new // frame immediately attached. For normal frame unload/teardown, we don't need // to suppress the propagation. class FrameSwapScope { … }; } // namespace blink #endif // THIRD_PARTY_BLINK_RENDERER_CORE_FRAME_FRAME_OWNER_H_