Skip to content

Commit

Permalink
feat: enable tab targets (#11099)
Browse files Browse the repository at this point in the history
  • Loading branch information
OrKoN committed Oct 9, 2023
1 parent 9ce204e commit 8324c16
Show file tree
Hide file tree
Showing 8 changed files with 15 additions and 62 deletions.
5 changes: 0 additions & 5 deletions .github/workflows/ci.yml
Expand Up @@ -150,7 +150,6 @@ jobs:
- chrome-headful
- chrome-new-headless
- chrome-bidi
- chrome-new-headless-tab
shard:
- 1/2
- 2/2
Expand All @@ -159,10 +158,6 @@ jobs:
suite: chrome-bidi
- os: macos-latest
suite: chrome-headful
- os: windows-latest
suite: chrome-new-headless-tab
- os: macos-latest
suite: chrome-new-headless-tab
steps:
- name: Check out repository
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0
Expand Down
4 changes: 0 additions & 4 deletions package.json
Expand Up @@ -28,7 +28,6 @@
"test-types": "tsd -t packages/puppeteer",
"test:chrome:headful": "wireit",
"test:chrome:new-headless": "wireit",
"test:chrome:new-headless-tab": "wireit",
"test:chrome:headless": "wireit",
"test:chrome:bidi": "wireit",
"test:chrome:bidi-local": "wireit",
Expand Down Expand Up @@ -76,9 +75,6 @@
"test:chrome:new-headless": {
"command": "npm test -- --test-suite chrome-new-headless"
},
"test:chrome:new-headless-tab": {
"command": "npm test -- --test-suite chrome-new-headless-tab"
},
"test:chrome:bidi": {
"command": "npm test -- --test-suite chrome-bidi"
},
Expand Down
2 changes: 1 addition & 1 deletion packages/browsers/test/src/versions.ts
Expand Up @@ -16,6 +16,6 @@

export const testChromeBuildId = '113.0.5672.0';
export const testChromiumBuildId = '1083080';
export const testFirefoxBuildId = '119.0a1';
export const testFirefoxBuildId = '120.0a1';
export const testChromeDriverBuildId = '115.0.5763.0';
export const testChromeHeadlessShellBuildId = '118.0.5950.0';
13 changes: 4 additions & 9 deletions packages/puppeteer-core/src/cdp/Browser.ts
Expand Up @@ -33,7 +33,6 @@ import {CDPSessionEvent, type CDPSession} from '../api/CDPSession.js';
import type {Page} from '../api/Page.js';
import type {Target} from '../api/Target.js';
import type {Viewport} from '../common/Viewport.js';
import {USE_TAB_TARGET} from '../environment.js';
import {assert} from '../util/assert.js';

import {ChromeTargetManager} from './ChromeTargetManager.js';
Expand Down Expand Up @@ -63,8 +62,7 @@ export class CdpBrowser extends BrowserBase {
closeCallback?: BrowserCloseCallback,
targetFilterCallback?: TargetFilterCallback,
isPageTargetCallback?: IsPageTargetCallback,
waitForInitiallyDiscoveredTargets = true,
useTabTarget = USE_TAB_TARGET
waitForInitiallyDiscoveredTargets = true
): Promise<CdpBrowser> {
const browser = new CdpBrowser(
product,
Expand All @@ -76,8 +74,7 @@ export class CdpBrowser extends BrowserBase {
closeCallback,
targetFilterCallback,
isPageTargetCallback,
waitForInitiallyDiscoveredTargets,
useTabTarget
waitForInitiallyDiscoveredTargets
);
await browser._attach();
return browser;
Expand Down Expand Up @@ -107,8 +104,7 @@ export class CdpBrowser extends BrowserBase {
closeCallback?: BrowserCloseCallback,
targetFilterCallback?: TargetFilterCallback,
isPageTargetCallback?: IsPageTargetCallback,
waitForInitiallyDiscoveredTargets = true,
useTabTarget = USE_TAB_TARGET
waitForInitiallyDiscoveredTargets = true
) {
super();
product = product || 'chrome';
Expand All @@ -134,8 +130,7 @@ export class CdpBrowser extends BrowserBase {
connection,
this.#createTarget,
this.#targetFilterCallback,
waitForInitiallyDiscoveredTargets,
useTabTarget
waitForInitiallyDiscoveredTargets
);
}
this.#defaultContext = new CdpBrowserContext(this.#connection, this);
Expand Down
27 changes: 9 additions & 18 deletions packages/puppeteer-core/src/cdp/ChromeTargetManager.ts
Expand Up @@ -98,22 +98,15 @@ export class ChromeTargetManager
#targetsIdsForInit = new Set<string>();
#waitForInitiallyDiscoveredTargets = true;

// TODO: remove the flag once the testing/rollout is done.
#tabMode: boolean;
#discoveryFilter: Protocol.Target.FilterEntry[];
#discoveryFilter: Protocol.Target.FilterEntry[] = [{}];

constructor(
connection: Connection,
targetFactory: TargetFactory,
targetFilterCallback?: TargetFilterCallback,
waitForInitiallyDiscoveredTargets = true,
useTabTarget = false
waitForInitiallyDiscoveredTargets = true
) {
super();
this.#tabMode = useTabTarget;
this.#discoveryFilter = this.#tabMode
? [{}]
: [{type: 'tab', exclude: true}, {}];
this.#connection = connection;
this.#targetFilterCallback = targetFilterCallback;
this.#targetFactory = targetFactory;
Expand Down Expand Up @@ -166,15 +159,13 @@ export class ChromeTargetManager
waitForDebuggerOnStart: true,
flatten: true,
autoAttach: true,
filter: this.#tabMode
? [
{
type: 'page',
exclude: true,
},
...this.#discoveryFilter,
]
: this.#discoveryFilter,
filter: [
{
type: 'page',
exclude: true,
},
...this.#discoveryFilter,
],
});
this.#finishInitializationIfReady();
await this.#initializeDeferred.valueOrThrow();
Expand Down
10 changes: 0 additions & 10 deletions packages/puppeteer-core/src/environment.ts
Expand Up @@ -27,13 +27,3 @@ export const DEFERRED_PROMISE_DEBUG_TIMEOUT =
typeof process.env['PUPPETEER_DEFERRED_PROMISE_DEBUG_TIMEOUT'] !== 'undefined'
? Number(process.env['PUPPETEER_DEFERRED_PROMISE_DEBUG_TIMEOUT'])
: -1;

/**
* Only used for internal testing.
*
* @internal
*/
export const USE_TAB_TARGET =
typeof process !== 'undefined'
? process.env['PUPPETEER_INTERNAL_TAB_TARGET'] === 'true'
: false;
5 changes: 0 additions & 5 deletions packages/puppeteer-core/src/node/ChromeLauncher.ts
Expand Up @@ -25,7 +25,6 @@ import {

import type {Browser} from '../api/Browser.js';
import {debugError} from '../common/util.js';
import {USE_TAB_TARGET} from '../environment.js';
import {assert} from '../util/assert.js';

import type {
Expand Down Expand Up @@ -175,10 +174,6 @@ export class ChromeLauncher extends ProductLauncher {
'OptimizationHints',
];

if (!USE_TAB_TARGET) {
disabledFeatures.push('Prerender2');
}

const chromeArguments = [
'--allow-pre-commit-input',
'--disable-background-networking',
Expand Down
11 changes: 1 addition & 10 deletions test/TestSuites.json
Expand Up @@ -18,12 +18,6 @@
"parameters": ["chrome", "new-headless", "cdp"],
"expectedLineCoverage": 93
},
{
"id": "chrome-new-headless-tab",
"platforms": ["linux"],
"parameters": ["chrome", "new-headless", "cdp", "tabTarget"],
"expectedLineCoverage": 93
},
{
"id": "firefox-headless",
"platforms": ["linux", "darwin"],
Expand Down Expand Up @@ -69,9 +63,6 @@
"webDriverBiDi": {
"PUPPETEER_PROTOCOL": "webDriverBiDi"
},
"cdp": {},
"tabTarget": {
"PUPPETEER_INTERNAL_TAB_TARGET": "true"
}
"cdp": {}
}
}

0 comments on commit 8324c16

Please sign in to comment.