feat(background): 添加录制状态持久化和Tab切换处理
- 实现录制状态存储到本地storage,包括isRecording、recordingTabId、events和startTime - 添加loadRecorderState和saveRecorderState函数用于状态管理 - 监听Tab切换事件,当切换离开录制Tab时发出警告并通知popup - 监听Tab关闭事件,自动停止录制并清理状态 - 添加录制状态同步检查,确保content script状态一致 - 在开始录制前检查是否已在录制状态,避免重复录制 - 添加错误处理返回详细错误信息 - 优化回放HTML样式和脚本加载方式 - 添加Tab切换消息通信协议支持
This commit is contained in:
+4
-2
@@ -9,6 +9,7 @@ export const messages = {
|
||||
to: {
|
||||
stopped: 'popup:stopped',
|
||||
started: 'popup:started',
|
||||
tabChanged: 'popup:tab-changed',
|
||||
},
|
||||
checkStatus: 'popup:check-status',
|
||||
ready: 'popup:ready',
|
||||
@@ -33,10 +34,11 @@ export const messages = {
|
||||
|
||||
interface ProtocolMap {
|
||||
// --- Popup 相关 ---
|
||||
'popup:start': () => { ok: boolean };
|
||||
'popup:stop': () => { ok: boolean };
|
||||
'popup:start': () => { ok: boolean; error?: string };
|
||||
'popup:stop': () => { ok: boolean; error?: string };
|
||||
'popup:started': () => void;
|
||||
'popup:stopped': () => void;
|
||||
'popup:tab-changed': (data: { currentTabId: number; recordingTabId: number | undefined }) => void;
|
||||
'popup:check-status': () => { active: boolean; startTime?: number };
|
||||
'popup:ready': () => void;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user