KURL's getters randomly return either isNull or empty strings. This is potentially dangerous if some code relies on this. Returns a null string on empty: pass() lastPathComponent() ref() Returns an empty string on empty (although at least some of these will return a null string if the URL is itself null): protocol() user() host() query() path() We can make them all return null strings, all return empty strings, or return null strings only when the URL is itself NULL, and empty the rest of the time (I think this is currently the dominant behavior).
With any changes, we'll need to check all callers - in many cases, the behavior is not exactly random, even if it is painfully inconsistent.
We no longer use KURL.