AngleSharp by Florian Rappl

<PackageReference Include="AngleSharp" Version="0.8.8" />

 EventTargetExtensions

static class EventTargetExtensions
A set of extensions for EventTarget objects.
using AngleSharp.Dom; using AngleSharp.Dom.Events; using AngleSharp.Html; using System; using System.Threading.Tasks; namespace AngleSharp.Extensions { internal static class EventTargetExtensions { public static bool FireSimpleEvent(this EventTarget target, string eventName, bool bubble = false, bool cancelable = false) { Event event = new Event(); event.IsTrusted = true; Event event2 = event; event2.Init(eventName, bubble, cancelable); return event2.Dispatch(target); } public static bool Fire<T>(this EventTarget target, Action<T> initializer, EventTarget targetOverride = null) where T : Event, new { T val = new T(); val.IsTrusted = true; T obj = val; initializer(obj); return obj.Dispatch(targetOverride ?? target); } public static void FireLoadOrErrorEvent(this EventTarget target, Task task) { if (task.IsFaulted || task.Exception != null) target.FireSimpleEvent(EventNames.Error, false, false); else target.FireSimpleEvent(EventNames.Load, false, false); } } }