Skip to content

Commit f71c5e4

Browse files
committed
feat(OUT-2153): add script to prevent Embed / iframe errors from propagating
1 parent 10e8221 commit f71c5e4

1 file changed

Lines changed: 24 additions & 2 deletions

File tree

‎src/app/layout.tsx‎

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1+
import { Footer } from '@/app/components/Footer'
12
import { AppContextProvider } from '@/context'
2-
import './globals.css'
33
import type { Metadata } from 'next'
4-
import { Footer } from './components/Footer'
4+
import Script from 'next/script'
5+
import './globals.css'
56

67
export const metadata: Metadata = {
78
title: 'Client Home App',
@@ -15,6 +16,27 @@ export default async function RootLayout({
1516
}) {
1617
return (
1718
<html lang='en'>
19+
<head>
20+
{/* Make sure the error suppression script runs BEFORE sentry can init */}
21+
<Script id='suppress-iframe-errors' strategy='beforeInteractive'>
22+
{`(function(){
23+
window.addEventListener('error', function(ev){
24+
var t = ev.target;
25+
if (t && t.tagName === 'IFRAME') {
26+
ev.stopImmediatePropagation();
27+
console.log('[iframe load error]', t.src);
28+
return;
29+
}
30+
if (ev instanceof ErrorEvent && ev.message === 'Script error.') {
31+
ev.stopImmediatePropagation();
32+
console.log('[iframe script error]', ev.filename);
33+
return;
34+
}
35+
}, true);
36+
})();`}
37+
</Script>
38+
</head>
39+
1840
<body>
1941
<AppContextProvider>
2042
{children}

0 commit comments

Comments
 (0)