Take into account the current query validity when adjusting the query and fragment components to take the '?' delimiter into account.
Fix the variable name. Count the characters before fragment with the delimiter included.
Add a helper method for setting user info, called with the new username/password and the current segment of the other component.
Add ParsedURL::hostStart, ParsedURL::hostEnd methods.
Add ParsedURL::pathStart, ParsedURL::pathEnd methods.
Add the ParsedURL::pathAfterSlash method.
Add a missing include.
Add static methods for encoding and decoding URL escape sequences.
Use UTF-16 string data to resolve the URL string. Construct the spec string from the output buffer via String::fromUTF8 if there are non-ASCII characters present.
KURL::protocolIs should simply case-insensitively compare the given protocol with the current protocol.
Implement KURL::setHostAndPort. Remove the port if not given, otherwise replace it.
Only set username or password on valid URLs.
Omit the beginning '?' delimiter if given as part of the new query.
Implement KURL::host(Start|End), KURL::path(Start|End), KURL::pathAfterLastSlash.
Implement WebCore::protocolIs. Borrow assertProtocolIsGood from KURl.cpp.
Implement WebCore::equalIgnoringFragmentIdentifier. Simply compare the ParsedURLs without the fragments.
The protocol might be set on a null URL while the URL is being constructed. If so, create a new ParsedURL and continue setting the protocol on it.
Implement WebCore::encodeWithURLEscapeSequences. The function calls out to ParsedURL::encodeWithURLEscapeSequences.
Implement WebCore::decodeURLEscapeSequences. For now this method, similar to KURL.cpp, uses the decodeEscapeSequences method.