incubator-callback-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Becky Gibson <gibson.be...@gmail.com>
Subject unified JS: Entry.toURL
Date Fri, 24 Feb 2012 22:00:32 GMT
There is a note in the incubator-cordova-js readme TODOs about the fileURL
api:
Normalize Entry.toURL return values. iOS returns "file://localhost" +
fullPath, Android returns "file://" + fullPath, BlackBerry returns just
fullPath

The current implementation is:

Entry.prototype.toURL = function() {
    // fullPath attribute contains the full URL
    return this.fullPath;
};

Now, to me fullPath represents a just that a path.  A URL includes a host
name and domain.  The latest editor's draft of the File API: Directories
and System spec () isn't entirely clear:

toURL

Returns a URL that can be used to identify this entry. Unlike the URN
defined in [FILE-API<http://dev.w3.org/2009/dap/file-system/file-dir-sys.html#bib-FILE-API>],
it has no specific expiration; as it describes a location on disk, it
should be valid at least as long as that location exists.

Do we want to spec out the URL format/scheme? It would be quite nice if
these could be edited and manipulated easily, as with normal filesystem
paths.

How and where can these URLs be used? Can they be interchangeable with
online URLs for the same domain?

Proposal currently under discussion:

   - Use a format such as filesystem:
   http://example.domain/persistent-or-temporary/path/to/file.html .
   - URLs should be usable for anything that online URLs can be used for,
   whether they appear in online or filesystem-resident web pages.
   - However, they can only be used by the origin that owns the filesystem.
   No other origin can e.g. reference another origin's filesystem in an IMG
   tag.


I think Android and BB are returning file:// as part of the fullPath.  iOS
is not.   The old iOS implementation of toURL() (formerly toURI) was:

DirectoryEntry.prototype.toURI = function(mimeType, successCallback,
errorCallback) {

    return "file://localhost" + this.fullPath;

};

Now, I can go through the iOS file code and append file:// or
file://localhost (I think I need the localhost in order for these to work
in webView but I'd have to go back and test) to all of the fullPath entries
I return  and then remove them in all of the device implementations.   But
my question is why are we returning URL's in a variable that is name a
"path"?

What is it that we want and why?

thanks,

-becky

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message