[whatwg/url] Redo path parsing for non-special URLs (#212)

As part of #148 and #185 we noticed that if we want to keep parsing non-special URLs in a way that preserves the ability for them to be base/relative URLs we need to make some changes, that would also bring them closer to the original RFCs.

I tried to do that as part of #185 but failed multiple times, so I'm going to make it a dedicated issue. What I think needs to happen is that we stop eating "/" early on. I think we need to drop the "path start state" as well.

What we want is that for special URLs we ensure that path has at least one item (potentially the empty string) and that for non-special URLs it can be empty if there is no path (e.g., as in `foo://x#x` having no path, but `http://x#x` becoming `http://x/#x` because special).

Currently "relative slash state" goes down "special authority ignore slashes state" even for non-special URLs. That means `///x` against `foo://y` results in `foo://x` rather than `foo:///x`. That also needs to be fixed.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/whatwg/url/issues/212

Received on Friday, 20 January 2017 11:35:01 UTC