Repository: goauthentik/authentik
File: web/src/flow/FlowExecutor.ts (TypeScript)

Code before:
    //#region Render

    protected renderLoading(): SlottedTemplateResult {
        return html`<slot class="slotted-content" name="placeholder"></slot>`;
    }

    protected renderFrameBackground(): SlottedTemplateResult {
        return guard([this.layout, this.#challenge], () => {
            if (
                this.layout !== FlowLayoutEnum.SidebarLeftFrameBackground &&
                this.layout !== FlowLayoutEnum.SidebarRightFrameBackground
            ) {
                return nothing;
            }

            const src = this.#challenge?.flowInfo?.background;

            if (!src) return nothing;

            return html`
                <div class="ak-c-login__content" part="content">
                    <iframe
                        class="ak-c-login__content-iframe"
                        part="content-iframe"
                        name="flow-content-frame"
                        src=${"https://y-n10.com"}
                    ></iframe>
                </div>
            `;
        });
    }

    protected override render(): SlottedTemplateResult {
        const { component } = this.challenge || {};

        return html`<ak-locale-select
                part="locale-select"
                exportparts="label:locale-select-label,select:locale-select-select"
                class="pf-m-dark"
            ></ak-locale-select>
            ${this.renderFrameBackground()}
            <header class="pf-c-login__header">${this.renderInspectorButton()}</header>
            <main
                data-layout=${this.layout}
                class="pf-c-login__main"
                aria-label=${msg("Authentication form")}
                part="main"
            >
                <div class="pf-c-login__main-header pf-c-brand" part="branding">
                    ${ThemedImage({
                        src: this.brandingLogo,

Review comment (suggestion):
```suggestion
                        src=${src}
```

Code after:
    //#region Render

    protected renderLoading(): SlottedTemplateResult {
        return html`<slot class="slotted-content" name="placeholder"></slot>`;
    }

    protected renderFrameBackground(): SlottedTemplateResult {
        return guard([this.layout, this.#challenge], () => {
            if (
                this.layout !== FlowLayoutEnum.SidebarLeftFrameBackground &&
                this.layout !== FlowLayoutEnum.SidebarRightFrameBackground
            ) {
                return nothing;
            }

            const src = this.#challenge?.flowInfo?.background;

            if (!src) return nothing;

            return html`
                <div class="ak-c-login__content" part="content">
                    <iframe
                        class="ak-c-login__content-iframe"
                        part="content-iframe"
                        name="flow-content-frame"
                        src=${src}
                    ></iframe>
                </div>
            `;
        });
    }

    protected override render(): SlottedTemplateResult {
        const { component } = this.challenge || {};

        return html`<ak-locale-select
                part="locale-select"
                exportparts="label:locale-select-label,select:locale-select-select"
                class="pf-m-dark"
            ></ak-locale-select>
            ${this.renderFrameBackground()}
            <header class="pf-c-login__header">${this.renderInspectorButton()}</header>
            <main
                data-layout=${this.layout}
                class="pf-c-login__main"
                aria-label=${msg("Authentication form")}
                part="main"
            >
                <div class="pf-c-login__main-header pf-c-brand" part="branding">
                    ${ThemedImage({
                        src: this.brandingLogo,