fix: respect --headed false flag in CLI (#757)
When user explicitly sets --headed false, the CLI was ignoring this flag because the launch condition only checked if flags.headed was true. This meant that --headed false would not trigger a launch command, and subsequent commands would auto-launch with default headless=true. The fix adds a cli_headed flag to track when the user explicitly sets --headed (regardless of value), and includes this in the launch condition check. Fixes #743
This commit is contained in:
@@ -2164,6 +2164,7 @@ mod tests {
|
|||||||
cli_annotate: false,
|
cli_annotate: false,
|
||||||
cli_download_path: false,
|
cli_download_path: false,
|
||||||
cli_native: false,
|
cli_native: false,
|
||||||
|
cli_headed: false,
|
||||||
annotate: false,
|
annotate: false,
|
||||||
color_scheme: None,
|
color_scheme: None,
|
||||||
download_path: None,
|
download_path: None,
|
||||||
|
|||||||
@@ -267,6 +267,7 @@ pub struct Flags {
|
|||||||
pub cli_annotate: bool,
|
pub cli_annotate: bool,
|
||||||
pub cli_download_path: bool,
|
pub cli_download_path: bool,
|
||||||
pub cli_native: bool,
|
pub cli_native: bool,
|
||||||
|
pub cli_headed: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn parse_flags(args: &[String]) -> Flags {
|
pub fn parse_flags(args: &[String]) -> Flags {
|
||||||
@@ -382,6 +383,7 @@ pub fn parse_flags(args: &[String]) -> Flags {
|
|||||||
cli_annotate: false,
|
cli_annotate: false,
|
||||||
cli_download_path: false,
|
cli_download_path: false,
|
||||||
cli_native: false,
|
cli_native: false,
|
||||||
|
cli_headed: false,
|
||||||
};
|
};
|
||||||
|
|
||||||
let mut i = 0;
|
let mut i = 0;
|
||||||
@@ -404,6 +406,7 @@ pub fn parse_flags(args: &[String]) -> Flags {
|
|||||||
"--headed" => {
|
"--headed" => {
|
||||||
let (val, consumed) = parse_bool_arg(args, i);
|
let (val, consumed) = parse_bool_arg(args, i);
|
||||||
flags.headed = val;
|
flags.headed = val;
|
||||||
|
flags.cli_headed = true;
|
||||||
if consumed {
|
if consumed {
|
||||||
i += 1;
|
i += 1;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -496,6 +496,7 @@ fn main() {
|
|||||||
flags.cli_allow_file_access.then_some("--allow-file-access"),
|
flags.cli_allow_file_access.then_some("--allow-file-access"),
|
||||||
flags.cli_download_path.then_some("--download-path"),
|
flags.cli_download_path.then_some("--download-path"),
|
||||||
flags.cli_native.then_some("--native"),
|
flags.cli_native.then_some("--native"),
|
||||||
|
flags.cli_headed.then_some("--headed"),
|
||||||
]
|
]
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.flatten()
|
.flatten()
|
||||||
@@ -723,6 +724,7 @@ fn main() {
|
|||||||
|
|
||||||
// Launch headed browser or configure browser options (without CDP or provider)
|
// Launch headed browser or configure browser options (without CDP or provider)
|
||||||
if (flags.headed
|
if (flags.headed
|
||||||
|
|| flags.cli_headed // User explicitly set --headed (even if false)
|
||||||
|| flags.executable_path.is_some()
|
|| flags.executable_path.is_some()
|
||||||
|| flags.profile.is_some()
|
|| flags.profile.is_some()
|
||||||
|| flags.state.is_some()
|
|| flags.state.is_some()
|
||||||
|
|||||||
Reference in New Issue
Block a user