19 lines
570 B
TypeScript
19 lines
570 B
TypeScript
"use client";
|
|
|
|
/** Parent validates preview iframe postMessage origins against declared iframe.src + app origin. */
|
|
export function previewFrameTrustsMessage(
|
|
evOrigin: string,
|
|
targetOrigin: string | null,
|
|
iframeSrcAttr: string | undefined,
|
|
): boolean {
|
|
if (typeof window === "undefined") return false;
|
|
if (evOrigin === window.location.origin) return true;
|
|
if (targetOrigin && evOrigin === targetOrigin) return true;
|
|
try {
|
|
if (iframeSrcAttr && evOrigin === new URL(iframeSrcAttr).origin) return true;
|
|
} catch {
|
|
/* ignore */
|
|
}
|
|
return false;
|
|
}
|