LibWeb: Allow moving document load event delayers

This allows us to store lists of delayers.
This commit is contained in:
Timothy Flynn 2025-05-22 12:15:04 -04:00 committed by Tim Flynn
commit 874e094ed8
Notes: github-actions[bot] 2025-05-22 21:45:58 +00:00
2 changed files with 20 additions and 2 deletions

View file

@ -15,9 +15,24 @@ DocumentLoadEventDelayer::DocumentLoadEventDelayer(Document& document)
m_document->increment_number_of_things_delaying_the_load_event({});
}
DocumentLoadEventDelayer::DocumentLoadEventDelayer(DocumentLoadEventDelayer&& delayer)
: m_document(move(delayer.m_document))
{
delayer.m_document = nullptr;
}
DocumentLoadEventDelayer& DocumentLoadEventDelayer::operator=(DocumentLoadEventDelayer&& delayer)
{
m_document = move(delayer.m_document);
delayer.m_document = nullptr;
return *this;
}
DocumentLoadEventDelayer::~DocumentLoadEventDelayer()
{
m_document->decrement_number_of_things_delaying_the_load_event({});
if (m_document)
m_document->decrement_number_of_things_delaying_the_load_event({});
}
}

View file

@ -13,11 +13,14 @@
namespace Web::DOM {
class DocumentLoadEventDelayer {
AK_MAKE_NONMOVABLE(DocumentLoadEventDelayer);
AK_MAKE_NONCOPYABLE(DocumentLoadEventDelayer);
public:
explicit DocumentLoadEventDelayer(Document&);
DocumentLoadEventDelayer(DocumentLoadEventDelayer&&);
DocumentLoadEventDelayer& operator=(DocumentLoadEventDelayer&&);
~DocumentLoadEventDelayer();
private: