( worker: Awaited<ReturnType<typeof getServiceWorker>>, urlFragment: string, )
| 280 | }, message); |
| 281 | |
| 282 | const togglePanelInTab = async ( |
| 283 | worker: Awaited<ReturnType<typeof getServiceWorker>>, |
| 284 | urlFragment: string, |
| 285 | ) => |
| 286 | worker.evaluate(async (urlFragment) => { |
| 287 | const chromeApi = (globalThis as ChromeGlobal).chrome; |
| 288 | const tabs = await new Promise<Array<{ id?: number; url?: string }>>( |
| 289 | (resolve) => chromeApi.tabs.query({}, resolve), |
| 290 | ); |
| 291 | const tab = tabs.find((tab) => tab.url?.includes(urlFragment)); |
| 292 | if (tab?.id === undefined) throw new Error("capture tab not found"); |
| 293 | await new Promise<void>((resolve) => { |
| 294 | chromeApi.tabs.sendMessage(tab.id as number, { |
| 295 | type: "overlay-panel-toggle", |
| 296 | }); |
| 297 | resolve(); |
| 298 | }); |
| 299 | }, urlFragment); |
| 300 | |
| 301 | const frameWithUrl = (page: Page, fragment: string) => |
| 302 | page.frames().find((frame) => frame.url().includes(fragment)) ?? null; |
no test coverage detected