The "query" component can be set on non-standard urls like "data:" and "about:blank". I don't think that allowing this makes sense, and it shouldn't be a factor for web compatibility. For example, if you set the "query" on a data:url it clobbers the first place where it matches a question mark -- this is meaningless and arbitrary, since that question mark may have been inside a javascript string, part of image data, etc... There are several layout-tests that rely on this behavior. They implicitly set the query by submitting a GET form, whose action is a non-standard url. // Sets query on data:urls. Very strange, but it looks like FF does this too (not to say it is correct though) LayoutTests/fast/events/stopPropagation-submit.html // Sets query on "about:blank". Can conceivably make sense, but still inconsistent. LayoutTests/http/tests/navigation/onload-navigation-iframe-timeout.html LayoutTests/http/tests/navigation/onload-navigation-iframe.htm (there is also LayoutTests/fast/forms/mailto/* which sets query on mailto:urls. these ones make sense though, since mailto by definition has a query component.)