diff --git a/common/browser_context.go b/common/browser_context.go index 68c8ca7c8..e5aa01f4b 100644 --- a/common/browser_context.go +++ b/common/browser_context.go @@ -555,16 +555,9 @@ func filterCookies(cookies []*api.Cookie, urls ...string) ([]*api.Cookie, error) return cookies, nil } - // parse the given URLs. - purls := make([]*url.URL, len(urls)) - for i, u := range urls { - uri, err := url.ParseRequestURI( - strings.TrimSpace(u), - ) - if err != nil { - return nil, fmt.Errorf("parsing URL %q: %w", u, err) - } - purls[i] = uri + purls, err := parseURLs(urls...) + if err != nil { + return nil, fmt.Errorf("parsing URLs: %w", err) } // the following algorithm is like a sorting algorithm, @@ -654,3 +647,20 @@ func shouldFilterCookie(c *api.Cookie, uri *url.URL) bool { // Keep the cookie. return true } + +// parseURLs parses the given URLs. +// If an error occurs while parsing a URL, the error is returned. +func parseURLs(urls ...string) ([]*url.URL, error) { + purls := make([]*url.URL, len(urls)) + for i, u := range urls { + uri, err := url.ParseRequestURI( + strings.TrimSpace(u), + ) + if err != nil { + return nil, fmt.Errorf("%q: %w", u, err) + } + purls[i] = uri + } + + return purls, nil +}