fixed the rendering

This commit is contained in:
Lifei Zhou
2026-07-02 16:07:52 +10:00
parent b1961ce1cb
commit 6e6710ced3
3 changed files with 25 additions and 19 deletions
+2
View File
@@ -1,6 +1,7 @@
import path from 'node:path'; import path from 'node:path';
import { describe, expect, it } from 'vitest'; import { describe, expect, it } from 'vitest';
import { import {
GOOSE_SESSION_PARTITION,
PACKAGED_RENDERER_ORIGIN, PACKAGED_RENDERER_ORIGIN,
packagedRendererUrl, packagedRendererUrl,
rendererContentType, rendererContentType,
@@ -10,6 +11,7 @@ import {
describe('appProtocol', () => { describe('appProtocol', () => {
it('uses the packaged renderer app origin', () => { it('uses the packaged renderer app origin', () => {
expect(PACKAGED_RENDERER_ORIGIN).toBe('goose-app://goose'); expect(PACKAGED_RENDERER_ORIGIN).toBe('goose-app://goose');
expect(GOOSE_SESSION_PARTITION).toBe('persist:goose');
expect(packagedRendererUrl().toString()).toBe('goose-app://goose/index.html'); expect(packagedRendererUrl().toString()).toBe('goose-app://goose/index.html');
}); });
+1
View File
@@ -3,6 +3,7 @@ import path from 'node:path';
export const PACKAGED_RENDERER_PROTOCOL = 'goose-app'; export const PACKAGED_RENDERER_PROTOCOL = 'goose-app';
export const PACKAGED_RENDERER_HOST = 'goose'; export const PACKAGED_RENDERER_HOST = 'goose';
export const PACKAGED_RENDERER_ORIGIN = `${PACKAGED_RENDERER_PROTOCOL}://${PACKAGED_RENDERER_HOST}`; export const PACKAGED_RENDERER_ORIGIN = `${PACKAGED_RENDERER_PROTOCOL}://${PACKAGED_RENDERER_HOST}`;
export const GOOSE_SESSION_PARTITION = 'persist:goose';
export function packagedRendererUrl(): URL { export function packagedRendererUrl(): URL {
return new URL(`${PACKAGED_RENDERER_ORIGIN}/index.html`); return new URL(`${PACKAGED_RENDERER_ORIGIN}/index.html`);
+22 -19
View File
@@ -56,6 +56,7 @@ import installExtension, { REACT_DEVELOPER_TOOLS } from 'electron-devtools-insta
import { BLOCKED_PROTOCOLS, WEB_PROTOCOLS } from './utils/urlSecurity'; import { BLOCKED_PROTOCOLS, WEB_PROTOCOLS } from './utils/urlSecurity';
import { buildCSP } from './utils/csp'; import { buildCSP } from './utils/csp';
import { import {
GOOSE_SESSION_PARTITION,
PACKAGED_RENDERER_ORIGIN, PACKAGED_RENDERER_ORIGIN,
PACKAGED_RENDERER_PROTOCOL, PACKAGED_RENDERER_PROTOCOL,
packagedRendererUrl, packagedRendererUrl,
@@ -848,23 +849,25 @@ function registerPackagedRendererProtocol() {
return; return;
} }
protocol.handle(PACKAGED_RENDERER_PROTOCOL, async (request) => { session
const filePath = resolvePackagedRendererPath(request.url, getPackagedRendererRoot()); .fromPartition(GOOSE_SESSION_PARTITION)
if (!filePath) { .protocol.handle(PACKAGED_RENDERER_PROTOCOL, async (request) => {
return new Response('Not found', { status: 404 }); const filePath = resolvePackagedRendererPath(request.url, getPackagedRendererRoot());
} if (!filePath) {
return new Response('Not found', { status: 404 });
}
try { try {
const data = await fs.readFile(filePath); const data = await fs.readFile(filePath);
return new Response(new Uint8Array(data), { return new Response(new Uint8Array(data), {
headers: { headers: {
'Content-Type': rendererContentType(filePath), 'Content-Type': rendererContentType(filePath),
}, },
}); });
} catch { } catch {
return new Response('Not found', { status: 404 }); return new Response('Not found', { status: 404 });
} }
}); });
packagedRendererProtocolRegistered = true; packagedRendererProtocolRegistered = true;
} }
@@ -1316,7 +1319,7 @@ const createChat = async (
process.env.SECURITY_COMMAND_CLASSIFIER_ENABLED_OVERRIDE, process.env.SECURITY_COMMAND_CLASSIFIER_ENABLED_OVERRIDE,
}), }),
], ],
partition: 'persist:goose', partition: GOOSE_SESSION_PARTITION,
}, },
}); });
} catch (error) { } catch (error) {
@@ -1582,7 +1585,7 @@ const createLauncher = () => {
GOOSE_LOCALE: getConfiguredGooseLocale(), GOOSE_LOCALE: getConfiguredGooseLocale(),
}), }),
], ],
partition: 'persist:goose', partition: GOOSE_SESSION_PARTITION,
}, },
skipTaskbar: true, skipTaskbar: true,
alwaysOnTop: true, alwaysOnTop: true,
@@ -3048,7 +3051,7 @@ async function appMain() {
GOOSE_VERSION: version, GOOSE_VERSION: version,
}), }),
], ],
partition: 'persist:goose', partition: GOOSE_SESSION_PARTITION,
}, },
}); });