Browse Source

LibWeb: Fire the fail callback on SharedImageRequest when they fail

This fixes an issue where failed image loads would delay the document
load event forever.
Andreas Kling 1 year ago
parent
commit
2a86bd8c91

+ 1 - 0
Tests/LibWeb/Text/expected/failed-img-should-not-delay-load-event-forever.txt

@@ -0,0 +1 @@
+  PASS

+ 7 - 0
Tests/LibWeb/Text/input/failed-img-should-not-delay-load-event-forever.html

@@ -0,0 +1,7 @@
+<script src="include.js"></script>
+<img src="invalid-protocol:foo">
+<script>
+    test(() => {
+        println("PASS");
+    });
+</script>

+ 2 - 0
Userland/Libraries/LibWeb/HTML/SharedImageRequest.cpp

@@ -84,6 +84,8 @@ void SharedImageRequest::fetch_image(JS::Realm& realm, JS::NonnullGCPtr<Fetch::I
 
         if (response->body())
             response->body()->fully_read(realm, move(process_body), move(process_body_error), JS::NonnullGCPtr { realm.global_object() }).release_value_but_fixme_should_propagate_errors();
+        else
+            handle_failed_fetch();
     };
 
     m_state = State::Fetching;