Skip to content

Commit 6f29adc

Browse files
feat: browsers: accept chrome_policy on POST /browsers (KERNEL-1216)
1 parent c22e3fd commit 6f29adc

5 files changed

Lines changed: 41 additions & 2 deletions

File tree

.stats.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
configured_endpoints: 112
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-982efd191c23737c9e1cdbcbf9237fa2231b9f74e0a25db2870293bdf9951c21.yml
3-
openapi_spec_hash: eeb27952a4cc939316c24fc0ce2c9e3a
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-e564e74a7aae1744d4aa070a63c387f456c4719a48747dc6229b58a986255b65.yml
3+
openapi_spec_hash: 62beb1f20708652aaee31bbffb6cfbe9
44
config_hash: 08d55086449943a8fec212b870061a3f

browser.go

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,10 @@ type BrowserNewResponse struct {
311311
// Remote URL for live viewing the browser session. Only available for non-headless
312312
// browsers.
313313
BrowserLiveViewURL string `json:"browser_live_view_url"`
314+
// Custom Chrome enterprise policy overrides that were applied to this browser
315+
// session, if any. Echoed back for verification. Keys are Chrome enterprise policy
316+
// names.
317+
ChromePolicy map[string]any `json:"chrome_policy"`
314318
// When the browser session was soft-deleted. Only present for deleted sessions.
315319
DeletedAt time.Time `json:"deleted_at" format:"date-time"`
316320
// Whether GPU acceleration is enabled for the browser session (only supported for
@@ -356,6 +360,7 @@ type BrowserNewResponse struct {
356360
WebdriverWsURL respjson.Field
357361
BaseURL respjson.Field
358362
BrowserLiveViewURL respjson.Field
363+
ChromePolicy respjson.Field
359364
DeletedAt respjson.Field
360365
GPU respjson.Field
361366
KioskMode respjson.Field
@@ -397,6 +402,10 @@ type BrowserGetResponse struct {
397402
// Remote URL for live viewing the browser session. Only available for non-headless
398403
// browsers.
399404
BrowserLiveViewURL string `json:"browser_live_view_url"`
405+
// Custom Chrome enterprise policy overrides that were applied to this browser
406+
// session, if any. Echoed back for verification. Keys are Chrome enterprise policy
407+
// names.
408+
ChromePolicy map[string]any `json:"chrome_policy"`
400409
// When the browser session was soft-deleted. Only present for deleted sessions.
401410
DeletedAt time.Time `json:"deleted_at" format:"date-time"`
402411
// Whether GPU acceleration is enabled for the browser session (only supported for
@@ -442,6 +451,7 @@ type BrowserGetResponse struct {
442451
WebdriverWsURL respjson.Field
443452
BaseURL respjson.Field
444453
BrowserLiveViewURL respjson.Field
454+
ChromePolicy respjson.Field
445455
DeletedAt respjson.Field
446456
GPU respjson.Field
447457
KioskMode respjson.Field
@@ -483,6 +493,10 @@ type BrowserUpdateResponse struct {
483493
// Remote URL for live viewing the browser session. Only available for non-headless
484494
// browsers.
485495
BrowserLiveViewURL string `json:"browser_live_view_url"`
496+
// Custom Chrome enterprise policy overrides that were applied to this browser
497+
// session, if any. Echoed back for verification. Keys are Chrome enterprise policy
498+
// names.
499+
ChromePolicy map[string]any `json:"chrome_policy"`
486500
// When the browser session was soft-deleted. Only present for deleted sessions.
487501
DeletedAt time.Time `json:"deleted_at" format:"date-time"`
488502
// Whether GPU acceleration is enabled for the browser session (only supported for
@@ -528,6 +542,7 @@ type BrowserUpdateResponse struct {
528542
WebdriverWsURL respjson.Field
529543
BaseURL respjson.Field
530544
BrowserLiveViewURL respjson.Field
545+
ChromePolicy respjson.Field
531546
DeletedAt respjson.Field
532547
GPU respjson.Field
533548
KioskMode respjson.Field
@@ -569,6 +584,10 @@ type BrowserListResponse struct {
569584
// Remote URL for live viewing the browser session. Only available for non-headless
570585
// browsers.
571586
BrowserLiveViewURL string `json:"browser_live_view_url"`
587+
// Custom Chrome enterprise policy overrides that were applied to this browser
588+
// session, if any. Echoed back for verification. Keys are Chrome enterprise policy
589+
// names.
590+
ChromePolicy map[string]any `json:"chrome_policy"`
572591
// When the browser session was soft-deleted. Only present for deleted sessions.
573592
DeletedAt time.Time `json:"deleted_at" format:"date-time"`
574593
// Whether GPU acceleration is enabled for the browser session (only supported for
@@ -614,6 +633,7 @@ type BrowserListResponse struct {
614633
WebdriverWsURL respjson.Field
615634
BaseURL respjson.Field
616635
BrowserLiveViewURL respjson.Field
636+
ChromePolicy respjson.Field
617637
DeletedAt respjson.Field
618638
GPU respjson.Field
619639
KioskMode respjson.Field
@@ -690,6 +710,12 @@ type BrowserNewParams struct {
690710
// check for inactivity every 5 seconds, so the actual timeout behavior you will
691711
// see is +/- 5 seconds around the specified value.
692712
TimeoutSeconds param.Opt[int64] `json:"timeout_seconds,omitzero"`
713+
// Custom Chrome enterprise policy overrides applied to this browser session. Keys
714+
// are Chrome enterprise policy names; values must match their expected types.
715+
// Blocked: kernel-managed policies (extensions, proxy, CDP/automation). Ignored
716+
// when reusing an existing persistent session. See
717+
// https://chromeenterprise.google/policies/
718+
ChromePolicy map[string]any `json:"chrome_policy,omitzero"`
693719
// List of browser extensions to load into the session. Provide each by id or name.
694720
Extensions []shared.BrowserExtensionParam `json:"extensions,omitzero"`
695721
// DEPRECATED: Use timeout_seconds (up to 72 hours) and Profiles instead.

browser_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@ func TestBrowserNewWithOptionalParams(t *testing.T) {
3030
option.WithAPIKey("My API Key"),
3131
)
3232
_, err := client.Browsers.New(context.TODO(), kernel.BrowserNewParams{
33+
ChromePolicy: map[string]any{
34+
"foo": "bar",
35+
},
3336
Extensions: []shared.BrowserExtensionParam{{
3437
ID: kernel.String("id"),
3538
Name: kernel.String("name"),

browserpool.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,10 @@ type BrowserPoolAcquireResponse struct {
265265
// Remote URL for live viewing the browser session. Only available for non-headless
266266
// browsers.
267267
BrowserLiveViewURL string `json:"browser_live_view_url"`
268+
// Custom Chrome enterprise policy overrides that were applied to this browser
269+
// session, if any. Echoed back for verification. Keys are Chrome enterprise policy
270+
// names.
271+
ChromePolicy map[string]any `json:"chrome_policy"`
268272
// When the browser session was soft-deleted. Only present for deleted sessions.
269273
DeletedAt time.Time `json:"deleted_at" format:"date-time"`
270274
// Whether GPU acceleration is enabled for the browser session (only supported for
@@ -310,6 +314,7 @@ type BrowserPoolAcquireResponse struct {
310314
WebdriverWsURL respjson.Field
311315
BaseURL respjson.Field
312316
BrowserLiveViewURL respjson.Field
317+
ChromePolicy respjson.Field
313318
DeletedAt respjson.Field
314319
GPU respjson.Field
315320
KioskMode respjson.Field

invocation.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -557,6 +557,10 @@ type InvocationListBrowsersResponseBrowser struct {
557557
// Remote URL for live viewing the browser session. Only available for non-headless
558558
// browsers.
559559
BrowserLiveViewURL string `json:"browser_live_view_url"`
560+
// Custom Chrome enterprise policy overrides that were applied to this browser
561+
// session, if any. Echoed back for verification. Keys are Chrome enterprise policy
562+
// names.
563+
ChromePolicy map[string]any `json:"chrome_policy"`
560564
// When the browser session was soft-deleted. Only present for deleted sessions.
561565
DeletedAt time.Time `json:"deleted_at" format:"date-time"`
562566
// Whether GPU acceleration is enabled for the browser session (only supported for
@@ -602,6 +606,7 @@ type InvocationListBrowsersResponseBrowser struct {
602606
WebdriverWsURL respjson.Field
603607
BaseURL respjson.Field
604608
BrowserLiveViewURL respjson.Field
609+
ChromePolicy respjson.Field
605610
DeletedAt respjson.Field
606611
GPU respjson.Field
607612
KioskMode respjson.Field

0 commit comments

Comments
 (0)