diff --git a/Userland/Libraries/LibWeb/HTML/DataTransfer.cpp b/Userland/Libraries/LibWeb/HTML/DataTransfer.cpp index 9686a57674d..930ce99ccd0 100644 --- a/Userland/Libraries/LibWeb/HTML/DataTransfer.cpp +++ b/Userland/Libraries/LibWeb/HTML/DataTransfer.cpp @@ -4,6 +4,7 @@ * SPDX-License-Identifier: BSD-2-Clause */ +#include #include #include #include @@ -12,6 +13,7 @@ #include #include #include +#include #include #include @@ -51,6 +53,11 @@ DataTransfer::DataTransfer(JS::Realm& realm, NonnullRefPtr drag_d : PlatformObject(realm) , m_associated_drag_data_store(move(drag_data_store)) { + for (auto const& [i, item] : enumerate(m_associated_drag_data_store->item_list())) { + auto data_transfer_item = DataTransferItem::create(realm, *this, i); + m_item_list.append(data_transfer_item); + } + update_data_transfer_types_list(); } @@ -66,6 +73,7 @@ void DataTransfer::visit_edges(JS::Cell::Visitor& visitor) { Base::visit_edges(visitor); visitor.visit(m_items); + visitor.visit(m_item_list); } void DataTransfer::set_drop_effect(String const& drop_effect) diff --git a/Userland/Libraries/LibWeb/HTML/DataTransfer.h b/Userland/Libraries/LibWeb/HTML/DataTransfer.h index eb6941df74d..b4ad54a2f70 100644 --- a/Userland/Libraries/LibWeb/HTML/DataTransfer.h +++ b/Userland/Libraries/LibWeb/HTML/DataTransfer.h @@ -74,6 +74,7 @@ private: // https://html.spec.whatwg.org/multipage/dnd.html#dom-datatransfer-items JS::GCPtr m_items; + Vector> m_item_list; // https://html.spec.whatwg.org/multipage/dnd.html#concept-datatransfer-types Vector m_types;