Skip to content

Commit b026501

Browse files
committed
[extension] fix 'this document requires TrustedHTML assignment'
Related issues: - #253
1 parent 5c6aced commit b026501

File tree

1 file changed

+14
-5
lines changed

1 file changed

+14
-5
lines changed

src/extension/main.js

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,20 @@ function injectScript() {
3434

3535
// DANGER: DO NOT USE GLOBALS HERE WITHOUT `window` OBJECT!! FIREFOX BUG WITH GLOBALS.
3636
const injectorCode = `
37-
const nScript = document.createElement('script');
38-
nScript.innerHTML = ${JSON.stringify(mainCode)};
39-
document.documentElement.append(nScript);
40-
nScript.remove();
41-
`;
37+
// WORKAROUND: TypeError: Failed to set the 'innerHTML' property on 'Element': This document requires 'TrustedHTML' assignment.
38+
if (window.trustedTypes && !trustedTypes.defaultPolicy) {
39+
const passThroughFn = (x) => x;
40+
trustedTypes.createPolicy('default', {
41+
createHTML: passThroughFn,
42+
createScriptURL: passThroughFn,
43+
createScript: passThroughFn,
44+
});
45+
}
46+
const nScript = document.createElement('script');
47+
nScript.innerHTML = ${JSON.stringify(mainCode)};
48+
document.documentElement.append(nScript);
49+
nScript.remove();
50+
`;
4251

4352
const nInjector = document.createElement('injector');
4453
nInjector.setAttribute('onclick', injectorCode);

0 commit comments

Comments
 (0)