aboutsummaryrefslogtreecommitdiff
path: root/src/index.ts
diff options
context:
space:
mode:
authorUttkarsh <38376852+uttkarsh-26@users.noreply.github.com>2026-10-12 00:09:18 +0530
committerGitHub <noreply@github.com>2026-10-12 00:09:18 +0530
commit2601c90bc0ec54f1e6234d05112c99c458d4ae5e (patch)
treeda4a590aacf80fe87308d63b33bd2d6abdfc28e9 /src/index.ts
parent014de0ec21936a7a2fd64db9d151e73c79bb44ad (diff)
fix: browser_download no longer hijacks the user's own downloads (#33)
Browser.setDownloadBehavior was sent without a browserContextId, so the override applied to the user's default context and outlived the session. browser_download now takes restore:true, tracks the override this process set, and a clean session shutdown restores Chrome's default with a bounded call that is skipped when the browser is already gone. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Diffstat (limited to 'src/index.ts')
-rw-r--r--src/index.ts6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/index.ts b/src/index.ts
index a2e0c11..5818a5d 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -7,6 +7,7 @@ import { readPin } from "./profile/store";
import { type BrowserState, createStatePersister, defaultState, restoreState } from "./state";
import { registerAllTools } from "./registry";
import { cleanupTempDirs } from "./util/truncate";
+import { restoreDownloadBehavior } from "./domains/files";
import { createDaemonTransport } from "./daemon/transport";
import { setDebugClicks } from "./util/debug";
import { asBoolean, asString } from "./util/guards";
@@ -132,6 +133,11 @@ export default function browserHarnessExtension(pi: ExtensionAPI): void {
pi.on("session_shutdown", async () => {
if (client) {
try {
+ // Warn but keep going: detach and tab cleanup still have to run, and a throw here would skip both.
+ const restored = await restoreDownloadBehavior(client);
+ if (!restored.success) {
+ console.warn(`[pi-browser-harness] ${restored.error.message}`);
+ }
await client.detach();
await client.closeOwnedTabs();
} catch (e) {