diff --git a/webview-ui/src/index.tsx b/webview-ui/src/index.tsx index 4793c0272a..74c7fc66d0 100644 --- a/webview-ui/src/index.tsx +++ b/webview-ui/src/index.tsx @@ -7,6 +7,16 @@ import "../node_modules/@vscode/codicons/dist/codicon.css" import { getHighlighter } from "./utils/highlighter" +// Prevent service worker registration in VSCode webview context +// VSCode webviews don't support service workers and attempting to register them causes errors +if ("serviceWorker" in navigator) { + // Override the register method to prevent any service worker registration attempts + navigator.serviceWorker.register = () => { + console.warn("Service worker registration is disabled in VSCode webview context") + return Promise.reject(new Error("Service worker registration is disabled in VSCode webview")) + } +} + // Initialize Shiki early to hide initialization latency (async) getHighlighter().catch((error: Error) => console.error("Failed to initialize Shiki highlighter:", error)) diff --git a/webview-ui/src/utils/TelemetryClient.ts b/webview-ui/src/utils/TelemetryClient.ts index cf2bfc54a5..f1c98587a8 100644 --- a/webview-ui/src/utils/TelemetryClient.ts +++ b/webview-ui/src/utils/TelemetryClient.ts @@ -19,6 +19,12 @@ class TelemetryClient { capture_pageview: false, capture_pageleave: false, autocapture: false, + // Disable service worker to prevent registration errors in VSCode webview + disable_persistence: false, + disable_session_recording: true, + opt_out_capturing_by_default: false, + // Explicitly disable web vitals and other features that might use service workers + capture_performance: false, }) } else { TelemetryClient.telemetryEnabled = false