From 3d0d280f6a089ce41bf88d46dbaef29666047fb4 Mon Sep 17 00:00:00 2001 From: "Tommy D. Rossi" Date: Wed, 31 Dec 2025 15:45:32 +0100 Subject: [PATCH] Fix context menu duplicate ID crash and add global error logging --- extension/manifest.json | 2 +- extension/package.json | 2 +- extension/src/background.ts | 13 +++++++++++++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/extension/manifest.json b/extension/manifest.json index 4e0ec8c..54e8ffd 100644 --- a/extension/manifest.json +++ b/extension/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 3, "name": "Playwriter MCP", - "version": "0.0.59", + "version": "0.0.61", "description": "Automate your Browser using Cursor, Claude, VS Code. More capable and context efficient than Playwright MCP.", "permissions": ["debugger", "tabGroups", "contextMenus", "tabs"], "host_permissions": [""], diff --git a/extension/package.json b/extension/package.json index 9716f25..b3e0bbb 100644 --- a/extension/package.json +++ b/extension/package.json @@ -1,6 +1,6 @@ { "name": "mcp-extension", - "version": "0.0.55", + "version": "0.0.61", "description": "Playwright MCP Browser Extension", "private": true, "repository": { diff --git a/extension/src/background.ts b/extension/src/background.ts index 6f4b225..e3da9f8 100644 --- a/extension/src/background.ts +++ b/extension/src/background.ts @@ -94,6 +94,18 @@ const logger = { }, } +self.addEventListener('error', (event) => { + const error = event.error + const stack = error?.stack || `${event.message} at ${event.filename}:${event.lineno}:${event.colno}` + logger.error('Uncaught error:', stack) +}) + +self.addEventListener('unhandledrejection', (event) => { + const reason = event.reason + const stack = reason?.stack || String(reason) + logger.error('Unhandled promise rejection:', stack) +}) + function sendMessage(message: any): void { if (ws?.readyState === WebSocket.OPEN) { try { @@ -945,6 +957,7 @@ async function onActionClicked(tab: chrome.tabs.Tab): Promise { resetDebugger() +chrome.contextMenus.remove('playwriter-pin-element').catch(() => {}) chrome.contextMenus.create({ id: 'playwriter-pin-element', title: 'Copy Playwriter Element Reference',