On Mon, Jan 18, 2010 at 7:16 PM, Peter Kasting <pkast...@google.com> wrote: > On Mon, Jan 18, 2010 at 4:54 PM, Dirk Pranke <dpra...@chromium.org> wrote: >> >> So, you then get the following algorithm: >> >> 1) if there is a ':' in the URI, you split the URI into scheme and >> scheme-specific part. >> >> 2) If there is a scheme: >> >> 2.1) If the scheme is a recognized/supported one, dispatch the URL >> as you would normally. >> >> 2.2) If scheme matches [a-zA-Z] and you are on Windows, treat as an >> absolute local file URL >> >> 2.3) Else, treat this as a syntax error in the URI >> >> 3) If there is no scheme: >> >> 3.1) If the URI starts with a "/", treat it as a full path relative >> to the current context (e.g., current scheme, host and port. If your >> current context is a local filesystem, then treat it as a file:// >> scheme >> >> 3.2) If the URI starts with a "\", you're on Windows, and the >> context is a local file system point, repeat as above, prepending with >> the current drive >> >> 3.3) If the URI doesn't start with a "/" or a "\", then, optionally, >> check to see if the URI resolves to a valid hostname. This catches the >> "chrome.exe www.google.com" use case >> >> 3.4) If the URI doesn't resolve to a valid hostname, then interpret >> it as a relative URL > > I'd pretty strongly like to not specify steps like these. They duplicate > code we already have for interpreting user input, except with less fidelity. > We have quite sophisticated heuristics for how to figure out the correct > scheme, parse drive letters, UNC paths, etc. We don't need to write another > set. > I also don't really care about trying to fix up "www.google.com"; if it > falls out of the existing code, fine, but I wouldn't bother spending time on > it. I'm definitely opposed to doing anything like "try DNS resolution on X > and fall back to Y" since it makes the results unpredictable based on your > network. What if the user specifies a filename that's also an intranet > host? What if the user says "www.google.com" but the network is currently > down -- does the browser show a "couldn't open local file www.google.com" > error? etc. > It's enough to simply say "run the input through fixup, supplying the CWD as > the relative file path base". We have code that can basically take it from > there.
This sounds fine, although I'd be curious to see where the logic in fixup differs from the above. I certainly agree that we don't want an additional code path. I would perhaps amend "resolve to a valid hostname" to "looks like a hostname", although I don't know what heuristics we use for that (if any other than passing it to name resolution). > PK
-- Chromium Developers mailing list: chromium-dev@googlegroups.com View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev