background.js (1116B)
1 /** 2 * @license 3 * Copyright 2024 Google Inc. 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 import { 7 connect, 8 ExtensionTransport, 9 } from 'puppeteer-core/lib/esm/puppeteer/puppeteer-core-browser.js'; 10 11 globalThis.testConnect = async url => { 12 const tab = await chrome.tabs.create({ 13 url, 14 }); 15 16 // Wait for the new tab to load before connecting. 17 await new Promise(resolve => { 18 function listener(tabId, changeInfo) { 19 if (tabId === tab.id && changeInfo.status === 'complete') { 20 chrome.tabs.onUpdated.removeListener(listener); 21 resolve(); 22 } 23 } 24 chrome.tabs.onUpdated.addListener(listener); 25 }); 26 27 const browser = await connect({ 28 transport: await ExtensionTransport.connectTab(tab.id), 29 }); 30 const [page] = await browser.pages(); 31 const title = await page.evaluate(() => { 32 return document.title; 33 }); 34 const frame = await page.waitForFrame(frame => { 35 return frame.url().endsWith('iframe.html'); 36 }); 37 const frameTitle = await frame.evaluate(() => { 38 return document.title; 39 }); 40 await page.waitForNetworkIdle(); 41 return title + '|' + frameTitle; 42 };