I also support basing our work of the Mozilla spec

Kenneth


On Fri, Mar 14, 2014 at 11:14 AM, Kostiainen, Anssi <
anssi.kostiai...@intel.com> wrote:

> Hi Shawn, Thiago, All,
>
> The current standardization status (no change since 31 Jan) of the various
> file system APIs may be of interest to you:
>
>   http://lists.w3.org/Archives/Public/public-webapps/2014JanMar/0164.html
>
> In short, there is no consensus yet among browser vendors, and thus no
> single API that would be broadly implemented.
>
> Given the current state, my guidance would be to implement any API that
> addresses the requirements you have, and while doing so document the delta
> to the spec you reuse, any issues found, so that we can inform the related
> standards work.
>
> Personally I think the "FileSystem API” proposal (
> http://w3c.github.io/filesystem-api/Overview.html) by Mozilla is more
> aligned with the current API design best practices (e.g. Promises instead
> of callbacks), but AFAICT no-one, not even Mozilla, has shipped it yet.
> Also in terms of standards maturity it is an early draft. The showstopper
> for you is that it’s a sandboxed file system. That said, web developers
> seem to be in favour of the Promises-based API, as we’re getting feedback
> such as the following from web developers:
>
> [[
>
> The callback-based approach of the Google proposal let us end up in
> callback hell right from the start, so we wrapped the whole API in promises
> as best as we could, just to make it usable for our app developers. In that
> department, Mozilla’s promises-based proposal might be much cleaner and
> easier to work with.
>
>   http://lists.w3.org/Archives/Public/public-webapps/2014JanMar/0198.html
>
> ]]
>
> By implementing and shipping the feature in Crosswalk regardless of the
> shape of the API we are able to gather further feedback from web developers
> using the API.
>
> Thanks,
>
> -Anssi
>
>
>
> On 13 Mar 2014, at 14:56, Thiago Marcos P. Santos <thiago.san...@intel.com>
> wrote:
>
> > LGTM, let me know if I can help on something.
> >
> > Would be good to have this API on all the platforms we support.
> >
> > On 03-03-2014 12:11, Gao, Shawn wrote:
> >> *Description:*
> >> Native file API allows web app developer to read, write and enumerate
> >> native file system via JavaScript. From Webapp developer perspective,
> >> most of interfaces in W3C _File API: Directories and System_
> >> <http://www.w3.org/TR/file-system-api/> [1] and_File API: Writer_
> >> <http://www.w3.org/TR/file-writer-api/>[2] will be reused. For example,
> >> FileEntry, DirectoryEntry, FileWriter, etc.
> >> In Chromium technical scope, there are two related file system API: W3C
> >> file API[1][2] and _Chrome extension file API_
> >> <http://developer.chrome.com/apps/app_storage>[3]. Neither one can
> >> satisfy above requirements:
> >>
> >> 1. W3C file API is sandbox file system.
> >> 2. Chrome extension file API is only available on top of chrome
> >>    extension, which won’t support on Crosswalk. Secondly, it pops up
> >>    file chooser dialog each time for security concern.
> >>
> >> *Affected component:*
> >>
> >> 1. xwalk/runtime/renderer/
> >>
> >> Add code here to handle JavaScript function call to Isolated File System
> >> API. Send Isolated File System requests to browser process through IPC.
> >>
> >> 2. xwalk/runtime/browser/
> >>
> >> Handle Isolated File System requests from render process
> >>
> >> 3. xwalk/experimental/
> >>
> >> Inject Isolated File System JavaScript code to render via xwalk
> >> extension mechanism.
> >> *Related feature: *
> >> _https://crosswalk-project.org/jira/browse/XWALK-672_
> >> *Target Release:***
> >> Crosswalk 6
> >> *Implementation details:*
> >> The implementaion is build on top of ”Isolated File System”, which is
> >> used by Chrome extension file API as well. Blink already have Isolated
> >> File System support. So, I can use it to create FileSystem object in
> >> Javascript context with out modify upstream Blink code. Then, I am going
> >> to follow the Chrome extesnion file API way to implement Crosswalk
> >> native file system.
> >> File System Design Chart:
> >> Limitations:
> >> ========
> >>
> >> 1. Linux, Tizen and Android will be supportted. Windows and MacOS are
> >>    not condidered.
> >> 2. Sync file API is not included in this feature.
> >>
> >> Security consideration:
> >> =================
> >>
> >> 1. For Linux and Tizen: reply on Crosswalk extension security machanism.
> >> 2. For Andoid: WRITE_EXTERNAL_STORAGE and MOUNT_UNMOUNT_FILESYSTEMS
> >>    need to be declared in the activity manifest.
> >>
> >> IDL:
> >> ===
> >> /[Supplemental, NoInterfaceObject]/
> >> /interface FileSystem {/
> >> /void //_requestNativeFileSystem_/
> >> <http://www.w3.org/TR/file-system-api/>/(DOMString path,
> >> //_FileSystemCallback_/
> >> <http://www.w3.org/TR/file-system-api/>/successCallback, optional
> >> //_ErrorCallback_/ <http://www.w3.org/TR/file-system-api/
> >/errorCallback);/
> >> /};/
> >> Description:
> >> Requests a native filesystem in which to store application data.If
> >> successful, this function must give access to a native files ystem, as
> >> defined above.
> >> Paramters:
> >>
> +----------------+--------------------+---------+--------+-----------------------------------+
> >> |Parameter       | Type               |Nullable |Optional|
> >> Description                       |
> >>
> +----------------+--------------------+---------+--------+-----------------------------------+
> >> |path            | DOMString          |   no    |  no    |The real path
> >> on native system     |
> >>
> +----------------+--------------------+---------+--------+-----------------------------------+
> >> |successCallback | FileSystemCallback |   no    |  no    |The callback
> >> that is called when   |
> >> |                |                    |         |        |user agent
> >> provides a file system  |
> >>
> +----------------+--------------------+---------+--------+-----------------------------------+
> >> |errorCallback   | ErrorCallback      |   no    |  yes   |A callback
> >> that is called when     |
> >> |                |                    |         |        |errors
> >> happend, or when the reqeust|
> >> |                |                    |         |        |to obtain the
> >> filesystem is denied |
> >>
> +----------------+--------------------+---------+--------+-----------------------------------+
> >>
> >> Return Type: void
> >> More background:
> >> ==============
> >> There are two options were discussed before, neither are accepted with
> >> reasons.
> >>
> >> 1. Improve file API in Blink to support out-of-sandbox file access.
> >>    Abondoneded because of maintainence concern.
> >> 2. Implement a new file API that expose the C file API interface.
> >>    Abondoneded because incompatible with W3C file interfaces.
> >>
> >> *References:*
> >> */[1] /**/_http://www.w3.org/TR/file-system-api/_/*
> >> */[2]/**//**/_http://www.w3.org/TR/file-writer-api/_/*
> >> */[3] /**/_http://developer.chrome.com/apps/app_storage_/*
> >> Thanks,
> >> -Shawn
> >
> > _______________________________________________
> > Crosswalk-dev mailing list
> > Crosswalk-dev@lists.crosswalk-project.org
> > https://lists.crosswalk-project.org/mailman/listinfo/crosswalk-dev
>
> _______________________________________________
> Crosswalk-dev mailing list
> Crosswalk-dev@lists.crosswalk-project.org
> https://lists.crosswalk-project.org/mailman/listinfo/crosswalk-dev
>



-- 
Kenneth Rohde Christiansen
Web Platform Architect, Intel Corporation.
Phone  +45 4294 9458 ﹆﹆﹆
_______________________________________________
Crosswalk-dev mailing list
Crosswalk-dev@lists.crosswalk-project.org
https://lists.crosswalk-project.org/mailman/listinfo/crosswalk-dev

Reply via email to