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 Re: Bug in FileSystem.js
Date Fri, 24 Feb 2012 21:34:02 GMT
Regading the FileSystem.name entry.   The W3C spec is somewhat ambiguous on
this so we implemented "persistent" and "temporary" when we did the
original BB, iOS and Android implementations.  I would prefer we debate
changing that later.

Regarding the DirectoryEntry name parameter, the spec indicates that is
just the name of the directory, excluding the path leading to it. This is
how BB, iOS and Android initially implemented this.   We can solve the
DirectoryEntry creation but with the following two changes:

1) modify the FileSystem constructor in FileSystem.js to the following:

var FileSystem = function(name, root) {
    this.name = name || null;
    if (root) {
        this.root = new DirectoryEntry(root.name, root.fullPath);
    }
};

2) In the device code when returning from requestFileSystem the device code
should return a pseudo FileSystem object:
 .name  is the name of the file system (currently "persistent" or
"temporary") and .root is a DirectoryEntry pseudo object (it has allof the
paramters but there are no functions defined which is why we have to go
through the full object creation).   This is what BB, iOS and Android
originally did, but I believe BB and Android had changed this to return the
fullPath in the .root parameter.

Making this change gets me further in the iOS update.   However, I don't
understand why the other platforms are returning a URL in the fullPath
parameter.  Will start/continue a thread on that.

-becky

-becky


On Fri, Feb 24, 2012 at 3:21 PM, Simon MacDonald
<simon.macdonald@gmail.com>wrote:

> So then the root directory of the persistent filesystem should look like:
>
> { name: "", fullPath: "/data/data/com.phonegap" }
>
> then if I create a cache directory off the root it would be:
>
> { name: "cache", fullPath: "/data/data/com.phonegap/cache" }
>
> but what do we do about someone who goes back two directories? You would
> end up at:
>
> { name: "data", fullPath: "/data" }
>
> Do we need to prevent that type of behaviour?
>
> Simon Mac Donald
> http://hi.im/simonmacdonald
>
>
> On Fri, Feb 24, 2012 at 2:33 PM, Joe Bowser <bowserj@gmail.com> wrote:
>
> > No, I think you are partially right.  I think the name should be blank
> for
> > the root directory of the persistent storage.  It definitely shouldn't
> say
> > that it's persistent, that seems to be very wrong.
> >
> > Joe
> >
> > On Fri, Feb 24, 2012 at 11:10 AM, Simon MacDonald <
> > simon.macdonald@gmail.com
> > > wrote:
> >
> > > Becky has found a bug in FileSystem.js and I just wanted to bring it up
> > > on the list before making any changes. At this line:
> > >
> > >
> > >
> >
> https://github.com/apache/incubator-cordova-js/blob/master/lib/plugin/FileSystem.js#L13
> > >
> > > you see a new DirectoryEntry is created using the *name* of the
> > filesystem
> > > and the *root* path of the filesystem. What is being passed in is
> > something
> > > like this:
> > >
> > > name = PERSISTENT
> > > root = /data/data/com.phonegap
> > >
> > > so when the DirectoryEntry is created it will have a name of
> > > *PERSISTENT*which is wrong. The name property should be the name of
> > > the file or
> > > *com.phonegap* in my example.
> > >
> > > Does this makes sense to everyone or are we going crazy?
> > >
> > > Simon Mac Donald
> > > http://hi.im/simonmacdonald
> > >
> >
>

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