This commit is contained in:
Timothy Jaeryang Baek
2026-08-23 12:33:34 -04:00
parent c1c81f8127
commit 3c66d639e3
6 changed files with 81 additions and 8 deletions
+5 -1
View File
@@ -251,7 +251,11 @@
$config?.ui?.iframe_csp ?? ''
)}
class="w-full border-0 h-full rounded-none"
sandbox="allow-scripts allow-downloads{($settings?.iframeSandboxAllowForms ?? false)
sandbox="{($settings?.iframeSandboxAllowScripts ?? true)
? 'allow-scripts'
: ''}{($settings?.iframeSandboxAllowDownloads ?? true)
? ' allow-downloads'
: ''}{($settings?.iframeSandboxAllowForms ?? true)
? ' allow-forms'
: ''}{($settings?.iframeSandboxAllowSameOrigin ?? false)
? ' allow-same-origin'
@@ -372,7 +372,11 @@
{/if}
<iframe
src={serveUrl}
sandbox="allow-scripts allow-downloads{($settings?.iframeSandboxAllowForms ?? false)
sandbox="{($settings?.iframeSandboxAllowScripts ?? true)
? 'allow-scripts'
: ''}{($settings?.iframeSandboxAllowDownloads ?? true)
? ' allow-downloads'
: ''}{($settings?.iframeSandboxAllowForms ?? true)
? ' allow-forms'
: ''}{($settings?.iframeSandboxAllowSameOrigin ?? false) ? ' allow-same-origin' : ''}"
class="w-full h-full border-none bg-white"
@@ -384,7 +388,11 @@
{/if}
<iframe
srcdoc={injectCsp(fileContent, $config?.ui?.iframe_csp ?? '')}
sandbox="allow-scripts allow-downloads{($settings?.iframeSandboxAllowForms ?? false)
sandbox="{($settings?.iframeSandboxAllowScripts ?? true)
? 'allow-scripts'
: ''}{($settings?.iframeSandboxAllowDownloads ?? true)
? ' allow-downloads'
: ''}{($settings?.iframeSandboxAllowForms ?? true)
? ' allow-forms'
: ''}{($settings?.iframeSandboxAllowSameOrigin ?? false) ? ' allow-same-origin' : ''}"
class="w-full h-full border-none bg-white"
@@ -215,8 +215,13 @@
{#if document.metadata?.html}
<iframe
class="w-full border-0 h-auto rounded-none"
sandbox="allow-scripts allow-forms{($settings?.iframeSandboxAllowSameOrigin ??
false)
sandbox="{($settings?.iframeSandboxAllowScripts ?? true)
? 'allow-scripts'
: ''}{($settings?.iframeSandboxAllowForms ?? true)
? ' allow-forms'
: ''}{($settings?.iframeSandboxAllowDownloads ?? true)
? ' allow-downloads'
: ''}{($settings?.iframeSandboxAllowSameOrigin ?? false)
? ' allow-same-origin'
: ''}"
srcdoc={injectCsp(document.document, $config?.ui?.iframe_csp ?? '')}
@@ -109,7 +109,11 @@
src={`${WEBUI_BASE_URL}/api/v1/files/${fileId}/content/html`}
title="Content"
frameborder="0"
sandbox="allow-scripts allow-downloads{($settings?.iframeSandboxAllowForms ?? false)
sandbox="{($settings?.iframeSandboxAllowScripts ?? true)
? 'allow-scripts'
: ''}{($settings?.iframeSandboxAllowDownloads ?? true)
? ' allow-downloads'
: ''}{($settings?.iframeSandboxAllowForms ?? true)
? ' allow-forms'
: ''}{($settings?.iframeSandboxAllowSameOrigin ?? false) ? ' allow-same-origin' : ''}"
referrerpolicy="strict-origin-when-cross-origin"
@@ -104,8 +104,10 @@
let webSearch: string | null = null;
let iframeSandboxAllowScripts = true;
let iframeSandboxAllowSameOrigin = false;
let iframeSandboxAllowForms = false;
let iframeSandboxAllowForms = true;
let iframeSandboxAllowDownloads = true;
let showManageFloatingActionButtonsModal = false;
let showManageImageCompressionModal = false;
@@ -302,8 +304,10 @@
userLocation = currentSettings?.userLocation ?? false;
showChatTitleInTab = currentSettings?.showChatTitleInTab ?? true;
iframeSandboxAllowScripts = currentSettings?.iframeSandboxAllowScripts ?? true;
iframeSandboxAllowSameOrigin = currentSettings?.iframeSandboxAllowSameOrigin ?? false;
iframeSandboxAllowForms = currentSettings?.iframeSandboxAllowForms ?? false;
iframeSandboxAllowForms = currentSettings?.iframeSandboxAllowForms ?? true;
iframeSandboxAllowDownloads = currentSettings?.iframeSandboxAllowDownloads ?? true;
stylizedPdfExport = currentSettings?.stylizedPdfExport ?? true;
@@ -1531,6 +1535,29 @@
</p>
</div>
<div>
<div class={settingRowClass}>
<div id="iframe-sandbox-allow-scripts-label" class={settingLabelClass}>
{$i18n.t('iframe Sandbox Allow Scripts')}
</div>
<div class={settingControlClass}>
<Switch
ariaLabelledbyId="iframe-sandbox-allow-scripts-label"
tooltip={true}
bind:state={iframeSandboxAllowScripts}
inherited={isDefaultSetting('iframeSandboxAllowScripts')}
on:change={() => {
saveSettings({ iframeSandboxAllowScripts });
}}
/>
</div>
</div>
<p class={settingDescriptionClass}>
{$i18n.t('Allow scripts inside sandboxed iframes.')}
</p>
</div>
<div>
<div class={settingRowClass}>
<div id="iframe-sandbox-allow-same-origin-label" class={settingLabelClass}>
@@ -1577,6 +1604,29 @@
</p>
</div>
<div>
<div class={settingRowClass}>
<div id="iframe-sandbox-allow-downloads-label" class={settingLabelClass}>
{$i18n.t('iframe Sandbox Allow Downloads')}
</div>
<div class={settingControlClass}>
<Switch
ariaLabelledbyId="iframe-sandbox-allow-downloads-label"
tooltip={true}
bind:state={iframeSandboxAllowDownloads}
inherited={isDefaultSetting('iframeSandboxAllowDownloads')}
on:change={() => {
saveSettings({ iframeSandboxAllowDownloads });
}}
/>
</div>
</div>
<p class={settingDescriptionClass}>
{$i18n.t('Allow downloads inside sandboxed iframes.')}
</p>
</div>
<div class={sectionHeadingClass}>{$i18n.t('Voice')}</div>
<div>
+2
View File
@@ -245,8 +245,10 @@ type Settings = {
splitLargeChunks?(body: any, splitLargeChunks: any): unknown;
backgroundImageUrl?: null;
landingPageMode?: string;
iframeSandboxAllowScripts?: boolean;
iframeSandboxAllowForms?: boolean;
iframeSandboxAllowSameOrigin?: boolean;
iframeSandboxAllowDownloads?: boolean;
scrollOnBranchChange?: boolean;
scrollOnResponseGeneration?: boolean;
showFilesOnTerminalSelect?: boolean;