This is now pushed to dev. I've updated the docs in the plugin as well as
the config.xml that ships with mobile-spec.

(I changed the preference name at the last minute -- I remembered CB-4103,
and the work that went into standardizing on CamelCase for all of the
preference names across platforms)

mobile spec now contains

<preference name="iosPersistentFileLocation" value="Library" />

If you run mobile spec without this, it will terminate with an assertion
failure, and the message

File plugin configuration error: Please set iosPersistentFileLocation in
config.xml to one of "library" (for new applications) or "documents" (for
compatibility with previous versions)

appears in the log. I haven't added the message on plugin install yet, but
that should be done today.

Ian


On Thu, Jan 23, 2014 at 11:52 AM, Ian Clelland <iclell...@chromium.org>wrote:

> Okay, I'm going to do this on dev branch, then:
>
> File plugin will be *broken by default* on iOS.
> Developers will need to add a preference to their apps' config.xml files.
> It will look like this:
> <preference name="ios-persistent-file-location" value="library">
> or
> <preference name="ios-persistent-file-location" value="documents">
> unless someone has a really good bikeshed colour.
>
> On iOS, CDVFile will throw an exception on initialize if this isn't set.
> The error in the log will be as explicit as I can make it about what failed
> and how to fix it.
>
> I'm dropping the idea of adding any more XML configuration for supporting
> exotic third party plugins. That can be done in native code, by calling the
> right methods on the file plugin to add new filesystems. No XML; no
> javascript: if a plugin needs a special FS root, it can add it. If an app
> needs it, the easiest way for now will be to create a plugin that adds it.
>
>
>
> On Tue, Jan 14, 2014 at 4:14 PM, Shazron <shaz...@gmail.com> wrote:
>
>> I agree with the plugin broken by default, and requiring From my
>> experience, doing anything fancy for users to ease migration rarely does
>> what is intended - and causes more problems, my 2c
>>
>> FileMigrator plugin is great, externalizes the problem
>>
>>
>> On Tue, Jan 14, 2014 at 1:10 PM, Andrew Grieve <agri...@chromium.org>
>> wrote:
>>
>> > Migration isn't possible by default because the current location for
>> > Android is the root of the SD Card.
>> >
>> > The goal here is to put PERSISTENT under Library, but to also make
>> > other interesting places available via other URLs / FileSystem
>> > objects.
>> >
>> > So far my fav. is to have the plugin broken by default so that users
>> > will be forced to add a pref to set either old / new location. Really
>> > don't want new apps being written with data in the wrong spot.
>> >
>> > For the case of configuring custom locations, I think a native API is
>> > more workable than configuration.
>> >
>> >
>> > On Tue, Jan 14, 2014 at 4:05 PM, Tommy-Carlos Williams
>> > <to...@devgeeks.org> wrote:
>> > > Sorry…
>> > >
>> > > I have been trying not to chicken-little this thread, but I just need
>> > some clarification on some things.
>> > >
>> > > My understanding, please correct me if I am wrong:
>> > >
>> > > The “old" location on iOS is not the best location for files the dev
>> > doesn’t want exposed, but it *is* where they should be if the dev wants
>> > them accessible via iTunes
>> > >
>> > > Assuming this is correct, I have some questions:
>> > >
>> > > 1. What if that’s where the dev *wants* the files to go?
>> > > 2. Could files still be backed up by iCloud if they were in the new
>> > location?
>> > >
>> > >
>> > > It feels like making assumptions about what kinds of files developers
>> > are using the File API for.
>> > >
>> > > :/
>> > >
>> > > - tommy
>> > >
>> > >
>> > >
>> > > On 15 Jan 2014, at 7:09 am, Ian Clelland <iclell...@chromium.org>
>> wrote:
>> > >
>> > >> On Tue, Jan 14, 2014 at 2:52 PM, Brian LeRoux <b...@brian.io> wrote:
>> > >>
>> > >>> Wait, users lose data IF they upgrade the plugin. Is that correct?
>> > >>>
>> > >>
>> > >> *If* we change the default storage location, and *if* a developer
>> > upgrades
>> > >> the file plugin without looking too closely (because, hey, newer is
>> > always
>> > >> better, right?) and pushes a new version of the app to existing
>> users,
>> > then
>> > >> yes, users will lose access to the data that they previously had
>> stored.
>> > >>
>> > >> Technically, they aren't losing the data; it's still possible to get
>> to
>> > it,
>> > >> someday, maybe, if the developer does a lot of work to fix the app,
>> and
>> > it
>> > >> hasn't ended up in some inconsistent state -- it's not deleted,
>> though.
>> > >>
>> > >> And I do believe that developers will do that, too. Maybe not the
>> good
>> > ones
>> > >> :) But people will gloss over the upgrade instructions, read the
>> > warnings
>> > >> without thinking "oh, that affects my users", and publish away.
>> > >>
>> > >>
>> > >>>
>> > >>>
>> > >>> On Tue, Jan 14, 2014 at 10:53 AM, Ian Clelland <
>> iclell...@chromium.org
>> > >>>> wrote:
>> > >>>
>> > >>>> On Tue, Jan 14, 2014 at 1:44 PM, Brian LeRoux <b...@brian.io> wrote:
>> > >>>>
>> > >>>>> So, to be clear and terse: what are the use cases / why are we
>> adding
>> > >>>> more
>> > >>>>> config?
>> > >>>>>
>> > >>>>
>> > >>>> 1. NSDocumentsDirectory is a stupid place to put the HTML
>> filesystem
>> > on
>> > >>>> iOS. NSLibraryDirectory is a more sensible place, and I'd love to
>> > change
>> > >>> it
>> > >>>> as part of this rollout, *but*
>> > >>>> 2. If we change it unilaterally, real users are going to lose
>> access
>> > to
>> > >>>> real data.
>> > >>>>
>> > >>>> Also,
>> > >>>> 3. The File plugin is much more modular now, and we could
>> potentially
>> > >>> have
>> > >>>> a whole ecosystem of Filesystem providers making filesystem-shaped
>> > >>> things,
>> > >>>> but it needs to be configurable to be useful.
>> > >>>>
>> > >>>> #3 is less important at the moment, but becomes more compelling if
>> we
>> > >>>> provide the machinery for other devs to take advantage of it.
>> > >>>>
>> > >>>>
>> > >>>>
>> > >>>>>
>> > >>>>> On Tue, Jan 14, 2014 at 10:34 AM, Ian Clelland <
>> > iclell...@chromium.org
>> > >>>>>> wrote:
>> > >>>>>
>> > >>>>>> On Tue, Jan 14, 2014 at 10:52 AM, Andrew Grieve <
>> > >>> agri...@chromium.org
>> > >>>>>>> wrote:
>> > >>>>>>
>> > >>>>>>> On Tue, Jan 14, 2014 at 10:38 AM, Ian Clelland <
>> > >>>> iclell...@chromium.org
>> > >>>>>>
>> > >>>>>>> wrote:
>> > >>>>>>>> On Mon, Jan 13, 2014 at 9:16 PM, Andrew Grieve <
>> > >>>> agri...@chromium.org
>> > >>>>>>
>> > >>>>>>> wrote:
>> > >>>>>>>>
>> > >>>>>>>>> I think we need two things for transitioning to different
>> > >>>>> PERSISTENT /
>> > >>>>>>>>> TEMPORARY locations:
>> > >>>>>>>>> 1. The ability for the user to retrieve the files at the old
>> > >>>>> location
>> > >>>>>>>>> (so they can be moved to the new location)
>> > >>>>>>>>> 2. The ability to turn turn on the change with a switch (e.g.
>> > >>>>>>>>> <preference name="IosUseLegacyFileSystemPath" value="true" />)
>> > >>>>>>>>>
>> > >>>>>>>>> I'd love for the default to be the new locations so that new
>> > >>> apps
>> > >>>>>>>>> don't forget to turn on the preference and find out they need
>> to
>> > >>>>>>>>> migrate later on.
>> > >>>>>>>>>
>> > >>>>>>>>
>> > >>>>>>>> This is the really dangerous bit, though. If we make the
>> default
>> > >>>>>> anything
>> > >>>>>>>> but the current behaviour, then devs *will* update their
>> plugins
>> > >>>> and
>> > >>>>>>> push,
>> > >>>>>>>> and users *will* lose the ability to access old saved files. We
>> > >>>> will
>> > >>>>>>>> absolutely encounter the situation where developers test their
>> > >>> app
>> > >>>>> with
>> > >>>>>>>> blank filesystems, and everything works fine, but data is
>> > >>> rendered
>> > >>>>>>>> inaccessible to users who upgrade from an old version. And I'm
>> > >>> sure
>> > >>>>>> it'll
>> > >>>>>>>> happen no matter how loudly we announce the change.
>> > >>>>>>>>
>> > >>>>>>>> I would sooner make the new plugin be "broken by default", so
>> > >>> that
>> > >>>>> the
>> > >>>>>>> app
>> > >>>>>>>> doesn't even start until you add a configuration preference,
>> one
>> > >>>> way
>> > >>>>> or
>> > >>>>>>> the
>> > >>>>>>>> other. Then we could recommend at that time, "if you have an
>> > >>>> existing
>> > >>>>>> app
>> > >>>>>>>> with users, then use the old value; if this is a brand new app,
>> > >>> use
>> > >>>>> the
>> > >>>>>>> new
>> > >>>>>>>> one".
>> > >>>>>>>
>> > >>>>>>> I really like this idea!
>> > >>>>>>>
>> > >>>>>>>>
>> > >>>>>>>> Also - the simpler our instructions can be, the better. I don't
>> > >>>> think
>> > >>>>>>>>> most devs even realize that they are doing a foolish thing
>> with
>> > >>>> the
>> > >>>>>>>>> way things are set up right now, so telling them to configure
>> > >>>> their
>> > >>>>>>>>> own paths might put too much of a burden on them (they'd have
>> to
>> > >>>>> learn
>> > >>>>>>>>> where files should go, and then also figure out how our config
>> > >>>>> syntax
>> > >>>>>>>>> works).
>> > >>>>>>>>>
>> > >>>>>>>>
>> > >>>>>>>> True. The simple case should be as simple as possible. Ideally,
>> > >>>> doing
>> > >>>>>>>> nothing at all should get them some reasonable behaviour,
>> > >>>> compatible
>> > >>>>>> with
>> > >>>>>>>> previous versions.
>> > >>>>>>>>
>> > >>>>>>>>
>> > >>>>>>>>>
>> > >>>>>>>>> The case of adding new FS roots is compelling, but I think
>> most
>> > >>>>> users
>> > >>>>>>>>> would appreciate FS roots for content, assets, sdcard, etc to
>> be
>> > >>>>>>>>> pre-built-in rather than have to wire them up themselves.
>> > >>>>>>>>>
>> > >>>>>>>>
>> > >>>>>>>> Agreed. Those ones should be available out-of-the-box, either
>> as
>> > >>>> part
>> > >>>>>> of
>> > >>>>>>>> File, or as part of a related plugin. (Leaning towards File,
>> > >>> since
>> > >>>> it
>> > >>>>>> is
>> > >>>>>>>> already providing content and assets filesystem URLs)
>> > >>>>>>>>
>> > >>>>>>>>
>> > >>>>>>>>
>> > >>>>>>>>> One thing that jumped out to me is the src= argument:
>> > >>>>>>>>> <filesystem name="documents"
>> > >>>>>>>>>    type="local-filesystem"
>> > >>>>>>>>>    prefix="cdvfile://localhost/documents"
>> > >>>>>>>>>    src="Documents" />
>> > >>>>>>>>>
>> > >>>>>>>>> If the goal is for these to be customizable, then it's not
>> that
>> > >>>>>>>>> flexible to use pre-defined values in the src= argument.
>> Perhaps
>> > >>>>>>>>> instead of using config.xml, the File plugin could have a
>> > >>>>>>>>> registerFileSystemRoot(name, type, prefix, rootPath) function
>> > >>> that
>> > >>>>>>>>> could be used for this purpose. That way plugins could compute
>> > >>>> their
>> > >>>>>>>>> root paths and then call this function at plugin init time.
>> > >>>>>>>>>
>> > >>>>>>>>
>> > >>>>>>>> That was mostly an off-the-top-of-my-head strawman for the
>> > >>> format.
>> > >>>>>>> However,
>> > >>>>>>>> it does address the issue of how to specify "this filesystem
>> > >>> lives
>> > >>>> at
>> > >>>>>> the
>> > >>>>>>>> NSTemporaryDirectory location; that one lives at
>> > >>>> NSLibraryDirectory",
>> > >>>>>>>> without having to know the real filesystem path for those
>> things.
>> > >>>>>>>>
>> > >>>>>>>> I expected that the interpretation of something like a "src"
>> > >>>>> attribute
>> > >>>>>>>> would be very dependent on the filesystem type, and specialized
>> > >>> to
>> > >>>>> that
>> > >>>>>>>> type, rather than representing an absolute device fs path.
>> > >>>>>>>
>> > >>>>>>> If the valid values here are pre-determined by the FS type,
>> then I
>> > >>>>>>> don't know why we'd have this configuration.
>> > >>>>>>> Let's just expose all of the roots that the FS knows about. If
>> we
>> > >>>> want
>> > >>>>>>> to be able to toggle some on/off, then let's add a pref for
>> > >>>>>>> "fs-type-whitelist" which is just a comma-separated-list.
>> > >>>>>>>
>> > >>>>>>>
>> > >>>>>>
>> > >>>>>> A comma-separated list isn't so bad; in fact, given the call
>> > >>> signature
>> > >>>> of
>> > >>>>>> requestFileSystem, the *order* of items in that list may be the
>> > >>>> critical
>> > >>>>>> thing. A CSL is certainly easier to shoehorn into our existing
>> > config
>> > >>>>>> parsing than a whole block of XML, even if it's a bit uglier.
>> > >>>>>>
>> > >>>>>> What about something shaped like
>> > >>>>>>
>> > >>>>>> <preference name="filesystems"
>> > >>>> value="temporary,documents,assets,library"
>> > >>>>>> />
>> > >>>>>>
>> > >>>>>> Then you could switch "documents" and "library" in the list, and
>> you
>> > >>>>> would
>> > >>>>>> be storing files in the new position (by the definition of
>> > >>>>>> window.PERSISTENT).
>> > >>>>>>
>> > >>>>>> Ian
>> > >>>>>>
>> > >>>>>>>>
>> > >>>>>>>>
>> > >>>>>>>>>
>> > >>>>>>>>>
>> > >>>>>>>>>
>> > >>>>>>>>> Another thing that occurred to me (maybe off topic?): Why:
>> > >>>>>>>>> cdvfile://localhost/documents
>> > >>>>>>>>> instead of:
>> > >>>>>>>>> cdvfile://documents/
>> > >>>>>>>>> Looking at this URL-wise, I think it would be a nice-to-have
>> to
>> > >>>> have
>> > >>>>>>>>> the type encoded as the hostname so that root-relative URLs
>> > >>> would
>> > >>>>> work
>> > >>>>>>>>> with the URLS.
>> > >>>>>>>>>
>> > >>>>>>>>
>> > >>>>>>>> We discussed this at the Waterloo meetup, and there was
>> > >>> definitely
>> > >>>>> some
>> > >>>>>>>> push for having the authority part in the URL be the real
>> > >>> authority
>> > >>>>>>>> (localhost), for consistent URL handling.
>> > >>>>>>>>
>> > >>>>>>>> Having the FS type be the authority would make some of the
>> > >>> internal
>> > >>>>> URL
>> > >>>>>>>> parsing easier, but I don't know if it causes problems anywhere
>> > >>>> else.
>> > >>>>>>>>
>> > >>>>>>>>
>> > >>>>>>>>>
>> > >>>>>>>>>
>> > >>>>>>>>> Could we get away with just two parameters to each FS root?
>> > >>>>>>>>> 1. Name (use this to determine prefix as cdvfile://${name})
>> > >>>>>>>>> 2. src (URI to be considered the root of the FS).
>> > >>>>>>>>>
>> > >>>>>>>>
>> > >>>>>>>> Those are, internally, the parameters used by the "local
>> > >>>> filesystem"
>> > >>>>> FS
>> > >>>>>>>> type (i.e., not "content" or "assets library".) The actual
>> > >>>> device-FS
>> > >>>>>>> root,
>> > >>>>>>>> though, is currently determined at run time by the device,
>> based
>> > >>> on
>> > >>>>>>> whether
>> > >>>>>>>> it is the temporary or persistent FS.
>> > >>>>>>>>
>> > >>>>>>>>
>> > >>>>>>>>>
>> > >>>>>>>>>
>> > >>>>>>>>>
>> > >>>>>>>>>
>> > >>>>>>>>> On Mon, Jan 13, 2014 at 4:29 PM, Ian Clelland <
>> > >>>>> iclell...@chromium.org
>> > >>>>>>>
>> > >>>>>>>>> wrote:
>> > >>>>>>>>>> On Mon, Jan 13, 2014 at 3:21 PM, Jesse <
>> > >>> purplecabb...@gmail.com
>> > >>>>>
>> > >>>>>>> wrote:
>> > >>>>>>>>>>
>> > >>>>>>>>>>> Will any of the following work?
>> > >>>>>>>>>>>
>> > >>>>>>>>>>> <img src="cdvfile://localhost/persistent/1.png"/>
>> > >>>>>>>>>>>
>> > >>>>>>>>>>> xhr.open("GET","cdvfile://localhost/persistent/data.txt");
>> > >>>>>>>>>>>
>> > >>>>>>>>>>> <link rel="stylesheet" type="text/css"
>> > >>>>>>>>>>> href="cdvfile://localhost/persistent/style.css"/>
>> > >>>>>>>>>>>
>> > >>>>>>>>>>
>> > >>>>>>>>>>
>> > >>>>>>>>>> If the new file plugin is installed, and the file exists,
>> then
>> > >>>> the
>> > >>>>>>> first
>> > >>>>>>>>>> three of those should definitely work (assuming the default
>> > >>>>>>>>> configuration).
>> > >>>>>>>>>>
>> > >>>>>>>>>>
>> > >>>>>>>>>>>
>> > >>>>>>>>>>> <a href="cdvfile://localhost/temporary/site/temp.html"
>> > >>>>>>>>>>> target="_blank">Review Site</a>
>> > >>>>>>>>>>>
>> > >>>>>>>>>>
>> > >>>>>>>>>> I'm not sure about this -- haven't tried it. If it's doing
>> > >>>>>> navigation,
>> > >>>>>>>>> then
>> > >>>>>>>>>> I don't know how it plays with the fact that plugins get
>> > >>>> unloaded
>> > >>>>> or
>> > >>>>>>>>> reset
>> > >>>>>>>>>> at some point.
>> > >>>>>>>>>>
>> > >>>>>>>>>> The in-app-browser version of this:
>> > >>>>>>>>>>
>> > >>>>>>>>>> window.open("cdvfile://localhost/temporary/site/temp.html",
>> > >>>>>> "_blank")
>> > >>>>>>>>>>
>> > >>>>>>>>>> should work just fine.
>> > >>>>>>>>>>
>> > >>>>>>>>>>
>> > >>>>>>>>>>
>> > >>>>>>>>>>>
>> > >>>>>>>>>>>
>> > >>>>>>>>>>> @purplecabbage
>> > >>>>>>>>>>> risingj.com
>> > >>>>>>>>>>>
>> > >>>>>>>>>>>
>> > >>>>>>>>>>> On Mon, Jan 13, 2014 at 10:37 AM, Brian LeRoux <b...@brian.io>
>> > >>>>> wrote:
>> > >>>>>>>>>>>
>> > >>>>>>>>>>>> I am apprehensive about making this surface configurable.
>> > >>> (I
>> > >>>>> can
>> > >>>>>>> live
>> > >>>>>>>>> w/
>> > >>>>>>>>>>>> our own protocol cdvfile:// personally).
>> > >>>>>>>>>>>>
>> > >>>>>>>>>>>> The main use case is being able to add custom storage
>> > >>>> providers
>> > >>>>>> in
>> > >>>>>>> the
>> > >>>>>>>>>>>> future?
>> > >>>>>>>>>>>>
>> > >>>>>>>>>>>> (Might be good to add this to the 'lets talk configuration'
>> > >>>>>>> backlog /
>> > >>>>>>>>>>>> meeting.)
>> > >>>>>>>>>>>>
>> > >>>>>>>>>>>>
>> > >>>>>>>>>>>> On Mon, Jan 13, 2014 at 7:32 AM, Ian Clelland <
>> > >>>>>>> iclell...@chromium.org
>> > >>>>>>>>>>>>> wrote:
>> > >>>>>>>>>>>>
>> > >>>>>>>>>>>>> The new File plugin is essentially ready, for iOS and
>> > >>>> Android
>> > >>>>>>> (with,
>> > >>>>>>>>>>>>> hopefully, no breaking changes for those or other
>> > >>>> platforms)
>> > >>>>>>>>>>>>>
>> > >>>>>>>>>>>>> I had to move away from the "filesystem://" URL scheme --
>> > >>>> on
>> > >>>>>>> Android
>> > >>>>>>>>>>> 4.4,
>> > >>>>>>>>>>>>> that scheme appears to be special, and doesn't defer to
>> > >>>>>>>>>>>>> WebView.shouldInterceptRequest(). (I filed
>> > >>>>>>>>>>>>>
>> > >>>> https://code.google.com/p/chromium/issues/detail?id=333395on
>> > >>>>>>>>> Friday
>> > >>>>>>>>>>>> once
>> > >>>>>>>>>>>>> I
>> > >>>>>>>>>>>>> had isolated the problem.) For now, I've settled on
>> > >>>>>> "cdvfile://",
>> > >>>>>>>>> but
>> > >>>>>>>>>>> the
>> > >>>>>>>>>>>>> issue is open to bikeshedding, I suppose.
>> > >>>>>>>>>>>>>
>> > >>>>>>>>>>>>> What I'd really like to open for discussion though, is
>> > >>> the
>> > >>>>> idea
>> > >>>>>>> of
>> > >>>>>>>>>>> making
>> > >>>>>>>>>>>>> the whole plugin configuration, er, configurable.
>> > >>>>>>>>>>>>>
>> > >>>>>>>>>>>>> The URL scheme is one driving force behind this; the
>> > >>>>> historical
>> > >>>>>>>>>>> locations
>> > >>>>>>>>>>>>> of the TEMPORARY and PERSISTENT filesystems is another;
>> > >>> the
>> > >>>>> new
>> > >>>>>>>>> ability
>> > >>>>>>>>>>>> to
>> > >>>>>>>>>>>>> open up completely new filesystems is a third.
>> > >>>>>>>>>>>>>
>> > >>>>>>>>>>>>> I'm thinking of implementing a section in config.xml that
>> > >>>>> would
>> > >>>>>>>>> define
>> > >>>>>>>>>>>> the
>> > >>>>>>>>>>>>> names of the installed filesystems available to a Cordova
>> > >>>>> app,
>> > >>>>>>> along
>> > >>>>>>>>>>> with
>> > >>>>>>>>>>>>> their type, the URL prefix to use, and any other required
>> > >>>>>> details
>> > >>>>>>>>> (like
>> > >>>>>>>>>>>>> *where the files live*). Something like this:
>> > >>>>>>>>>>>>>
>> > >>>>>>>>>>>>> <widget>
>> > >>>>>>>>>>>>>  <filesystems platform="android">
>> > >>>>>>>>>>>>>    <filesystem name="temporary" type="local-filesystem"
>> > >>>>>>>>>>>>> prefix="cdvfile://localhost/temporary" src="cache" />
>> > >>>>>>>>>>>>>    <filesystem name="persistent" type="local-filesystem"
>> > >>>>>>>>>>>>> prefix="cdvfile://localhost/persistent" src="Documents"
>> > >>> />
>> > >>>>>>>>>>>>>    <filesystem name="content" type="content-filesystem"
>> > >>>>>>>>>>>>> prefix="content://" />
>> > >>>>>>>>>>>>>  </filesystems>
>> > >>>>>>>>>>>>> </widget>
>> > >>>>>>>>>>>>>
>> > >>>>>>>>>>>>> or
>> > >>>>>>>>>>>>>
>> > >>>>>>>>>>>>> <widget>
>> > >>>>>>>>>>>>>  <feature name="File">
>> > >>>>>>>>>>>>>    <filesystems platform="android">
>> > >>>>>>>>>>>>>      <filesystem name="temporary"
>> > >>> type="local-filesystem"
>> > >>>>>>>>>>>>> prefix="cdvfile://localhost/temporary" src="cache" />
>> > >>>>>>>>>>>>>      <filesystem name="persistent"
>> > >>> type="local-filesystem"
>> > >>>>>>>>>>>>> prefix="cdvfile://localhost/persistent" src="Documents"
>> > >>> />
>> > >>>>>>>>>>>>>      <filesystem name="content"
>> > >>> type="content-filesystem"
>> > >>>>>>>>>>>>> prefix="content://" />
>> > >>>>>>>>>>>>>    </filesystems>
>> > >>>>>>>>>>>>>  </feature>
>> > >>>>>>>>>>>>> </widget>
>> > >>>>>>>>>>>>>
>> > >>>>>>>>>>>>> (The platform's defaults.xml, or whatever we're calling
>> > >>> it
>> > >>>>>> these
>> > >>>>>>>>> days,
>> > >>>>>>>>>>>>> could specify the default mapping, so that devs could
>> > >>> write
>> > >>>>>>>>>>>> cross-platform
>> > >>>>>>>>>>>>> apps without having to add this for every platform, or
>> > >>> even
>> > >>>>> at
>> > >>>>>>> all,
>> > >>>>>>>>> if
>> > >>>>>>>>>>>> they
>> > >>>>>>>>>>>>> don't care to change it)
>> > >>>>>>>>>>>>>
>> > >>>>>>>>>>>>> I think that being this explicit will let us change the
>> > >>> url
>> > >>>>>>> scheme
>> > >>>>>>>>> as
>> > >>>>>>>>>>>>> needed (hopefully cdvfile won't need to change, but it
>> > >>>> would
>> > >>>>>> have
>> > >>>>>>>>> if it
>> > >>>>>>>>>>>> was
>> > >>>>>>>>>>>>> still "filesystem"). It could eventually allow new FS
>> > >>>> plugins
>> > >>>>>> to
>> > >>>>>>> be
>> > >>>>>>>>>>> added
>> > >>>>>>>>>>>>> to an app with this mechanism. And it would mean that we
>> > >>>>> could
>> > >>>>>>> roll
>> > >>>>>>>>>>> out a
>> > >>>>>>>>>>>>> default configuration that left the iOS files in their
>> > >>>>> current
>> > >>>>>>>>>>> locations:
>> > >>>>>>>>>>>>>
>> > >>>>>>>>>>>>> <filesystem name="temporary"
>> > >>>>>>>>>>>>>    type="local-filesystem"
>> > >>>>>>>>>>>>>    prefix="cdvfile://localhost/temporary"
>> > >>>>>>>>>>>>>    src="Temporary" />
>> > >>>>>>>>>>>>> <filesystem name="persistent"
>> > >>>>>>>>>>>>>    type="local-filesystem"
>> > >>>>>>>>>>>>>    prefix="cdvfile://localhost/persistent"
>> > >>>>>>>>>>>>>    src="Documents" />
>> > >>>>>>>>>>>>>
>> > >>>>>>>>>>>>> and then, in a later version, we could change the default
>> > >>>> for
>> > >>>>>> new
>> > >>>>>>>>>>>> projects
>> > >>>>>>>>>>>>> to
>> > >>>>>>>>>>>>>
>> > >>>>>>>>>>>>> <filesystem name="temporary"
>> > >>>>>>>>>>>>>    type="local-filesystem"
>> > >>>>>>>>>>>>>    prefix="cdvfile://localhost/temporary"
>> > >>>>>>>>>>>>>    src="Temporary" />
>> > >>>>>>>>>>>>> <filesystem name="persistent"
>> > >>>>>>>>>>>>>    type="local-filesystem"
>> > >>>>>>>>>>>>>    prefix="cdvfile://localhost/persistent"
>> > >>>>>>>>>>>>>    src="Library" />
>> > >>>>>>>>>>>>> <filesystem name="documents"
>> > >>>>>>>>>>>>>    type="local-filesystem"
>> > >>>>>>>>>>>>>    prefix="cdvfile://localhost/documents"
>> > >>>>>>>>>>>>>    src="Documents" />
>> > >>>>>>>>>>>>>
>> > >>>>>>>>>>>>> and existing projects shouldn't see any change. And in
>> > >>> the
>> > >>>>>>> meantime,
>> > >>>>>>>>>>> any
>> > >>>>>>>>>>>>> dev who wanted to use the more sensible filesystem
>> > >>>> locations
>> > >>>>>>> could
>> > >>>>>>>>> just
>> > >>>>>>>>>>>>> change their own config.xml.
>> > >>>>>>>>>>>>>
>> > >>>>>>>>>>>>> I'm going to take a stab at implementing this as
>> > >>> described,
>> > >>>>> but
>> > >>>>>>>>>>>> discussion
>> > >>>>>>>>>>>>> is certainly welcome before it goes out to the world. As
>> > >>>>>> multiple
>> > >>>>>>>>>>> people
>> > >>>>>>>>>>>>> have said, we need to get this right, and not hurt all of
>> > >>>> our
>> > >>>>>>>>> existing
>> > >>>>>>>>>>>>> devs.
>> > >>>>>>>>>>>>>
>> > >>>>>>>>>>>>> Ian
>> > >>>>>>>>>>>>>
>> > >>>>>>>>>>>>
>> > >>>>>>>>>>>
>> > >>>>>>>>>
>> > >>>>>>>
>> > >>>>>>
>> > >>>>>
>> > >>>>
>> > >>>
>> > >
>> >
>>
>
>

Reply via email to