feat: add runtime permission granting tools and --grant-all-permissions flag
New tools for managing browser permissions at runtime (no restart needed): - browser_grant_permissions: Grant specific or ALL permissions at runtime - Supports `all: true` to grant all common permissions at once - browser_clear_permissions: Revoke all granted permissions - browser_set_geolocation: Set geolocation coordinates at runtime New CLI flag: - --grant-all-permissions: Start with all permissions pre-granted - PLAYWRIGHT_MCP_GRANT_ALL_PERMISSIONS env var support Permissions granted with `all: true` or --grant-all-permissions: - geolocation, notifications, camera, microphone - clipboard-read, clipboard-write - accelerometer, gyroscope, magnetometer - midi, background-sync, ambient-light-sensor - accessibility-events
This commit is contained in:
parent
5e5123d1ac
commit
0031d17f32
4 changed files with 225 additions and 0 deletions
|
|
@ -34,6 +34,7 @@ export type CLIOptions = {
|
|||
consoleOutputFile?: string;
|
||||
device?: string;
|
||||
executablePath?: string;
|
||||
grantAllPermissions?: boolean;
|
||||
headless?: boolean;
|
||||
host?: string;
|
||||
ignoreHttpsErrors?: boolean;
|
||||
|
|
@ -191,6 +192,25 @@ export function configFromCLIOptions(cliOptions: CLIOptions): Config {
|
|||
if (cliOptions.blockServiceWorkers)
|
||||
contextOptions.serviceWorkers = 'block';
|
||||
|
||||
// Grant all permissions if requested
|
||||
if (cliOptions.grantAllPermissions) {
|
||||
contextOptions.permissions = [
|
||||
'geolocation',
|
||||
'notifications',
|
||||
'camera',
|
||||
'microphone',
|
||||
'clipboard-read',
|
||||
'clipboard-write',
|
||||
'accelerometer',
|
||||
'gyroscope',
|
||||
'magnetometer',
|
||||
'midi',
|
||||
'background-sync',
|
||||
'ambient-light-sensor',
|
||||
'accessibility-events',
|
||||
];
|
||||
}
|
||||
|
||||
const result: Config = {
|
||||
browser: {
|
||||
browserName,
|
||||
|
|
@ -236,6 +256,7 @@ function configFromEnv(): Config {
|
|||
options.config = envToString(process.env.PLAYWRIGHT_MCP_CONFIG);
|
||||
options.device = envToString(process.env.PLAYWRIGHT_MCP_DEVICE);
|
||||
options.executablePath = envToString(process.env.PLAYWRIGHT_MCP_EXECUTABLE_PATH);
|
||||
options.grantAllPermissions = envToBoolean(process.env.PLAYWRIGHT_MCP_GRANT_ALL_PERMISSIONS);
|
||||
options.headless = envToBoolean(process.env.PLAYWRIGHT_MCP_HEADLESS);
|
||||
options.host = envToString(process.env.PLAYWRIGHT_MCP_HOST);
|
||||
options.ignoreHttpsErrors = envToBoolean(process.env.PLAYWRIGHT_MCP_IGNORE_HTTPS_ERRORS);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue