LibWeb: Add Node notifications for Document<=>Frame attach/detach

Some DOM nodes will want to do stuff when we attach/detach from a Frame
and this seems like a simple enough way to let them know.
This commit is contained in:
Andreas Kling 2020-06-06 15:07:07 +02:00
parent 07e726729c
commit 285a4165f3
Notes: sideshowbarker 2024-07-19 05:48:03 +09:00
2 changed files with 12 additions and 1 deletions

View file

@ -161,11 +161,19 @@ String Document::title() const
void Document::attach_to_frame(Badge<Frame>, Frame& frame)
{
m_frame = frame.make_weak_ptr();
for_each_in_subtree([&](auto& node) {
node.document_did_attach_to_frame(frame);
return IterationDecision::Continue;
});
layout();
}
void Document::detach_from_frame(Badge<Frame>, Frame&)
void Document::detach_from_frame(Badge<Frame>, Frame& frame)
{
for_each_in_subtree([&](auto& node) {
node.document_will_detach_from_frame(frame);
return IterationDecision::Continue;
});
m_layout_root = nullptr;
m_frame = nullptr;
}

View file

@ -128,6 +128,9 @@ public:
bool is_link() const;
virtual void document_did_attach_to_frame(Frame&) {}
virtual void document_will_detach_from_frame(Frame&) {}
protected:
Node(Document&, NodeType);