fix: address Playwright API audit findings #83

Merged
steve merged 1 commits from fix/playwright-api-audit into main 2026-03-02 04:59:43 +00:00
3 changed files with 18 additions and 2 deletions

View File

@@ -95,6 +95,9 @@ func NewInteractiveBrowser(ctx context.Context, opts ...BrowserOptions) (Interac
page, err := res.bctx.NewPage()
if err != nil {
_ = res.bctx.Close()
_ = res.browser.Close()
_ = res.pw.Stop()
ch <- result{nil, fmt.Errorf("failed to create page: %w", err)}
return
}
@@ -112,6 +115,12 @@ func NewInteractiveBrowser(ctx context.Context, opts ...BrowserOptions) (Interac
select {
case <-ctx.Done():
go func() {
r := <-ch
if r.err == nil && r.ib != nil {
_ = r.ib.Close()
}
}()
return nil, ctx.Err()
case r := <-ch:
return r.ib, r.err

View File

@@ -29,7 +29,7 @@ type node struct {
}
func (n node) Type(input string) error {
return n.locator.Type(input)
return n.locator.PressSequentially(input)
}
func (n node) Click() error {

View File

@@ -195,6 +195,12 @@ func NewBrowser(ctx context.Context, opts ...BrowserOptions) (Browser, error) {
select {
case <-ctx.Done():
go func() {
r := <-resultCh
if r.err == nil && r.browser != nil {
_ = r.browser.Close()
}
}()
return nil, ctx.Err()
case result := <-resultCh:
return result.browser, result.err
@@ -242,6 +248,7 @@ func (b playWrightBrowser) openPage(_ context.Context, target string, opts OpenP
resp, err := page.Goto(target, pwOpts)
if err != nil {
_ = page.Close()
return nil, err
}
@@ -277,8 +284,8 @@ func (b playWrightBrowser) Open(ctx context.Context, url string, opts OpenPageOp
func (b playWrightBrowser) Close() error {
return errors.Join(
b.browser.Close(),
b.ctx.Close(),
b.browser.Close(),
b.pw.Stop(),
)
}