1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef ChildFrameDisconnector_h
6 #define ChildFrameDisconnector_h
8 #include "platform/heap/Handle.h"
13 class HTMLFrameOwnerElement
;
16 class ChildFrameDisconnector
{
19 enum DisconnectPolicy
{
24 explicit ChildFrameDisconnector(Node
& root
)
29 void disconnect(DisconnectPolicy
= RootAndDescendants
);
32 void collectFrameOwners(Node
&);
33 void collectFrameOwners(ElementShadow
&);
34 void disconnectCollectedFrameOwners();
35 Node
& root() const { return *m_root
; }
37 WillBeHeapVector
<RefPtrWillBeMember
<HTMLFrameOwnerElement
>, 10> m_frameOwners
;
38 RawPtrWillBeMember
<Node
> m_root
;
43 #endif // ChildFrameDisconnector_h