refactor: switch browser dialer scheme back to browser and trim wrappers

Agent-Logs-Url: https://github.com/XTLS/Xray-core/sessions/4df6450c-a247-4e14-951f-2859a7875fe3

Co-authored-by: RPRX <63339210+RPRX@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2026-04-26 21:18:00 +00:00
committed by GitHub
parent 8939657016
commit 9d4dd2c32f
+4 -15
View File
@@ -51,7 +51,7 @@ func CheckLegacyEnv() error {
if envAddress == "" { if envAddress == "" {
return nil return nil
} }
return errors.PrintRemovedFeatureError("env "+platform.BrowserDialerAddress, "sockopt.dialerProxy with http://host:port/uuid") return errors.PrintRemovedFeatureError("env "+platform.BrowserDialerAddress, "sockopt.dialerProxy with browser://host:port/uuid")
} }
func IsBrowserDialerProxy(raw string) bool { func IsBrowserDialerProxy(raw string) bool {
@@ -113,7 +113,7 @@ func ConfigureCollectedDialerProxyURLs() error {
} }
} }
for browserDialerURL := range pendingURLs { for browserDialerURL := range pendingURLs {
if err := EnsureDialerWithAddress(browserDialerURL); err != nil { if _, err := ensureDialerWithAddress(browserDialerURL); err != nil {
return errors.New("failed to initialize browser dialer listener for url ", browserDialerURL).Base(err) return errors.New("failed to initialize browser dialer listener for url ", browserDialerURL).Base(err)
} }
} }
@@ -147,7 +147,7 @@ func parseBrowserDialerAddress(addr string) (string, string, bool) {
} }
parsedAddr, err := url.Parse(addr) parsedAddr, err := url.Parse(addr)
if err != nil || !strings.EqualFold(parsedAddr.Scheme, "http") || parsedAddr.Host == "" || parsedAddr.Path == "" || parsedAddr.RawQuery != "" || parsedAddr.Fragment != "" { if err != nil || !strings.EqualFold(parsedAddr.Scheme, "browser") || parsedAddr.Host == "" || parsedAddr.Path == "" || parsedAddr.RawQuery != "" || parsedAddr.Fragment != "" {
return "", "", false return "", "", false
} }
listenAddr := parsedAddr.Host listenAddr := parsedAddr.Host
@@ -166,9 +166,6 @@ func parseBrowserDialerAddress(addr string) (string, string, bool) {
return "", "", false return "", "", false
} }
id := strings.TrimPrefix(cleanPath, "/") id := strings.TrimPrefix(cleanPath, "/")
if len(id) != 36 {
return "", "", false
}
id = strings.ToLower(id) id = strings.ToLower(id)
parsedUUID, err := uuid.ParseString(id) parsedUUID, err := uuid.ParseString(id)
if err != nil || parsedUUID.String() != id { if err != nil || parsedUUID.String() != id {
@@ -301,14 +298,6 @@ func ensureDialerWithAddress(addr string) (*dialerInstance, error) {
return dialer, nil return dialer, nil
} }
func EnsureDialerWithAddress(addr string) error {
if addr == "" {
return nil
}
_, err := ensureDialerWithAddress(addr)
return err
}
func DialWSWithAddress(addr string, uri string, ed []byte) (*websocket.Conn, error) { func DialWSWithAddress(addr string, uri string, ed []byte) (*websocket.Conn, error) {
task := task{ task := task{
Method: "WS", Method: "WS",
@@ -404,7 +393,7 @@ func dialTaskWithAddress(addr string, task task) (*websocket.Conn, error) {
} }
if addr == "" { if addr == "" {
return nil, errors.New("browser dialer is not configured; set sockopt.dialerProxy to http://host:port/uuid") return nil, errors.New("browser dialer is not configured; set sockopt.dialerProxy to browser://host:port/uuid")
} }
dialer, err := getDialerByAddress(addr) dialer, err := getDialerByAddress(addr)
if err != nil { if err != nil {