copy

fun copy(): Config

Returns an independent copy of this configuration.

DefaultBrowser.start resolves and stores runtime state on the config it is given — it writes host and port, and appends --load-extension / --lang arguments. Handing the same instance to a second browser would therefore make that browser take the connectExisting branch: it would never launch a browser process at all, and would instead try to talk to the previous one's now-dead port. DefaultBrowser copies its config on construction so that callers can safely reuse (and retry with) the same Config instance.

The copy is deep where it matters: the argument and extension lists are duplicated, so mutating one config never affects the other.