Skip to content

Commit 2de30d6

Browse files
authored
chore: allow advertising for non-testing (#35723)
1 parent 346d40a commit 2de30d6

File tree

10 files changed

+20
-11
lines changed

10 files changed

+20
-11
lines changed

packages/playwright-core/src/protocol/validator.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -539,6 +539,7 @@ scheme.BrowserTypeLaunchParams = tObject({
539539
args: tOptional(tArray(tString)),
540540
ignoreAllDefaultArgs: tOptional(tBoolean),
541541
ignoreDefaultArgs: tOptional(tArray(tString)),
542+
assistantMode: tOptional(tBoolean),
542543
handleSIGINT: tOptional(tBoolean),
543544
handleSIGTERM: tOptional(tBoolean),
544545
handleSIGHUP: tOptional(tBoolean),
@@ -568,6 +569,7 @@ scheme.BrowserTypeLaunchPersistentContextParams = tObject({
568569
args: tOptional(tArray(tString)),
569570
ignoreAllDefaultArgs: tOptional(tBoolean),
570571
ignoreDefaultArgs: tOptional(tArray(tString)),
572+
assistantMode: tOptional(tBoolean),
571573
handleSIGINT: tOptional(tBoolean),
572574
handleSIGTERM: tOptional(tBoolean),
573575
handleSIGHUP: tOptional(tBoolean),

packages/playwright-core/src/server/android/android.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,7 @@ export class AndroidDevice extends SdkObject {
285285
'--disable-fre',
286286
'--no-default-browser-check',
287287
`--remote-debugging-socket-name=${socketName}`,
288-
...chromiumSwitches,
288+
...chromiumSwitches(),
289289
...this._innerDefaultArgs(options)
290290
];
291291
return chromeArguments;

packages/playwright-core/src/server/bidi/bidiChromium.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ export class BidiChromium extends BrowserType {
104104
throw new Error('Playwright manages remote debugging connection itself.');
105105
if (args.find(arg => !arg.startsWith('-')))
106106
throw new Error('Arguments can not specify page to be opened');
107-
const chromeArguments = [...chromiumSwitches];
107+
const chromeArguments = [...chromiumSwitches(options.assistantMode)];
108108

109109
if (os.platform() === 'darwin') {
110110
// See https://github.com/microsoft/playwright/issues/7362

packages/playwright-core/src/server/chromium/chromium.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,7 @@ export class Chromium extends BrowserType {
296296
throw new Error('Playwright manages remote debugging connection itself.');
297297
if (args.find(arg => !arg.startsWith('-')))
298298
throw new Error('Arguments can not specify page to be opened');
299-
const chromeArguments = [...chromiumSwitches];
299+
const chromeArguments = [...chromiumSwitches(options.assistantMode)];
300300

301301
if (os.platform() === 'darwin') {
302302
// See https://github.com/microsoft/playwright/issues/7362

packages/playwright-core/src/server/chromium/chromiumSwitches.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
// No dependencies as it is used from the Electron loader.
1919

20-
const disabledFeatures = [
20+
const disabledFeatures = (assistantMode?: boolean) => [
2121
// See https://github.com/microsoft/playwright/pull/10380
2222
'AcceptCHFrame',
2323
// See https://github.com/microsoft/playwright/pull/10679
@@ -47,9 +47,10 @@ const disabledFeatures = [
4747
'ThirdPartyStoragePartitioning',
4848
// See https://github.com/microsoft/playwright/issues/16126
4949
'Translate',
50-
];
50+
assistantMode ? 'AutomationControlled' : '',
51+
].filter(Boolean);
5152

52-
export const chromiumSwitches = [
53+
export const chromiumSwitches = (assistantMode?: boolean) => [
5354
'--disable-field-trial-config', // https://source.chromium.org/chromium/chromium/src/+/main:testing/variations/README.md
5455
'--disable-background-networking',
5556
'--disable-background-timer-throttling',
@@ -63,7 +64,7 @@ export const chromiumSwitches = [
6364
'--disable-default-apps',
6465
'--disable-dev-shm-usage',
6566
'--disable-extensions',
66-
'--disable-features=' + disabledFeatures.join(','),
67+
'--disable-features=' + disabledFeatures(assistantMode).join(','),
6768
'--allow-pre-commit-input',
6869
'--disable-hang-monitor',
6970
'--disable-ipc-flooding-protection',
@@ -73,7 +74,6 @@ export const chromiumSwitches = [
7374
'--force-color-profile=srgb',
7475
'--metrics-recording-only',
7576
'--no-first-run',
76-
'--enable-automation',
7777
'--password-store=basic',
7878
'--use-mock-keychain',
7979
// See https://chromium-review.googlesource.com/c/chromium/src/+/2436773
@@ -83,4 +83,5 @@ export const chromiumSwitches = [
8383
'--disable-search-engine-choice-screen',
8484
// https://issues.chromium.org/41491762
8585
'--unsafely-disable-devtools-self-xss-warnings',
86-
];
86+
assistantMode ? '' : '--enable-automation',
87+
].filter(Boolean);

packages/playwright-core/src/server/electron/loader.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ const { chromiumSwitches } = require('../chromium/chromiumSwitches');
2323
// [Electron, -r, loader.js[, --no-sandbox>], --inspect=0, --remote-debugging-port=0, ...args]
2424
process.argv.splice(1, process.argv.indexOf('--remote-debugging-port=0'));
2525

26-
for (const arg of chromiumSwitches) {
26+
for (const arg of chromiumSwitches()) {
2727
const match = arg.match(/--([^=]*)=?(.*)/)!;
2828
app.commandLine.appendSwitch(match[1], match[2]);
2929
}

packages/playwright-core/src/server/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,7 @@ export type EmulatedSize = { viewport: Size, screen: Size };
155155
export type LaunchOptions = channels.BrowserTypeLaunchOptions & {
156156
webSocketPort?: number,
157157
proxyOverride?: ProxySettings,
158+
assistantMode?: boolean,
158159
};
159160

160161
export type BrowserContextOptions = channels.BrowserNewContextOptions & {

packages/protocol/src/channels.d.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -949,6 +949,7 @@ export type BrowserTypeLaunchParams = {
949949
args?: string[],
950950
ignoreAllDefaultArgs?: boolean,
951951
ignoreDefaultArgs?: string[],
952+
assistantMode?: boolean,
952953
handleSIGINT?: boolean,
953954
handleSIGTERM?: boolean,
954955
handleSIGHUP?: boolean,
@@ -975,6 +976,7 @@ export type BrowserTypeLaunchOptions = {
975976
args?: string[],
976977
ignoreAllDefaultArgs?: boolean,
977978
ignoreDefaultArgs?: string[],
979+
assistantMode?: boolean,
978980
handleSIGINT?: boolean,
979981
handleSIGTERM?: boolean,
980982
handleSIGHUP?: boolean,
@@ -1004,6 +1006,7 @@ export type BrowserTypeLaunchPersistentContextParams = {
10041006
args?: string[],
10051007
ignoreAllDefaultArgs?: boolean,
10061008
ignoreDefaultArgs?: string[],
1009+
assistantMode?: boolean,
10071010
handleSIGINT?: boolean,
10081011
handleSIGTERM?: boolean,
10091012
handleSIGHUP?: boolean,
@@ -1086,6 +1089,7 @@ export type BrowserTypeLaunchPersistentContextOptions = {
10861089
args?: string[],
10871090
ignoreAllDefaultArgs?: boolean,
10881091
ignoreDefaultArgs?: string[],
1092+
assistantMode?: boolean,
10891093
handleSIGINT?: boolean,
10901094
handleSIGTERM?: boolean,
10911095
handleSIGHUP?: boolean,

packages/protocol/src/protocol.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -475,6 +475,7 @@ LaunchOptions:
475475
ignoreDefaultArgs:
476476
type: array?
477477
items: string
478+
assistantMode: boolean?
478479
handleSIGINT: boolean?
479480
handleSIGTERM: boolean?
480481
handleSIGHUP: boolean?

tests/webview2/webView2Test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ export const webView2Test = baseTest.extend<TraceViewerFixtures>(traceViewerFixt
4141
shell: true,
4242
env: {
4343
...process.env,
44-
WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS: `--remote-debugging-port=${cdpPort} ${chromiumSwitches.join(' ')}`,
44+
WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS: `--remote-debugging-port=${cdpPort} ${chromiumSwitches().join(' ')}`,
4545
WEBVIEW2_USER_DATA_FOLDER: path.join(fs.realpathSync.native(os.tmpdir()), `playwright-webview2-tests/user-data-dir-${testInfo.workerIndex}`),
4646
}
4747
});

0 commit comments

Comments
 (0)