فهرست منبع

LibWeb: Use the task queue to fire "error" events on scripts

Andreas Kling 3 سال پیش
والد
کامیت
5356de1c58
1فایلهای تغییر یافته به همراه7 افزوده شده و 5 حذف شده
  1. 7 5
      Userland/Libraries/LibWeb/HTML/HTMLScriptElement.cpp

+ 7 - 5
Userland/Libraries/LibWeb/HTML/HTMLScriptElement.cpp

@@ -243,11 +243,12 @@ void HTMLScriptElement::prepare_script()
     if (has_attribute(HTML::AttributeNames::src)) {
         // 1. Let src be the value of the element's src attribute.
         auto src = attribute(HTML::AttributeNames::src);
-        // FIXME: 2. If src is the empty string, queue a task to fire an event named error at the element, and return.
+        // 2. If src is the empty string, queue a task to fire an event named error at the element, and return.
         if (src.is_empty()) {
             dbgln("HTMLScriptElement: Refusing to run script because the src attribute is empty.");
-            // FIXME: Queue a task to do this.
-            dispatch_event(DOM::Event::create(HTML::EventNames::error));
+            queue_an_element_task(HTML::Task::Source::Unspecified, [this] {
+                dispatch_event(DOM::Event::create(HTML::EventNames::error));
+            });
             return;
         }
         // 3. Set the element's from an external file flag.
@@ -258,8 +259,9 @@ void HTMLScriptElement::prepare_script()
         // 5. If the previous step failed, queue a task to fire an event named error at the element, and return. Otherwise, let url be the resulting URL record.
         if (!url.is_valid()) {
             dbgln("HTMLScriptElement: Refusing to run script because the src URL '{}' is invalid.", url);
-            // FIXME: Queue a task to do this.
-            dispatch_event(DOM::Event::create(HTML::EventNames::error));
+            queue_an_element_task(HTML::Task::Source::Unspecified, [this] {
+                dispatch_event(DOM::Event::create(HTML::EventNames::error));
+            });
             return;
         }