Hay una etiqueta de secuencia de comandos que se carga dinámicamente en el DOM de esta manera,
const scriptCode = ` (function() { var APP_ID = "${intercomAppId}"; (function(){var w=window;var ic=w.Intercom;if(typeof ic==="function"){ic('reattach_activator');ic('update',w.intercomSettings);}else{var d=document;var i=function(){ic(arguments);};iq=[];ic=function(args){iqpush(args);};w.Intercom=i;var l=function(){var s=d.createElement('script');s.type='text/javascript';s.async=true;s.src='https://widget.intercom.io/widget/' + APP_ID;var x=d.getElementsByTagName('script')[0];x.parentNode.insertBefore(s, x);};if(document.readyState==='complete'){l();}else if(w.attachEvent){w.attachEvent('onload',l);}else{w.addEventListener('load',l,false);}}})(); })() `; let intercomPolicy; if (window.trustedTypes) { intercomPolicy = window.trustedTypes.createPolicy("Intercom", { createHTML: (html) => html, }); } const sanitizedScriptCode = intercomPolicy?.createHTML?.(scriptCode) ?? scriptCode; const script = document.createElement("script"); script.innerHTML = sanitizedScriptCode; document.body.appendChild(script); Tenga en cuenta que el script del script agrega una etiqueta de script. Aunque creo que el error se informa en el script "externo" porque no se agrega al DOM. Tenía la esperanza de que lo anterior fuera suficiente, pero no lo es, Chrome se niega a cargar este script,
This document requires 'TrustedScript' assignment. An HTMLScriptElement was directly modified and will not be executed.No estoy seguro si está relacionado, pero el sitio tiene habilitado CSP en modo de solo informe ,
content-security-policy-report-only: default-src 'none'; script-src 'self'; img-src 'self'; style-src https://fonts.googleapis.com 'self' 'unsafe-inline'; font-src https://fonts.gstatic.com; frame-ancestors 'none'; form-action 'self'; upgrade-insecure-requests; object-src 'none'; base-uri 'none'; require-trusted-types-for 'script'; manifest-src 'self'; connect-src 'self'Firefox informa una violación de CSP, pero aún ejecuta el script como se esperaba dado que está en modo de solo informe.
¿Es esto un error en Chrome? ¿Por qué Chrome se niega a ejecutar el script si CSP es solo para informes ?
Error de cromo:
Error de Firefox (pero el script aún se ejecuta):