The other CookieManager implementations in Flutter allow for no domain,
as the Android CookieManager implementation. By providing a default
domain, applications cannot opt-out of the default
CookieManager.setCookie behaviour (which prepends a "period" to the
domain), which is treated as a different domain by Webkit on Android.
This leads to multiple cookies for the same URL if the server serves a
cookie without a domain, or with a domain that does not contain a
leading period.
Note, iOS's setCookie doesn't take a url parameter (at least in the way
it's called from flutter_inappwebview) and instead this is passed an
attribute on the HTTPCookie object itself (originURL). When constructing
a HTTPCookie you must supply either originURL OR domain. Both a
permitted, but at least one must be present. [1]
By making domain optional, without a default, on both platforms,
consumers can now set cookies that don't use the domain attribute but
still allows for setting a domain when required.
[1] https://developer.apple.com/documentation/foundation/httpcookie/1392975-init