Browse Source

feat: add support for simplePDF in Web-Embeds (#6810)

pull/6470/merge
Benjamin André-Micolon 2 years ago committed by GitHub
parent
commit
9ca27c62c7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      src/components/App.tsx
  2. 10
      src/element/embeddable.ts

2
src/components/App.tsx

@ -941,7 +941,7 @@ class App extends React.Component<AppProps, AppState> { @@ -941,7 +941,7 @@ class App extends React.Component<AppProps, AppState> {
title="Excalidraw Embedded Content"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
allowFullScreen={true}
sandbox="allow-same-origin allow-scripts allow-forms allow-popups allow-popups-to-escape-sandbox allow-presentation"
sandbox="allow-same-origin allow-scripts allow-forms allow-popups allow-popups-to-escape-sandbox allow-presentation allow-downloads"
/>
)}
</div>

10
src/element/embeddable.ts

@ -55,6 +55,7 @@ const ALLOWED_DOMAINS = new Set([ @@ -55,6 +55,7 @@ const ALLOWED_DOMAINS = new Set([
"link.excalidraw.com",
"gist.github.com",
"twitter.com",
"*.simplepdf.eu",
"stackblitz.com",
"val.town",
]);
@ -274,9 +275,16 @@ const validateHostname = ( @@ -274,9 +275,16 @@ const validateHostname = (
const { hostname } = new URL(url);
const bareDomain = hostname.replace(/^www\./, "");
const bareDomainWithFirstSubdomainWildcarded = bareDomain.replace(
/^([^.]+)/,
"*",
);
if (allowedHostnames instanceof Set) {
return ALLOWED_DOMAINS.has(bareDomain);
return (
ALLOWED_DOMAINS.has(bareDomain) ||
ALLOWED_DOMAINS.has(bareDomainWithFirstSubdomainWildcarded)
);
}
if (bareDomain === allowedHostnames.replace(/^www\./, "")) {

Loading…
Cancel
Save