ソースを参照

LibWeb: Make queue_an_element_task() use JS::SafeFunction

Andreas Kling 2 年 前
コミット
874e64d664

+ 2 - 4
Userland/Libraries/LibWeb/DOM/Element.cpp

@@ -552,11 +552,9 @@ void Element::make_html_uppercased_qualified_name()
 }
 
 // https://html.spec.whatwg.org/multipage/webappapis.html#queue-an-element-task
-void Element::queue_an_element_task(HTML::Task::Source source, Function<void()> steps)
+void Element::queue_an_element_task(HTML::Task::Source source, JS::SafeFunction<void()> steps)
 {
-    auto task = HTML::Task::create(source, &document(), [strong_this = JS::make_handle(*this), steps = move(steps)] {
-        steps();
-    });
+    auto task = HTML::Task::create(source, &document(), move(steps));
     HTML::main_thread_event_loop().task_queue().add(move(task));
 }
 

+ 1 - 1
Userland/Libraries/LibWeb/DOM/Element.h

@@ -122,7 +122,7 @@ public:
     void set_custom_properties(HashMap<FlyString, CSS::StyleProperty> custom_properties) { m_custom_properties = move(custom_properties); }
     HashMap<FlyString, CSS::StyleProperty> const& custom_properties() const { return m_custom_properties; }
 
-    void queue_an_element_task(HTML::Task::Source, Function<void()>);
+    void queue_an_element_task(HTML::Task::Source, JS::SafeFunction<void()>);
 
     bool is_void_element() const;
     bool serializes_as_void() const;