50034331bc
1、统一消息系统:将 background、content 和 popup 的通信方式从原生的 chrome.runtime 迁移至 @webext-core/messaging,修复了消息回调返回 undefined 的问题。 2、优化组件结构:将通用组件从 entrypoints/popup/components 迁移至根目录 components,并使用 MUI 重构了 Navbar。 3、同步更新:调整了录制工具 (useRecorder) 和各页面组件(RecordeReplayPage, TestPage等),以适配新的消息协议和组件路径。
46 lines
1.2 KiB
TypeScript
46 lines
1.2 KiB
TypeScript
import '../.wxt/types/imports.d.ts';
|
|
import { createRecorder } from '@/utils/useRecorder';
|
|
import { onMessage } from '@/utils/messages.tsx';
|
|
|
|
export default defineContentScript({
|
|
// matches: ['*://*.google.com/*'],
|
|
matches: ['<all_urls>'],
|
|
runAt: 'document_start',
|
|
main() {
|
|
const recorder = createRecorder();
|
|
let isRecording = false;
|
|
|
|
onMessage('content:check-status', () => {
|
|
console.log(`[content]${isRecording}`);
|
|
return isRecording;
|
|
});
|
|
|
|
onMessage('content:start-recording', async () => {
|
|
try {
|
|
const started = await recorder.startRecord();
|
|
if (started) {
|
|
isRecording = true;
|
|
return { ok: true };
|
|
} else {
|
|
return { ok: false, error: 'Failed to start recorder' };
|
|
}
|
|
} catch (error) {
|
|
console.error('Error handling start recording:', error);
|
|
return { ok: false };
|
|
}
|
|
});
|
|
|
|
onMessage('content:stop-recording', () => {
|
|
try {
|
|
console.log('[content] stopRecording received');
|
|
recorder.stopRecord();
|
|
isRecording = false;
|
|
return { ok: true };
|
|
} catch (error) {
|
|
console.error('Error handling stop recording:', error);
|
|
return { ok: false };
|
|
}
|
|
});
|
|
},
|
|
});
|