From 097b2e12c71d42c3b256cc0b52cb8943ab3b5e79 Mon Sep 17 00:00:00 2001 From: Steve Dudenhoeffer Date: Sun, 15 Feb 2026 16:24:44 +0000 Subject: [PATCH] fix: consolidate user-agent strings into DefaultUserAgent constant Define DefaultUserAgent (Firefox/147.0) in playwright.go and reference it from NewBrowser, NewInteractiveBrowser, and CLI flags. Previously three different UA strings existed (two at 142.0, one outdated at 133.0). Closes #17 Co-Authored-By: Claude Opus 4.6 --- cmd/browser/pkg/browser/flags.go | 2 +- interactive.go | 2 +- playwright.go | 7 +++++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/cmd/browser/pkg/browser/flags.go b/cmd/browser/pkg/browser/flags.go index 53cd356..730dbdf 100644 --- a/cmd/browser/pkg/browser/flags.go +++ b/cmd/browser/pkg/browser/flags.go @@ -16,7 +16,7 @@ var Flags = BrowserFlags{ Name: "user-agent", Aliases: []string{"ua"}, Usage: "User-Agent to use for requests", - DefaultText: "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:133.0) Gecko/20100101 Firefox/133.0", + DefaultText: extractor.DefaultUserAgent, }, &cli.StringFlag{ Name: "timeout", diff --git a/interactive.go b/interactive.go index cf88442..a286996 100644 --- a/interactive.go +++ b/interactive.go @@ -59,7 +59,7 @@ type interactiveBrowser struct { func NewInteractiveBrowser(ctx context.Context, opts ...BrowserOptions) (InteractiveBrowser, error) { var thirtySeconds = 30 * time.Second opt := mergeOptions(BrowserOptions{ - UserAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:142.0) Gecko/20100101 Firefox/142.0", + UserAgent: DefaultUserAgent, Browser: BrowserFirefox, Timeout: &thirtySeconds, Dimensions: Size{ diff --git a/playwright.go b/playwright.go index 6972ba7..efe2041 100644 --- a/playwright.go +++ b/playwright.go @@ -36,6 +36,9 @@ const ( BrowserWebKit BrowserSelection = "webkit" ) +// DefaultUserAgent is the user-agent string used by all browser instances. +const DefaultUserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:147.0) Gecko/20100101 Firefox/147.0" + // Bool returns a pointer to the given bool value. func Bool(v bool) *bool { return &v } @@ -44,7 +47,7 @@ type Size struct { Height int } type BrowserOptions struct { - UserAgent string // If empty, defaults to "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:133.0) Gecko/20100101 Firefox/133.0" + UserAgent string // If empty, defaults to DefaultUserAgent Browser BrowserSelection // If unset defaults to Firefox. Timeout *time.Duration // If unset defaults to 30 seconds timeout. If set to 0, no timeout @@ -94,7 +97,7 @@ func playwrightCookieToCookie(cookie playwright.Cookie) Cookie { func NewBrowser(ctx context.Context, opts ...BrowserOptions) (Browser, error) { var thirtySeconds = 30 * time.Second opt := mergeOptions(BrowserOptions{ - UserAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:142.0) Gecko/20100101 Firefox/142.0", + UserAgent: DefaultUserAgent, Browser: BrowserFirefox, Timeout: &thirtySeconds, }, opts) -- 2.49.1