mirror of
https://github.com/lightpanda-io/browser.git
synced 2025-10-29 07:03:29 +00:00
browser: dispatch DOMContentLoaded event
This commit is contained in:
@@ -313,10 +313,13 @@ pub const Page = struct {
|
||||
|
||||
// TODO wait for deferred scripts
|
||||
|
||||
// TODO dispatch DOMContentLoaded before the transition to "complete",
|
||||
// dispatch DOMContentLoaded before the transition to "complete",
|
||||
// at the point where all subresources apart from async script elements
|
||||
// have loaded.
|
||||
// https://html.spec.whatwg.org/#reporting-document-loading-status
|
||||
const evt = try parser.eventCreate();
|
||||
try parser.eventInit(evt, "DOMContentLoaded", .{ .bubbles = true, .cancelable = true });
|
||||
_ = try parser.eventTargetDispatchEvent(parser.toEventTarget(parser.DocumentHTML, html_doc), evt);
|
||||
|
||||
// eval async scripts.
|
||||
for (sasync.items) |e| {
|
||||
|
||||
@@ -477,6 +477,11 @@ fn eventTargetVtable(et: *EventTarget) c.dom_event_target_vtable {
|
||||
return getVtable(c.dom_event_target_vtable, EventTarget, et);
|
||||
}
|
||||
|
||||
pub inline fn toEventTarget(comptime T: type, v: *T) *EventTarget {
|
||||
const node_aligned: *align(@alignOf(NodeExternal)) T = @alignCast(v);
|
||||
return @as(*EventTarget, @ptrCast(node_aligned));
|
||||
}
|
||||
|
||||
pub fn eventTargetHasListener(
|
||||
et: *EventTarget,
|
||||
typ: []const u8,
|
||||
|
||||
Reference in New Issue
Block a user