feat: 重构录制逻辑,添加错误处理,更新消息常量,使用 terser 进行构建压缩

This commit is contained in:
雨霖铃
2026-02-03 23:42:28 +08:00
parent 37f8ef9c2b
commit e6f41032c8
8 changed files with 123 additions and 49 deletions
+25 -6
View File
@@ -19,11 +19,15 @@ export default defineBackground(() => {
}
// 注入 content script
const res = browser.scripting.executeScript({
target: { tabId: tab.id },
files: ['/content-scripts/content.js'],
});
console.log('Content script injected on installed/updated:', res);
try {
const res = await browser.scripting.executeScript({
target: { tabId: tab.id },
files: ['/content-scripts/content.js'],
});
console.log('Content script injected on installed/updated:', res);
} catch (error) {
console.error('Failed to inject content script:', error);
}
}
});
@@ -36,6 +40,7 @@ export default defineBackground(() => {
sendResponse({ ok: true });
})
.catch(() => {
console.error('Failed to check status in content script');
sendResponse({ ok: false });
});
return true;
@@ -49,6 +54,7 @@ export default defineBackground(() => {
sendResponse({ ok: true });
})
.catch(() => {
console.error('Failed to start recording in content script');
sendResponse({ ok: false });
});
}
@@ -68,6 +74,14 @@ export default defineBackground(() => {
return true;
});
// 监听来自 content script 的消息
chrome.runtime.onMessage.addListener((msg, _sender, sendResponse) => {
if (msg.type === messages.content.from.saveTrackeEvents) {
console.log('[bg] saveTrackeEvents received:', msg.payload);
sendResponse({ ok: true });
}
});
async function sendToActiveTab(message: {
type: string;
data?: unknown;
@@ -80,6 +94,11 @@ export default defineBackground(() => {
});
const activeTab = activeTabs[0];
const sendTo = message.activeTabId || activeTab.id;
await chrome.tabs.sendMessage(sendTo!, message);
try {
await chrome.tabs.sendMessage(sendTo!, message);
} catch (error) {
console.error('Error sending message to active tab:', error);
throw error;
}
}
});
+6 -1
View File
@@ -1,10 +1,13 @@
import '../.wxt/types/imports.d.ts';
import { createRecorder } from '@/utils/useRecorder';
export default defineContentScript({
// matches: ['*://*.google.com/*'],
matches: ['<all_urls>'],
runAt: 'document_start',
main() {
const recorder = createRecorder();
// 监听来自 background script 的消息
chrome.runtime.onMessage.addListener((msg: { type: string }, _sender, sendResponse) => {
if (msg.type === messages.content.checkStatus) {
@@ -16,12 +19,14 @@ export default defineContentScript({
if (msg.type === messages.content.to.startRecording) {
// 开始录制的处理逻辑
console.log('[content] startRecording received');
recorder.startRecord(messages.content.from.saveTrackeEvents);
sendResponse({ ok: true });
}
if (msg.type === messages.content.to.stopRecording) {
// 停止录制的处理逻辑
console.log('[content] stopRecording received');
recorder.stopRecord();
sendResponse({ ok: true });
}