diff --git a/Userland/Libraries/LibWeb/HTML/HTMLImageElement.cpp b/Userland/Libraries/LibWeb/HTML/HTMLImageElement.cpp
index 76569c551b..fdb2667f46 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLImageElement.cpp
+++ b/Userland/Libraries/LibWeb/HTML/HTMLImageElement.cpp
@@ -38,6 +38,7 @@ namespace Web::HTML {
HTMLImageElement::HTMLImageElement(DOM::Document& document, QualifiedName qualified_name)
: HTMLElement(document, move(qualified_name))
+ , m_image_loader(*this)
{
m_image_loader.on_load = [this] {
this->document().update_layout();
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLObjectElement.cpp b/Userland/Libraries/LibWeb/HTML/HTMLObjectElement.cpp
index 0d8b986e57..812a134bff 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLObjectElement.cpp
+++ b/Userland/Libraries/LibWeb/HTML/HTMLObjectElement.cpp
@@ -36,6 +36,7 @@ namespace Web::HTML {
HTMLObjectElement::HTMLObjectElement(DOM::Document& document, QualifiedName qualified_name)
: HTMLElement(document, move(qualified_name))
+ , m_image_loader(*this)
{
m_image_loader.on_load = [this] {
m_should_show_fallback_content = false;
diff --git a/Userland/Libraries/LibWeb/Loader/ImageLoader.cpp b/Userland/Libraries/LibWeb/Loader/ImageLoader.cpp
index 4d049c8d5f..0fa0f481d1 100644
--- a/Userland/Libraries/LibWeb/Loader/ImageLoader.cpp
+++ b/Userland/Libraries/LibWeb/Loader/ImageLoader.cpp
@@ -27,21 +27,24 @@
#include
#include
#include
+#include
+#include
#include
#include
namespace Web {
-ImageLoader::ImageLoader()
- : m_timer(Core::Timer::construct())
+ImageLoader::ImageLoader(DOM::Element& owner_element)
+ : m_owner_element(owner_element)
+ , m_timer(Core::Timer::construct())
{
}
void ImageLoader::load(const URL& url)
{
m_loading_state = LoadingState::Loading;
- LoadRequest request;
- request.set_url(url);
+
+ auto request = LoadRequest::create_for_url_on_page(url, m_owner_element.document().page());
set_resource(ResourceLoader::the().load_resource(Resource::Type::Image, request));
}
diff --git a/Userland/Libraries/LibWeb/Loader/ImageLoader.h b/Userland/Libraries/LibWeb/Loader/ImageLoader.h
index 1297958366..f4872cdaa0 100644
--- a/Userland/Libraries/LibWeb/Loader/ImageLoader.h
+++ b/Userland/Libraries/LibWeb/Loader/ImageLoader.h
@@ -34,7 +34,7 @@ namespace Web {
class ImageLoader : public ImageResourceClient {
public:
- ImageLoader();
+ ImageLoader(DOM::Element& owner_element);
void load(const URL&);
@@ -69,6 +69,8 @@ private:
Failed,
};
+ DOM::Element& m_owner_element;
+
mutable bool m_visible_in_viewport { false };
size_t m_current_frame_index { 0 };