mirror of
https://github.com/lightpanda-io/browser.git
synced 2025-12-16 16:28:58 +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 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
|
// at the point where all subresources apart from async script elements
|
||||||
// have loaded.
|
// have loaded.
|
||||||
// https://html.spec.whatwg.org/#reporting-document-loading-status
|
// 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.
|
// eval async scripts.
|
||||||
for (sasync.items) |e| {
|
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);
|
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(
|
pub fn eventTargetHasListener(
|
||||||
et: *EventTarget,
|
et: *EventTarget,
|
||||||
typ: []const u8,
|
typ: []const u8,
|
||||||
|
|||||||
Reference in New Issue
Block a user