Skip to content

Commit 1c71174

Browse files
committed
review: DRY telemetry param logic; inline hasTelemetryChange; trim README
1 parent 373f618 commit 1c71174

3 files changed

Lines changed: 23 additions & 20 deletions

File tree

README.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -221,9 +221,6 @@ Commands with JSON output support:
221221
- `kernel browsers get <id>` - Get detailed browser session info
222222
- `--output json`, `-o json` - Output raw JSON object
223223
- `kernel browsers update <id>` - Update a running browser session
224-
- `--proxy-id <id>` - Set proxy; `--clear-proxy` to remove
225-
- `--profile-id <id>` / `--profile-name <name>` - Load a profile; `--save-changes` to persist on exit
226-
- `--viewport <WxH@fps>` - Resize viewport; `--force` to resize during active live view or recording
227224
- `--telemetry=all` to enable all categories; `--telemetry=off` to disable; `--telemetry=network=on,page=off` for per-category
228225
- `--output json`, `-o json` - Output raw JSON object
229226
- `kernel browsers curl <id> <url>` - Make HTTP requests through a browser session's Chrome network stack

cmd/browsers.go

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -425,16 +425,12 @@ func (b BrowsersCmd) Create(ctx context.Context, in BrowsersCreateInput) error {
425425
}
426426
}
427427

428-
if in.Telemetry == "all" {
429-
params.Telemetry = kernel.BrowserTelemetryRequestConfigParam{Enabled: kernel.Opt(true)}
430-
} else if in.Telemetry == "off" {
431-
params.Telemetry = kernel.BrowserTelemetryRequestConfigParam{Enabled: kernel.Opt(false)}
432-
} else if in.Telemetry != "" {
433-
p, err := parseTelemetryCategories(in.Telemetry)
428+
if in.Telemetry != "" {
429+
t, err := applyTelemetryParam(in.Telemetry)
434430
if err != nil {
435431
return err
436432
}
437-
params.Telemetry = kernel.BrowserTelemetryRequestConfigParam{Enabled: kernel.Opt(true), Browser: p}
433+
params.Telemetry = t
438434
}
439435

440436
browser, err := b.browsers.New(ctx, params)
@@ -602,10 +598,8 @@ func (b BrowsersCmd) Update(ctx context.Context, in BrowsersUpdateInput) error {
602598
return fmt.Errorf("--force requires --viewport")
603599
}
604600

605-
hasTelemetryChange := in.Telemetry != ""
606-
607601
// Validate that at least one update option is provided
608-
if !hasProxyChange && !hasProfileChange && !hasViewportChange && !hasTelemetryChange {
602+
if !hasProxyChange && !hasProfileChange && !hasViewportChange && in.Telemetry == "" {
609603
return fmt.Errorf("must specify at least one of: --proxy-id, --clear-proxy, --profile-id, --profile-name, --viewport, or --telemetry")
610604
}
611605

@@ -632,16 +626,12 @@ func (b BrowsersCmd) Update(ctx context.Context, in BrowsersUpdateInput) error {
632626
}
633627

634628
// Handle telemetry changes
635-
if in.Telemetry == "all" {
636-
params.Telemetry = kernel.BrowserTelemetryRequestConfigParam{Enabled: kernel.Opt(true)}
637-
} else if in.Telemetry == "off" {
638-
params.Telemetry = kernel.BrowserTelemetryRequestConfigParam{Enabled: kernel.Opt(false)}
639-
} else if in.Telemetry != "" {
640-
p, err := parseTelemetryCategories(in.Telemetry)
629+
if in.Telemetry != "" {
630+
t, err := applyTelemetryParam(in.Telemetry)
641631
if err != nil {
642632
return err
643633
}
644-
params.Telemetry = kernel.BrowserTelemetryRequestConfigParam{Enabled: kernel.Opt(true), Browser: p}
634+
params.Telemetry = t
645635
}
646636

647637
// Handle viewport changes

cmd/browsers_telemetry.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,22 @@ func parseTelemetryCategories(s string) (kernel.BrowserTelemetryCategoriesConfig
6464
return p, nil
6565
}
6666

67+
// applyTelemetryParam converts a --telemetry flag value to the API param.
68+
func applyTelemetryParam(s string) (kernel.BrowserTelemetryRequestConfigParam, error) {
69+
switch s {
70+
case "all":
71+
return kernel.BrowserTelemetryRequestConfigParam{Enabled: kernel.Opt(true)}, nil
72+
case "off":
73+
return kernel.BrowserTelemetryRequestConfigParam{Enabled: kernel.Opt(false)}, nil
74+
default:
75+
p, err := parseTelemetryCategories(s)
76+
if err != nil {
77+
return kernel.BrowserTelemetryRequestConfigParam{}, err
78+
}
79+
return kernel.BrowserTelemetryRequestConfigParam{Enabled: kernel.Opt(true), Browser: p}, nil
80+
}
81+
}
82+
6783
// settableCategories are the categories accepted by --telemetry=<categories>.
6884
// "system" is always-on and cannot be toggled, but is valid as a --categories stream filter.
6985
var settableCategories = []string{"console", "interaction", "network", "page"}

0 commit comments

Comments
 (0)