Bug 1901464 part 3: Implement ITextProvider::GetVisibleRanges. r=nlapre
[gecko.git] / remote / test / puppeteer / examples / puppeteer-in-extension / background.js
blob1413b16c2c59d07969fdcf88b5d6ef1bea8c1ba3
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';
11 globalThis.testConnect = async url => {
12 const tab = await chrome.tabs.create({
13 url,
14 });
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();
24 chrome.tabs.onUpdated.addListener(listener);
25 });
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;