diff --git a/src/browser/tests/frames/cross_origin_message_source.html b/src/browser/tests/frames/cross_origin_message_source.html new file mode 100644 index 000000000..87f553bf6 --- /dev/null +++ b/src/browser/tests/frames/cross_origin_message_source.html @@ -0,0 +1,49 @@ + + + + + + diff --git a/src/browser/tests/frames/support/post_to_parent.html b/src/browser/tests/frames/support/post_to_parent.html new file mode 100644 index 000000000..8de6a0c43 --- /dev/null +++ b/src/browser/tests/frames/support/post_to_parent.html @@ -0,0 +1,4 @@ + + diff --git a/src/browser/webapi/event/MessageEvent.zig b/src/browser/webapi/event/MessageEvent.zig index 2bd071472..47188f3b6 100644 --- a/src/browser/webapi/event/MessageEvent.zig +++ b/src/browser/webapi/event/MessageEvent.zig @@ -21,6 +21,7 @@ const lp = @import("lightpanda"); const js = @import("../../js/js.zig"); const Page = @import("../../Page.zig"); +const Frame = @import("../../Frame.zig"); const Event = @import("../Event.zig"); const MessagePort = @import("../MessagePort.zig"); @@ -116,8 +117,9 @@ pub fn getOrigin(self: *const MessageEvent) []const u8 { return self._origin; } -pub fn getSource(self: *const MessageEvent) ?*Window { - return self._source; +pub fn getSource(self: *const MessageEvent, frame: *Frame) ?Window.Access { + const source = self._source orelse return null; + return Window.Access.init(frame.window, source); } pub fn getPorts(self: *const MessageEvent) []const *MessagePort {