Skip to content

Commit faccd7c

Browse files
committed
fix: prevent service worker registration errors in VSCode webview
- Disable PostHog service worker features that are incompatible with VSCode webviews - Add safeguard to override navigator.serviceWorker.register to prevent any registration attempts - This fixes the "InvalidStateError: Failed to register a ServiceWorker" error Fixes #7233
1 parent 613abe0 commit faccd7c

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

webview-ui/src/index.tsx

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,16 @@ import "../node_modules/@vscode/codicons/dist/codicon.css"
77

88
import { getHighlighter } from "./utils/highlighter"
99

10+
// Prevent service worker registration in VSCode webview context
11+
// VSCode webviews don't support service workers and attempting to register them causes errors
12+
if ("serviceWorker" in navigator) {
13+
// Override the register method to prevent any service worker registration attempts
14+
navigator.serviceWorker.register = () => {
15+
console.warn("Service worker registration is disabled in VSCode webview context")
16+
return Promise.reject(new Error("Service worker registration is disabled in VSCode webview"))
17+
}
18+
}
19+
1020
// Initialize Shiki early to hide initialization latency (async)
1121
getHighlighter().catch((error: Error) => console.error("Failed to initialize Shiki highlighter:", error))
1222

webview-ui/src/utils/TelemetryClient.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,14 @@ class TelemetryClient {
1919
capture_pageview: false,
2020
capture_pageleave: false,
2121
autocapture: false,
22+
// Disable service worker to prevent registration errors in VSCode webview
23+
disable_persistence: false,
24+
disable_session_recording: true,
25+
opt_out_capturing_by_default: false,
26+
// Explicitly disable web vitals and other features that might use service workers
27+
capture_performance: false,
28+
// Disable any features that might attempt service worker registration
29+
__preview_send_client_session_params: false,
2230
})
2331
} else {
2432
TelemetryClient.telemetryEnabled = false

0 commit comments

Comments
 (0)