sendToContentScript function test exported
Last updated: 2026-03-01T23:25:47.057Z
Metrics
LOC: 24
Complexity: 3
Params: 3
Signature
sendToContentScript(
page: Page,
message: ExtensionMsg,
): : Promise<unknown>
Summary
Sends a message to the content script running on page by going through the background service worker.
Tags
#@returns The response from the content script handler.
Source Code
export async function sendToContentScript(
page: Page,
message: ExtensionMsg,
): Promise<unknown> {
const context = page.context();
let [sw] = context.serviceWorkers();
if (!sw) {
sw = await context.waitForEvent("serviceworker", { timeout: 10_000 });
}
const url = page.url();
return sw.evaluate(
async ({ pageUrl, msg }) => {
const origin = new URL(pageUrl).origin;
const tabs = await chrome.tabs.query({ url: `${origin}/*` });
const tab = tabs[0];
if (!tab?.id) throw new Error(`No tab found for origin: ${origin}`);
return chrome.tabs.sendMessage(tab.id, msg);
},
{ pageUrl: url, msg: message },
);
}
No outgoing dependencies.
Impact (Incoming)
| Source | Type |
|---|---|
| FieldSummary | uses |