fix(browser): improve error handling and code quality

- Fix response.json() called before checking response.ok in popup.js
- Consolidate duplicate onInstalled listeners in background.js
- Remove unnecessary return true from content.js message handler
- Add better error handling for non-JSON responses
- Improve user experience by not auto-opening popup on install

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2026-02-12 03:09:33 +00:00
parent 5d42e03b90
commit 142c19ef50
3 changed files with 19 additions and 21 deletions
+10 -6
View File
@@ -109,18 +109,22 @@ sendFileBtn.addEventListener('click', async () => {
credentials: 'include'
});
const result = await response.json();
if (response.ok) {
const result = await response.json();
showStatus(
`✓ File sent successfully! Task ID: ${result.task_id}\nFilename: ${result.filename}`,
'success'
);
} else {
showStatus(
`Error: ${result.detail || 'Failed to send file'}`,
'error'
);
// Try to parse JSON error, fall back to status text
let errorMessage = 'Failed to send file';
try {
const result = await response.json();
errorMessage = result.detail || errorMessage;
} catch (e) {
errorMessage = `HTTP ${response.status}: ${response.statusText}`;
}
showStatus(`Error: ${errorMessage}`, 'error');
}
} catch (error) {
showStatus(
+9 -13
View File
@@ -4,13 +4,18 @@
chrome.runtime.onInstalled.addListener((details) => {
if (details.reason === 'install') {
console.log('DocuElevate extension installed');
// Open options page on first install
chrome.tabs.create({
url: chrome.runtime.getURL('popup/popup.html')
});
// Note: We don't open the popup automatically to avoid poor UX
// User can click the extension icon to configure
} else if (details.reason === 'update') {
console.log('DocuElevate extension updated');
}
// Create context menu item
chrome.contextMenus.create({
id: 'send-to-docuelevate',
title: 'Send to DocuElevate',
contexts: ['link', 'page']
});
});
// Listen for messages from content script or popup
@@ -59,15 +64,6 @@ async function handleSendUrl(data) {
return await response.json();
}
// Add context menu item for sending URLs
chrome.runtime.onInstalled.addListener(() => {
chrome.contextMenus.create({
id: 'send-to-docuelevate',
title: 'Send to DocuElevate',
contexts: ['link', 'page']
});
});
// Handle context menu clicks
chrome.contextMenus.onClicked.addListener(async (info, tab) => {
if (info.menuItemId === 'send-to-docuelevate') {
-2
View File
@@ -12,9 +12,7 @@ chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
title: document.title
};
sendResponse(pageInfo);
return true; // Indicates response will be sent asynchronously
}
return false; // No async response
});
// Detect if current page is a direct file link