(data: TMessage)
| 93 | } |
| 94 | |
| 95 | connect(data: TMessage): Promise<MessageConnect> { |
| 96 | return new Promise((resolve) => { |
| 97 | const body: WindowMessageBody<TMessage> = { |
| 98 | messageId: uuidv4(), |
| 99 | type: "connect", |
| 100 | data, |
| 101 | }; |
| 102 | this.target.postMessage(body, "*"); |
| 103 | // 使用 WindowPostMessage 包装,确保后续 sendMessage 也带 "*" targetOrigin |
| 104 | // 否则沙箱(origin: null)→ offscreen(origin: chrome-extension://)的消息会被丢弃 |
| 105 | resolve(new WindowMessageConnect(body.messageId, this.EE, new WindowPostMessage(this.target))); |
| 106 | }); |
| 107 | } |
| 108 | |
| 109 | onMessage( |
| 110 | callback: (data: TMessage, sendResponse: (data: any) => void, sender: RuntimeMessageSender) => boolean | void |
nothing calls this directly
no test coverage detected