Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions cli/src/commands.rs
Original file line number Diff line number Diff line change
Expand Up @@ -518,9 +518,11 @@ fn parse_command_inner(args: &[String], flags: &Flags) -> Result<Value, ParseErr
}
if let Some(q) = flags.screenshot_quality {
cmd["quality"] = json!(q);
if flags.screenshot_format.as_deref() != Some("jpeg") {
if flags.screenshot_format.as_deref() != Some("jpeg")
&& flags.screenshot_format.as_deref() != Some("webp")
{
eprintln!(
"{} --screenshot-quality is ignored for PNG; use --screenshot-format jpeg",
"{} --screenshot-quality is ignored for PNG; use --screenshot-format jpeg or webp",
color::warning_indicator()
);
}
Expand Down
6 changes: 3 additions & 3 deletions cli/src/flags.rs
Original file line number Diff line number Diff line change
Expand Up @@ -433,7 +433,7 @@ pub fn parse_flags(args: &[String]) -> Flags {
screenshot_format: env::var("AGENT_BROWSER_SCREENSHOT_FORMAT")
.ok()
.or(config.screenshot_format)
.filter(|s| s == "png" || s == "jpeg"),
.filter(|s| s == "png" || s == "jpeg" || s == "webp"),
idle_timeout: parse_idle_timeout_value(
env::var("AGENT_BROWSER_IDLE_TIMEOUT_MS").ok(),
"AGENT_BROWSER_IDLE_TIMEOUT_MS",
Expand Down Expand Up @@ -709,11 +709,11 @@ pub fn parse_flags(args: &[String]) -> Flags {
}
"--screenshot-format" => {
if let Some(s) = args.get(i + 1) {
if s == "png" || s == "jpeg" {
if s == "png" || s == "jpeg" || s == "webp" {
flags.screenshot_format = Some(s.clone());
} else {
eprintln!(
"{} --screenshot-format must be png or jpeg, got '{}'",
"{} --screenshot-format must be png, jpeg, or webp, got '{}'",
color::warning_indicator(),
s
);
Expand Down
2 changes: 2 additions & 0 deletions cli/src/native/cdp/chrome.rs
Original file line number Diff line number Diff line change
Expand Up @@ -564,6 +564,7 @@ pub fn find_chrome() -> Option<PathBuf> {
"/Applications/Google Chrome Canary.app/Contents/MacOS/Google Chrome Canary",
"/Applications/Chromium.app/Contents/MacOS/Chromium",
"/Applications/Brave Browser.app/Contents/MacOS/Brave Browser",
"/Applications/Helium.app/Contents/MacOS/Helium",
];
for c in &candidates {
let p = PathBuf::from(c);
Expand Down Expand Up @@ -697,6 +698,7 @@ pub fn get_chrome_user_data_dirs() -> Vec<PathBuf> {
"Google/Chrome Canary",
"Chromium",
"BraveSoftware/Brave-Browser",
"Helium",
] {
dirs.push(base.join(name));
}
Expand Down
10 changes: 5 additions & 5 deletions cli/src/native/screenshot.rs
Original file line number Diff line number Diff line change
Expand Up @@ -149,10 +149,10 @@ pub async fn take_screenshot(
Vec::new()
};

let ext = if options.format == "jpeg" {
"jpg"
} else {
"png"
let ext = match options.format.as_str() {
"jpeg" => "jpg",
"webp" => "webp",
_ => "png",
};
let path = save_screenshot(
&base64,
Expand All @@ -177,7 +177,7 @@ async fn capture_screenshot_base64(
) -> Result<String, String> {
let mut params = CaptureScreenshotParams {
format: Some(options.format.clone()),
quality: if options.format == "jpeg" {
quality: if options.format == "jpeg" || options.format == "webp" {
options.quality.or(Some(80))
} else {
None
Expand Down
8 changes: 4 additions & 4 deletions cli/src/output.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1493,9 +1493,9 @@ Options:
Supported on Chromium and Lightpanda.
--screenshot-dir <path> Default output directory for screenshots
(or AGENT_BROWSER_SCREENSHOT_DIR env)
--screenshot-quality <0-100> JPEG quality (0-100, only applies to jpeg format)
--screenshot-quality <0-100> JPEG/WebP quality (0-100, only applies to jpeg/webp format)
(or AGENT_BROWSER_SCREENSHOT_QUALITY env)
--screenshot-format <fmt> Image format: png (default) or jpeg
--screenshot-format <fmt> Image format: png (default), jpeg, or webp
(or AGENT_BROWSER_SCREENSHOT_FORMAT env)

Global Options:
Expand Down Expand Up @@ -2880,8 +2880,8 @@ Options:
--json JSON output
--annotate Annotated screenshot with numbered labels and legend
--screenshot-dir <path> Default screenshot output directory (or AGENT_BROWSER_SCREENSHOT_DIR)
--screenshot-quality <n> JPEG quality 0-100; ignored for PNG (or AGENT_BROWSER_SCREENSHOT_QUALITY)
--screenshot-format <fmt> Screenshot format: png, jpeg (or AGENT_BROWSER_SCREENSHOT_FORMAT)
--screenshot-quality <n> JPEG/WebP quality 0-100; ignored for PNG (or AGENT_BROWSER_SCREENSHOT_QUALITY)
--screenshot-format <fmt> Screenshot format: png, jpeg, webp (or AGENT_BROWSER_SCREENSHOT_FORMAT)
--headed Show browser window (not headless) (or AGENT_BROWSER_HEADED env)
--cdp <port> Connect via CDP (Chrome DevTools Protocol)
--color-scheme <scheme> Color scheme: dark, light, no-preference (or AGENT_BROWSER_COLOR_SCHEME)
Expand Down