On Wed, May 13, 2009 at 6:12 PM, Greg Spencer <[email protected]> wrote: > On Wed, May 13, 2009 at 4:07 PM, Brett Wilson <[email protected]> wrote: >> >> On Wed, May 13, 2009 at 3:51 PM, Amanda Walker <[email protected]> >> wrote: >> > >> > Perhaps what we need is a companion to FilePath. For example: >> > >> > FilePath: much as it is now, lightweight, "alternative to string >> > manipulation". >> > FileReference: heavierweight, can talk to the file system and have >> > carnal knowledge of platform specifics for things like resolving / >> > canonicalizing pathnames, determining whether or not they refer to the >> > same files, generating C strings that can be passed to 3rd party >> > libraries, etc. >> >> I think this is very dangerous. >> >> I think Greg should not be talking to the filesystem when inserting >> filenames into a set. We don't allow filesystem access from the UI >> thread of Chrome, and I think other parts of our system should also >> not do filesystem access on their critical threads, especially if they >> want to be more part of Chrome in the future. > > Well, so the use I have for this in O3D at the moment is in our importer, > which currently is a separate command-line tool that reads Collada files and > writes out our wire format for geometry. So it isn't meant to be occuring > in a UI thread, but I could see times when it might be useful to know for > sure if two files reference the same file in the UI thread (dragging and > dropping a file onto a drop zone, for instance). > I do need to know if I have the same file more than once in a set because > the COLLADA file might reference the same texture multiple times, or (more > dangerous) it might reference a file that is one file on Windows, > but (incorrectly) maps to two different files in the (Unix-path-format) .tgz > files. To detect that, I need canonicalization.
You can't actually canonicalize a filename on Windows, so I think it's dangerous to write a component that claims to do it. I think you just need to come up with some simple rules that makes it work most of the time. Personally I would do ASCII lowercasing and stop worrying about it. If you use ICU to lower-case "correctly," Windows won't necessarily agree and you won't be able to use that file. Brett --~--~---------~--~----~------------~-------~--~----~ Chromium Developers mailing list: [email protected] View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev -~----------~----~----~----~------~----~------~--~---
