Re: Transferring File* to WebApps - redux

2010-06-22 Thread Eric Uhrhane
On Fri, Jun 18, 2010 at 10:53 AM, SULLIVAN, BRYAN L (ATTCINW)
 wrote:
> Eric,
> Based upon your responses there are a couple of additional things we
> need to check on, but I'll look deeper into the current specs for the
> things that should already be supported.
>
> The additional things are:
>
> - how to safely grant access "outside the sandbox", which depends upon
> ability to discover available file systems in persistent storage and
> select arbitrary locations within them. We would prefer that this
> functional capability is addressed within the File* APIs directly rather
> than through an extension API in DAP, thus we may propose two additional
> methods for the LocalFilesystem interface:
>   getDefaultLocation: as from
> http://bondi.omtp.org/1.1/apis/filesystem.html#getDefaultLocationN101E4
>   getRootLocations: as from
> http://bondi.omtp.org/1.1/apis/filesystem.html#getRootLocationsN10253
> These methods can be covered under the general one-time prompt approach
> or under the policy approach (once we have worked out how the File* APIs
> are covered under that, e.g. by association of widget feature URIs).

Given that these methods would have security implications well beyond
the current spec, I'd prefer to have them added in a later pass,
either in an extension spec or in a later version of the filesystem
spec.  We've got enough to argue about in there already, and if we try
to do too much in one pass, we'll bog down.  These certainly look like
logical extensions to what we've been discussing, though.

> - clarify the difference between "memory" and "persistent storage": "In
> memory" usually means the content is in the working RAM of a device. The
> File* specs talk about working with files "in memory" which I take to
> mean that the file has been read from persistent storage into the
> working memory of the browser (upon selection by the user), and is being
> read or updated (with presumed writing back to persistent storage
> later). The different may be subtle but is important. If what's meant
> instead of a file copy "in memory" is that the webapp can *directly*
> access/update a file in persistent storage, then I suggest the spec
> terminology be updated to make that clear.

Arun: in 5.4 and 5.5.1, I think you want to change "in memory" to
"into memory" to match the other 15-or-so instances of that phrase in
the spec.  Bryan, is that sufficient?

> Thanks,
> Bryan Sullivan | AT&T
>
>
> -Original Message-
> From: Eric Uhrhane [mailto:er...@google.com]
> Sent: Wednesday, June 16, 2010 4:42 PM
> To: SULLIVAN, BRYAN L (ATTCINW)
> Cc: a...@mozilla.com; Robin Berjon; public-device-a...@w3.org; Ian
> Fette; Web Applications Working Group WG
> Subject: Re: Transferring File* to WebApps - redux
>
> Sorry about the delay in response; I've been out of the office for the
> past 10 days.  [Also, sorry Bryan--I forgot to reply-all.]
>
> On Tue, Jun 15, 2010 at 3:24 PM, SULLIVAN, BRYAN L (ATTCINW)
>  wrote:
>> I am not meaning to be unfair, perhaps the message is not coming
> through
>> clearly enough.
>>
>> There are specific technical requirements that we need these APIs to
>> fulfill, that I indicated to Thomas in another email:
>> 1) access filesystems on the host device
>
> FileSystem/FileWriter/FileReader do this.
>
>> 2) traverse directories
>
> FileSystem does this.  Currently it's only specced to do so within a
> per-origin sandbox, but the API could be used outside the sandbox if
> another spec defined a mechanism to grant such access safely.
>
>> 3) read files as they exist on the filesystem (not just a local
>> representation in memory, as currently defined in the File API to my
>> understanding), in bytes and lines
>
> FileReader does this [not sure what you mean about a local
> representation--if you can read an on-disk file, you're doing so via
> memory].
>
>> 4) write files (similar requirement to write directly to the
>> filesystem), in bytes and lines, with overwrite and append options
>
> FileSystem/FileWriter do this [details of appending still being hammered
> out].
>
>> 5) do the above programmatically in Javascript (not dependent just
> upon
>> user selection of an input element and interaction with a file
> selector)
>
> FileSystem does this.  And no, there's no need for the UA to prompt
> the user on each access; permissions should be more on the order of
> "can access temporary filesystem storage" and "can access persistent
> filesystem storage", and need only be granted once.
>
>> 6) provide security for this using the policy-framework approach as
>> being defined for DAP APIs
>
> This remains for DAP to work out.  It should be fairly straightforward
> to add a policy-based mechanism to grant access to FileSystem APIs
> [e.g. your example "documents" folder, via resolveLocalFilesystemURI,
> mentioned elsewhere in this thread].
>
> Thanks,
>
>    Eric
>



RE: Transferring File* to WebApps - redux

2010-06-18 Thread SULLIVAN, BRYAN L (ATTCINW)
Eric,
Based upon your responses there are a couple of additional things we
need to check on, but I'll look deeper into the current specs for the
things that should already be supported.

The additional things are:

- how to safely grant access "outside the sandbox", which depends upon
ability to discover available file systems in persistent storage and
select arbitrary locations within them. We would prefer that this
functional capability is addressed within the File* APIs directly rather
than through an extension API in DAP, thus we may propose two additional
methods for the LocalFilesystem interface:
   getDefaultLocation: as from
http://bondi.omtp.org/1.1/apis/filesystem.html#getDefaultLocationN101E4 
   getRootLocations: as from
http://bondi.omtp.org/1.1/apis/filesystem.html#getRootLocationsN10253 
These methods can be covered under the general one-time prompt approach
or under the policy approach (once we have worked out how the File* APIs
are covered under that, e.g. by association of widget feature URIs).

- clarify the difference between "memory" and "persistent storage": "In
memory" usually means the content is in the working RAM of a device. The
File* specs talk about working with files "in memory" which I take to
mean that the file has been read from persistent storage into the
working memory of the browser (upon selection by the user), and is being
read or updated (with presumed writing back to persistent storage
later). The different may be subtle but is important. If what's meant
instead of a file copy "in memory" is that the webapp can *directly*
access/update a file in persistent storage, then I suggest the spec
terminology be updated to make that clear. 

Thanks, 
Bryan Sullivan | AT&T


-Original Message-
From: Eric Uhrhane [mailto:er...@google.com] 
Sent: Wednesday, June 16, 2010 4:42 PM
To: SULLIVAN, BRYAN L (ATTCINW)
Cc: a...@mozilla.com; Robin Berjon; public-device-a...@w3.org; Ian
Fette; Web Applications Working Group WG
Subject: Re: Transferring File* to WebApps - redux

Sorry about the delay in response; I've been out of the office for the
past 10 days.  [Also, sorry Bryan--I forgot to reply-all.]

On Tue, Jun 15, 2010 at 3:24 PM, SULLIVAN, BRYAN L (ATTCINW)
 wrote:
> I am not meaning to be unfair, perhaps the message is not coming
through
> clearly enough.
>
> There are specific technical requirements that we need these APIs to
> fulfill, that I indicated to Thomas in another email:
> 1) access filesystems on the host device

FileSystem/FileWriter/FileReader do this.

> 2) traverse directories

FileSystem does this.  Currently it's only specced to do so within a
per-origin sandbox, but the API could be used outside the sandbox if
another spec defined a mechanism to grant such access safely.

> 3) read files as they exist on the filesystem (not just a local
> representation in memory, as currently defined in the File API to my
> understanding), in bytes and lines

FileReader does this [not sure what you mean about a local
representation--if you can read an on-disk file, you're doing so via
memory].

> 4) write files (similar requirement to write directly to the
> filesystem), in bytes and lines, with overwrite and append options

FileSystem/FileWriter do this [details of appending still being hammered
out].

> 5) do the above programmatically in Javascript (not dependent just
upon
> user selection of an input element and interaction with a file
selector)

FileSystem does this.  And no, there's no need for the UA to prompt
the user on each access; permissions should be more on the order of
"can access temporary filesystem storage" and "can access persistent
filesystem storage", and need only be granted once.

> 6) provide security for this using the policy-framework approach as
> being defined for DAP APIs

This remains for DAP to work out.  It should be fairly straightforward
to add a policy-based mechanism to grant access to FileSystem APIs
[e.g. your example "documents" folder, via resolveLocalFilesystemURI,
mentioned elsewhere in this thread].

Thanks,

Eric



Re: Transferring File* to WebApps - redux

2010-06-16 Thread Eric Uhrhane
Sorry about the delay in response; I've been out of the office for the
past 10 days.  [Also, sorry Bryan--I forgot to reply-all.]

On Tue, Jun 15, 2010 at 3:24 PM, SULLIVAN, BRYAN L (ATTCINW)
 wrote:
> I am not meaning to be unfair, perhaps the message is not coming through
> clearly enough.
>
> There are specific technical requirements that we need these APIs to
> fulfill, that I indicated to Thomas in another email:
> 1) access filesystems on the host device

FileSystem/FileWriter/FileReader do this.

> 2) traverse directories

FileSystem does this.  Currently it's only specced to do so within a
per-origin sandbox, but the API could be used outside the sandbox if
another spec defined a mechanism to grant such access safely.

> 3) read files as they exist on the filesystem (not just a local
> representation in memory, as currently defined in the File API to my
> understanding), in bytes and lines

FileReader does this [not sure what you mean about a local
representation--if you can read an on-disk file, you're doing so via
memory].

> 4) write files (similar requirement to write directly to the
> filesystem), in bytes and lines, with overwrite and append options

FileSystem/FileWriter do this [details of appending still being hammered out].

> 5) do the above programmatically in Javascript (not dependent just upon
> user selection of an input element and interaction with a file selector)

FileSystem does this.  And no, there's no need for the UA to prompt
the user on each access; permissions should be more on the order of
"can access temporary filesystem storage" and "can access persistent
filesystem storage", and need only be granted once.

> 6) provide security for this using the policy-framework approach as
> being defined for DAP APIs

This remains for DAP to work out.  It should be fairly straightforward
to add a policy-based mechanism to grant access to FileSystem APIs
[e.g. your example "documents" folder, via resolveLocalFilesystemURI,
mentioned elsewhere in this thread].

Thanks,

Eric



Re: Transferring File* to WebApps - redux

2010-06-16 Thread Arun Ranganathan

On 6/16/10 12:59 PM, David Rogers wrote:


[DAVID] I was actually referring to:
http://dev.w3.org/2009/dap/privacy-reqs/


(As mentioned in previous correspondence, I think securing an API and 
privacy can be decoupled, but both are very relevant topics).


I've read that document and think that much of it is reasonable (the 
first section matches the section in the licensing document, which I 
thought was reasonable), but I strongly disagree with the explicit vs. 
implicit reasoning here.  You say:


"D evice APIs may also be defined such that consent must be explicit, 
not implicit. Examples are a camera API that takes a photograph without 
user involvement, or a messaging API that sends a message without the 
user pressing "send." In these cases dialogs may be required."


A Camera API that takes a photograph without user involvement seems like 
something that is risky to build into web content, and I'm not sure I 
totally understand the use case behind it.  Earlier email threads have 
raised the issue of the policy-file based security model.  While you say 
dialogs 'may' be required, you also make a case for not overwhelming the 
use with dialogs.  This isn't as clear as it could be.


Bryan's email -- 
http://lists.w3.org/Archives/Public/public-webapps/2010AprJun/1050.html 
-- gives a good explanation of points where it may make sense to specify 
additions to the API.  Robin's email -- 
http://lists.w3.org/Archives/Public/public-webapps/2010AprJun/1055.html 
-- proposes a layered approach in the File* context which makes sense, 
namely layering into the existing File model additional features that 
cross the current sandbox.





and yes I don't want to
pre-judge the outcome of the workshop but we all pretty much acknowledge
that there are privacy issues we need to deal with and that the design
of any the work we're doing here should take it into account (in the
same way as security). The whole basis of establishing the DAP working
group was to protect the consumer and improve on the current status quo.
Like you, I'm not precious about where things live, but I just want to
make sure that if the file related APIs go into webapps that we can
continue in that spirit, not just forget all that - otherwise there is
no point and you won't see take-up of the API in the long-term because
it would be too risky. As I said before, there is no value in creating a
schism here, it would create more problems for W3C as a community and is
absolutely needless.
   


I think privacy is important.  I think security is important.  I think 
wherever work is done, both should be respected.


   

2) Also, please can you outline the security model that you will
 

propose
   

if it does transfer to WebApps - would it allow for management of
 

access
   

to the file system by policy (in the BONDI manner or by Google
 

Powerbox
   

or Mozilla's separate policy scheme)?

 


   




  If so, the security model (which needs
more work and shouldn't be considered final by any means) probably
shouldn't be based on policy schemes like BONDI's policy language.  I'm
not sure yet what to make of PowerBox, but I'm personally not
considering it in this regard.  There isn't a separate Mozilla policy
scheme, but the same-origin scheme for scripts and the separation of
chrome content and web content is applicable here.

[DAVID] So I'll take that as an agreement that we need to address the
security model properly before we can progress. Can we work together to
achieve this?
   


Certainly.  If you have concerns about security (or privacy) in any 
WebApps API, you should share these on the listserv.
   

3) Would your proposed API require prompts to the user and explicit
 

user
   

acceptance of some sort?

 

*Which* proposed API?  The File API (covering FileReader) already uses
the existing selection mechanism via input elements, and is shipping in
Firefox 3.6.3.  This does have explicit user acceptance, but this model
has already been around in the web for interacting with file systems.
We should secure this model further in lieu of proposing a new one.  So,

earlier proposals for spawning a script-only FileDialog were abandoned.

[DAVID] Yes agreed, so this is where OMTP and Google are coming from -
we need to deal with this issue head-on. How would you propose to deal
with file writing if you need explicit user acceptance - bombard the
user with prompts? It doesn't and can't work and is an out-of-date
mechanism that has been abused for years via social engineering and
technical means. Users end up having to download applications to do this
sort of stuff now for picture uploading etc. Let's try and tackle it
together and come up with a decent solution, but first we need to agree
that these issues will be properly taken into consideration if file
writing moves over from DAP.
   


The user shouldn't be bombarded with prompts, nor should user 
notification be bypassed.  You've identified an important issue, 

RE: Transferring File* to WebApps - redux

2010-06-16 Thread David Rogers
Hi Arun,

-Original Message-
From: Arun Ranganathan [mailto:a...@mozilla.com] 
Sent: 16 June 2010 19:48

On 6/16/10 2:16 AM, David Rogers wrote:
>
>> The question of where you are represented and your ability to
>> participate cuts both ways - the same is true for us. I think if the
>> browser vendors want their products really to be seen as compatible
>>  
> with
>
>> the Web application space (as compared to just dynamic Web pages),
>>  
> they
>
>> will support the work in DAP as its there that non-obtrusive and
>> inherently secure models for Web application access to device
>>  
> resources
>
>> will be defined as APIs.
>>
>>  
> At present time, I think that the paragraph above accurately
summarizes
> a technical rift between certain members of both working groups (DAP
and
>
> WebApps).  It may not be worthwhile to resolve this rift, and we
should
> allow disparate families of specifications to bloom, taking care not
to
> cause developer confusion with naming (a hard problem).  Where
> specifications worked on in the DAP WG lend themselves to
implementation
>
> plans, I think Mozilla participants interested in these can comment on
> them (e.g. Contacts API, at least for now).
>
> [DAVID] I don't think it is worth creating a schism. The file API
hadn't
> been touched since 2006 when we started looking at this work so it is
> good that we have managed to help motivate some further work on it. A
> number of browser vendors are involved in DAP and are starting to
build
> DAP APIs so I think this might be an incorrect assumption too. We're
all
> in this together, so let's try and get it right for the user.
>
> The key question remains around security model. OMTP members believe
in
> separating policy for good security reasons and to advance the general
> discipline away from the natural answer which would be 'provide a
prompt
> or explicit user interaction'. If we slip back into this old way of
> thinking, we are destined for failure. Yes, at some point you need
user
> interaction but let's try to minimise that in an intelligent manner
> which means that the user is not bombarded with prompts, making the
> system less secure. So, some questions from me:
>
> 1) I want to make sure that we can continue the good privacy work that
> has been started in DAP - please can you clarify if you would propose
> adopting those requirements if transferred to WebApps?
>

I think you are referring to: 
http://dev.w3.org/2009/dap/docs/privacy-license.html .  Is that correct?

If so, that's a document that seems like a really good start.  There's 
an upcoming workshop on this subject for which Aza Raskin has submitted 
a paper which also posits a "license" style model, but couples it with 
easy user-readable icons.  I don't mind where general privacy guidelines

live.  I think what's wise is to allow for maximum browser vendor 
review, but additional charter items on WebApps is hard.  I think we can

review sensible privacy guidelines wherever they live; they don't have 
to be transferred, but widespread review is desirable.

It might be useful to decouple privacy from a secure model for APIs.

[DAVID] I was actually referring to:
http://dev.w3.org/2009/dap/privacy-reqs/ and yes I don't want to
pre-judge the outcome of the workshop but we all pretty much acknowledge
that there are privacy issues we need to deal with and that the design
of any the work we're doing here should take it into account (in the
same way as security). The whole basis of establishing the DAP working
group was to protect the consumer and improve on the current status quo.
Like you, I'm not precious about where things live, but I just want to
make sure that if the file related APIs go into webapps that we can
continue in that spirit, not just forget all that - otherwise there is
no point and you won't see take-up of the API in the long-term because
it would be too risky. As I said before, there is no value in creating a
schism here, it would create more problems for W3C as a community and is
absolutely needless.

> 2) Also, please can you outline the security model that you will
propose
> if it does transfer to WebApps - would it allow for management of
access
> to the file system by policy (in the BONDI manner or by Google
Powerbox
> or Mozilla's separate policy scheme)?
>

Are you talking about the email Robin sent about transferring FileWriter

and FileSystem over to WebApps? 

[DAVID] Yes, that is what this whole message thread is about.

 If so, the security model (which needs 
more work and shouldn't be considered final by any means) probably 
shouldn't be based on policy schemes like BONDI's policy language.  I'm 
not sure yet what to make of PowerBox, but I'm personally not 
considering it in this regard.  There isn't a separate Mozilla policy 
scheme, but the same-origin scheme for scripts and the separation of 
chrome content and web content is applicable here.

[DAVID] So I'll take that as an 

Re: Transferring File* to WebApps - redux

2010-06-16 Thread Arun Ranganathan

Hi David,

Thanks for your questions.

On 6/16/10 2:16 AM, David Rogers wrote:
   

The question of where you are represented and your ability to
participate cuts both ways - the same is true for us. I think if the
browser vendors want their products really to be seen as compatible
 

with
   

the Web application space (as compared to just dynamic Web pages),
 

they
   

will support the work in DAP as its there that non-obtrusive and
inherently secure models for Web application access to device
 

resources
   

will be defined as APIs.

 

At present time, I think that the paragraph above accurately summarizes
a technical rift between certain members of both working groups (DAP and

WebApps).  It may not be worthwhile to resolve this rift, and we should
allow disparate families of specifications to bloom, taking care not to
cause developer confusion with naming (a hard problem).  Where
specifications worked on in the DAP WG lend themselves to implementation

plans, I think Mozilla participants interested in these can comment on
them (e.g. Contacts API, at least for now).

[DAVID] I don't think it is worth creating a schism. The file API hadn't
been touched since 2006 when we started looking at this work so it is
good that we have managed to help motivate some further work on it. A
number of browser vendors are involved in DAP and are starting to build
DAP APIs so I think this might be an incorrect assumption too. We're all
in this together, so let's try and get it right for the user.

The key question remains around security model. OMTP members believe in
separating policy for good security reasons and to advance the general
discipline away from the natural answer which would be 'provide a prompt
or explicit user interaction'. If we slip back into this old way of
thinking, we are destined for failure. Yes, at some point you need user
interaction but let's try to minimise that in an intelligent manner
which means that the user is not bombarded with prompts, making the
system less secure. So, some questions from me:

1) I want to make sure that we can continue the good privacy work that
has been started in DAP - please can you clarify if you would propose
adopting those requirements if transferred to WebApps?
   


I think you are referring to: 
http://dev.w3.org/2009/dap/docs/privacy-license.html .  Is that correct?


If so, that's a document that seems like a really good start.  There's 
an upcoming workshop on this subject for which Aza Raskin has submitted 
a paper which also posits a "license" style model, but couples it with 
easy user-readable icons.  I don't mind where general privacy guidelines 
live.  I think what's wise is to allow for maximum browser vendor 
review, but additional charter items on WebApps is hard.  I think we can 
review sensible privacy guidelines wherever they live; they don't have 
to be transferred, but widespread review is desirable.


It might be useful to decouple privacy from a secure model for APIs.


2) Also, please can you outline the security model that you will propose
if it does transfer to WebApps - would it allow for management of access
to the file system by policy (in the BONDI manner or by Google Powerbox
or Mozilla's separate policy scheme)?
   


Are you talking about the email Robin sent about transferring FileWriter 
and FileSystem over to WebApps?  If so, the security model (which needs 
more work and shouldn't be considered final by any means) probably 
shouldn't be based on policy schemes like BONDI's policy language.  I'm 
not sure yet what to make of PowerBox, but I'm personally not 
considering it in this regard.  There isn't a separate Mozilla policy 
scheme, but the same-origin scheme for scripts and the separation of 
chrome content and web content is applicable here.



3) Would your proposed API require prompts to the user and explicit user
acceptance of some sort?
   


*Which* proposed API?  The File API (covering FileReader) already uses 
the existing selection mechanism via input elements, and is shipping in 
Firefox 3.6.3.  This does have explicit user acceptance, but this model 
has already been around in the web for interacting with file systems.  
We should secure this model further in lieu of proposing a new one.  So, 
earlier proposals for spawning a script-only FileDialog were abandoned.


-- A*



Re: Transferring File* to WebApps - redux

2010-06-16 Thread Nathan
er-agent.


Interaction with data sources from the application would all be through 
ecmascript (xhr/xdr) and be RESTful in nature, these data sources would 
not be from the same origin (as I only made the app, not the data), 
rather it would pull from the web of data.


I would like the user to be able to  any files they liked, 
however these files would be exposed through HTTP and addressed with 
URIs, I care not for some file access api but would rather see the focus 
go in to exposing peoples resources through http.


I'd want any personally identifiable information to always be sent over 
secure channels [http+tls], and any sensitive resources to be accessed 
via http+tls, access to that resource should be determined by the 
server, but this can only be done if the person is also identified, thus 
a client side certificate with a unique identifier for the person would 
have to be presented in the http+tls session.


And finally, but most importantly, I'd like this application to run on 
any device and in any user-agent that supports html5 and ecmascript, 
after all, why shouldn't this be possible?


What we all need, and want, is just a way to create an application, wrap 
it up and know that whoever wants to can run it on whatever device (and 
in whatever ua) they please - this isn't a pipe dream, and everything 
needed already exists - it just needs pieced together and for you guys 
to adopt + promote.


Apologies for the length of the mail, but you know.. had to say it..

Best,

Nathan

SULLIVAN, BRYAN L (ATTCINW) wrote:

Arun,

The basic concern I have is with the notion of "browsers" as the only
Web context and use-case that matters. The browser-based model for API
integration view (as I understand your position) is that the user must
be actively involved in every significant action, and choose explicitly
the actions that enable integration with browser-external resources
(including local and remote). Step back and you will see the
inconsistency in that (what would Ajax be if the user had to approved
every HTTP API request via an  element?).

Webapps are much more than just dynamic Web pages. They are
applications, and with HTML5 will have the ability to rival desktop
applications, as is clearly the vision of many in the industry. It might
even enable a return to a thin client world (e.g. browser as OS) in
which most significant resources are cloud-based. I see the logic and
value in that, but it's not the only valid (and valuable) model.

W3C focuses on the Web, and the Web is bigger than the browser use-case.
HTML5 and the APIs that attach HTML-based applications to the world can
actually be the application platform for the next era of the Web, but
only if we do not limit the options to the user-centric/control
paradigms of the past.

Thanks, 
Bryan Sullivan | AT&T



-Original Message-
From: Arun Ranganathan [mailto:a...@mozilla.com] 
Sent: Tuesday, June 15, 2010 1:48 PM

To: SULLIVAN, BRYAN L (ATTCINW)
Cc: Robin Berjon; public-device-a...@w3.org; Ian Fette; Web Applications
Working Group WG
Subject: Re: Transferring File* to WebApps - redux

On 6/15/10 1:15 PM, SULLIVAN, BRYAN L (ATTCINW) wrote:

We would not be in favor of this transfer. We believe this API needs

to

be developed in the DAP group, as our vision for its functionality was
driven by the input from BONDI and in general as a *device* API (as
compared to an abstracted API for cloud-based file resources), and we

do

not believe that vision will be fulfilled if this work is transferred

to

Webapps.
   


The BONDI API isn't a good starting place for an API that can be built 
into web browsers, since it doesn't gracefully layer into the existing 
HTML input element model for file selection.  You are making a 
distinction I don't understand clearly, since we're not really 
considering "cloud-based file resources" with the FileReader API.  
Rather, we are considering file resources resident on the device.  The 
API allows you to select them using an input element, and then access 
the file resource and programmatically manipulate it as a Blob.  
Similarly, the FileWriter API allows you to use the "save as" channel to


write to the device in question.  The FileSystem specification posits an

abstraction that isn't necessarily "cloud-based" (although FWIW that is 
also possible).


If you have a different vision, then that vision is incompatible with 
web browsers.  In this case, I'd encourage the DAP WG, which *also* has 
a charter to work on file system deliverables, to construct an API which


matches the use case you have in mind.  You may then pursue the relevant

BONDI API, which as a browser vendor I cannot consider.


If the issue is the level of discussion in this group, that can be
addressed. For one, I have seen quite a lot of traffic on the DAP

email

list about this, so I don't understand the question of activity.

RE: Transferring File* to WebApps - redux

2010-06-16 Thread David Rogers

> The question of where you are represented and your ability to
> participate cuts both ways - the same is true for us. I think if the
> browser vendors want their products really to be seen as compatible
with
> the Web application space (as compared to just dynamic Web pages),
they
> will support the work in DAP as its there that non-obtrusive and
> inherently secure models for Web application access to device
resources
> will be defined as APIs.
>

At present time, I think that the paragraph above accurately summarizes 
a technical rift between certain members of both working groups (DAP and

WebApps).  It may not be worthwhile to resolve this rift, and we should 
allow disparate families of specifications to bloom, taking care not to 
cause developer confusion with naming (a hard problem).  Where 
specifications worked on in the DAP WG lend themselves to implementation

plans, I think Mozilla participants interested in these can comment on 
them (e.g. Contacts API, at least for now).

[DAVID] I don't think it is worth creating a schism. The file API hadn't
been touched since 2006 when we started looking at this work so it is
good that we have managed to help motivate some further work on it. A
number of browser vendors are involved in DAP and are starting to build
DAP APIs so I think this might be an incorrect assumption too. We're all
in this together, so let's try and get it right for the user.

The key question remains around security model. OMTP members believe in
separating policy for good security reasons and to advance the general
discipline away from the natural answer which would be 'provide a prompt
or explicit user interaction'. If we slip back into this old way of
thinking, we are destined for failure. Yes, at some point you need user
interaction but let's try to minimise that in an intelligent manner
which means that the user is not bombarded with prompts, making the
system less secure. So, some questions from me:

1) I want to make sure that we can continue the good privacy work that
has been started in DAP - please can you clarify if you would propose
adopting those requirements if transferred to WebApps? 
2) Also, please can you outline the security model that you will propose
if it does transfer to WebApps - would it allow for management of access
to the file system by policy (in the BONDI manner or by Google Powerbox
or Mozilla's separate policy scheme)?
3) Would your proposed API require prompts to the user and explicit user
acceptance of some sort?

Thanks,


David.



RE: Transferring File* to WebApps - redux

2010-06-15 Thread SULLIVAN, BRYAN L (ATTCINW)
Mike,

 

To be clear - I'm not saying that the current File* APIs are poorly
designed or that they won't be useful. As I have read through them I
agree there is a lot of the functionality that we are looking for in
them and we appreciate the effort it took to create them, even though
they are different from the BONDI API (there are many good ways to
design such things). Extending them will be one option if we can't
resolve the gaps in the APIs directly.

 

But if we can count on a couple of key things then in the interest of
having a single API for developers to use, I would agree we should focus
on these APIs and see how far they can take us:

 

1)  An app can use resolveLocalFilesystemURI directly to resolve a
generic filesystem URI, e.g. "documents", "pictures", "videos", "music"
(we can create a normative set of these), or some other URI that is
known to be supported by the device (which is itself known for example
through the System Info API), e.g. file://home/user
 . Alternatively we can extend the LocalFilesystem
interface with a getRootLocations method ala the BONDI filesystem API.

2)  Access to resolveLocalFilesystemURI can be defined in policy (the
resolve method can have an assigned feature URI used in widget config
and policy documents), thus the user does not have to be prompted (if
the app is trusted) or the  element used.

 

Note that the alternatives requestPersistentFilesystem and
requestTemporaryFilesystem are quite useful also, and may support the
majority of use cases anyway.

 

Thanks, 

Bryan Sullivan | AT&T

 

From: Mike Clement [mailto:mi...@google.com] 
Sent: Tuesday, June 15, 2010 4:40 PM
To: SULLIVAN, BRYAN L (ATTCINW)
Cc: a...@mozilla.com; Robin Berjon; public-device-a...@w3.org; Ian
Fette; Web Applications Working Group WG
Subject: Re: Transferring File* to WebApps - redux

 

As I understand it, #5 (programmatic access to files without user
interaction) is indeed supported via the getFile method.  But again,
this is only within the sandboxed filesystem, not for an arbitrary file
on the device.

 

As for #6, I can't speak to the "policy-framework approach", but I do
know that the security provisions for manipulating files with regards to
JavaScript will be the usual same-origin policy.

 

--mike

 

 

On Tue, Jun 15, 2010 at 3:55 PM, SULLIVAN, BRYAN L (ATTCINW)
 wrote:

Actually I think "sandboxing" an app into a certain area of the
filesystem, especially for less-trusted apps, is a useful model. But I
don't think the current File* APIs will support the items 5-6 that I
mention below.

5) do the above programmatically in Javascript (not dependent just upon
user selection of an input element and interaction with a file selector)

6) provide security for this using the policy-framework approach as
being defined for DAP APIs

 

In BONDI, it's possible to define the sandbox as policy and avoid the
user needing to select it. For example it's possible to restrict an
application to:

* a "temp" filesystem location (whatever that maps to on the
current device)

* other "well-known" filesystem locations

* browser-internal storage (e.g. localstorage)

 

Thanks, 

Bryan Sullivan | AT&T

 

From: Mike Clement [mailto:mi...@google.com] 
Sent: Tuesday, June 15, 2010 3:42 PM


To: SULLIVAN, BRYAN L (ATTCINW)

Cc: a...@mozilla.com; Robin Berjon; public-device-a...@w3.org; Ian
Fette; Web Applications Working Group WG


Subject: Re: Transferring File* to WebApps - redux

 

Hi,

 

Am I correct in thinking that what you find too restrictive is that the
FileSystem API only allows programmatic access to a sandboxed portion of
the device's filesystem instead of the entire filesystem?  Otherwise, I
believe that the File APIs as a whole will allow most of the other
operations you mention.

 

--mike

On Tue, Jun 15, 2010 at 3:24 PM, SULLIVAN, BRYAN L (ATTCINW)
 wrote:

Arun,

I am not meaning to be unfair, perhaps the message is not coming through
clearly enough.

There are specific technical requirements that we need these APIs to
fulfill, that I indicated to Thomas in another email:
1) access filesystems on the host device
2) traverse directories
3) read files as they exist on the filesystem (not just a local

representation in memory, as currently defined in the File API to my
understanding), in bytes and lines

4) write files (similar requirement to write directly to the

filesystem), in bytes and lines, with overwrite and append options

5) do the above programmatically in Javascript (not dependent just upon

user selection of an input element and interaction with a file selector)

6) provide security for this using the policy-framework approach as

being defined for DAP APIs

Apart from the details of (1-4) above, which will help ensure are
addressed in the current File* APIs (no matter where they are
finished),I think it's (5

Re: Transferring File* to WebApps - redux

2010-06-15 Thread Mike Clement
As I understand it, #5 (programmatic access to files without user
interaction) is indeed supported via the getFile method.  But again, this is
only within the sandboxed filesystem, not for an arbitrary file on the
device.

As for #6, I can't speak to the "policy-framework approach", but I do know
that the security provisions for manipulating files with regards to
JavaScript will be the usual same-origin policy.

--mike


On Tue, Jun 15, 2010 at 3:55 PM, SULLIVAN, BRYAN L (ATTCINW)  wrote:

>  Actually I think “sandboxing” an app into a certain area of the
> filesystem, especially for less-trusted apps, is a useful model. But I don’t
> think the current File* APIs will support the items 5-6 that I mention
> below.
>
> 5) do the above programmatically in Javascript (not dependent just upon
> user selection of an input element and interaction with a file selector)
>
> 6) provide security for this using the policy-framework approach as being
> defined for DAP APIs
>
>
>
> In BONDI, it’s possible to define the sandbox as policy and avoid the user
> needing to select it. For example it’s possible to restrict an application
> to:
>
> · a “temp” filesystem location (whatever that maps to on the
> current device)
>
> · other “well-known” filesystem locations
>
> · browser-internal storage (e.g. localstorage)
>
>
>
> Thanks,
>
> Bryan Sullivan | AT&T
>
>
>
> *From:* Mike Clement [mailto:mi...@google.com]
> *Sent:* Tuesday, June 15, 2010 3:42 PM
>
> *To:* SULLIVAN, BRYAN L (ATTCINW)
> *Cc:* a...@mozilla.com; Robin Berjon; public-device-a...@w3.org; Ian
> Fette; Web Applications Working Group WG
>
> *Subject:* Re: Transferring File* to WebApps - redux
>
>
>
> Hi,
>
>
>
> Am I correct in thinking that what you find too restrictive is that the
> FileSystem API only allows programmatic access to a sandboxed portion of the
> device's filesystem instead of the entire filesystem?  Otherwise, I believe
> that the File APIs as a whole will allow most of the other operations you
> mention.
>
>
>
> --mike
>
> On Tue, Jun 15, 2010 at 3:24 PM, SULLIVAN, BRYAN L (ATTCINW) <
> bs3...@att.com> wrote:
>
> Arun,
>
> I am not meaning to be unfair, perhaps the message is not coming through
> clearly enough.
>
> There are specific technical requirements that we need these APIs to
> fulfill, that I indicated to Thomas in another email:
> 1) access filesystems on the host device
> 2) traverse directories
> 3) read files as they exist on the filesystem (not just a local
>
> representation in memory, as currently defined in the File API to my
> understanding), in bytes and lines
>
> 4) write files (similar requirement to write directly to the
>
> filesystem), in bytes and lines, with overwrite and append options
>
> 5) do the above programmatically in Javascript (not dependent just upon
>
> user selection of an input element and interaction with a file selector)
>
> 6) provide security for this using the policy-framework approach as
>
> being defined for DAP APIs
>
> Apart from the details of (1-4) above, which will help ensure are
> addressed in the current File* APIs (no matter where they are
> finished),I think it's (5-6) where the real differences are. If we need
> another API in DAP to address them, then AT&T will help ensure it gets
> done separately from the current File* APIs.
>
> The question of where you are represented and your ability to
> participate cuts both ways - the same is true for us. I think if the
> browser vendors want their products really to be seen as compatible with
> the Web application space (as compared to just dynamic Web pages), they
> will support the work in DAP as its there that non-obtrusive and
> inherently secure models for Web application access to device resources
> will be defined as APIs.
>
>
> Thanks,
> Bryan Sullivan | AT&T
>
>
> -Original Message-
> From: Arun Ranganathan [mailto:a...@mozilla.com]
>
> Sent: Tuesday, June 15, 2010 2:53 PM
> To: SULLIVAN, BRYAN L (ATTCINW)
> Cc: Robin Berjon; public-device-a...@w3.org; Ian Fette; Web Applications
> Working Group WG
> Subject: Re: Transferring File* to WebApps - redux
>
> On 6/15/10 2:24 PM, SULLIVAN, BRYAN L (ATTCINW) wrote:
> > Arun,
> >
> > The basic concern I have is with the notion of "browsers" as the only
> > Web context and use-case that matters. The browser-based model for API
> > integration view (as I understand your position) is that the user must
> > be actively involved in every significant action, and choose
> explicitly
> > the actions that enable integration with br

Re: Transferring File* to WebApps - redux

2010-06-15 Thread Arun Ranganathan

Bryan,


On 6/15/10 3:24 PM, SULLIVAN, BRYAN L (ATTCINW) wrote:

5) do the above programmatically in Javascript (not dependent just upon
user selection of an input element and interaction with a file selector)
6) provide security for this using the policy-framework approach as
being defined for DAP APIs
   


I agree with you that those goals are incompatible with the File* APIs 
as they are currently evolving (although perhaps you can use these as 
the basis for interfaces and signatures, and swap out the invocation 
paradigm and the security paradigm separately within the W3C DAP WG).  
That being the case, let's agree to having separate DAP-oriented file 
APIs that address those particular use cases.  I think that we agree 
that the FileWriter and FileSystem APIs as currently written (and with 
the current editor, Eric Uhrane) can move to WebApps, where they can 
evolve along with the existing File API specification.



Apart from the details of (1-4) above, which will help ensure are
addressed in the current File* APIs (no matter where they are
finished),I think it's (5-6) where the real differences are. If we need
another API in DAP to address them, then AT&T will help ensure it gets
done separately from the current File* APIs.
   




The question of where you are represented and your ability to
participate cuts both ways - the same is true for us. I think if the
browser vendors want their products really to be seen as compatible with
the Web application space (as compared to just dynamic Web pages), they
will support the work in DAP as its there that non-obtrusive and
inherently secure models for Web application access to device resources
will be defined as APIs.
   


At present time, I think that the paragraph above accurately summarizes 
a technical rift between certain members of both working groups (DAP and 
WebApps).  It may not be worthwhile to resolve this rift, and we should 
allow disparate families of specifications to bloom, taking care not to 
cause developer confusion with naming (a hard problem).  Where 
specifications worked on in the DAP WG lend themselves to implementation 
plans, I think Mozilla participants interested in these can comment on 
them (e.g. Contacts API, at least for now).


-- A*



RE: Transferring File* to WebApps - redux

2010-06-15 Thread SULLIVAN, BRYAN L (ATTCINW)
Actually I think "sandboxing" an app into a certain area of the
filesystem, especially for less-trusted apps, is a useful model. But I
don't think the current File* APIs will support the items 5-6 that I
mention below.

5) do the above programmatically in Javascript (not dependent just upon
user selection of an input element and interaction with a file selector)

6) provide security for this using the policy-framework approach as
being defined for DAP APIs

 

In BONDI, it's possible to define the sandbox as policy and avoid the
user needing to select it. For example it's possible to restrict an
application to:

* a "temp" filesystem location (whatever that maps to on the
current device)

* other "well-known" filesystem locations

* browser-internal storage (e.g. localstorage)

 

Thanks, 

Bryan Sullivan | AT&T

 

From: Mike Clement [mailto:mi...@google.com] 
Sent: Tuesday, June 15, 2010 3:42 PM
To: SULLIVAN, BRYAN L (ATTCINW)
Cc: a...@mozilla.com; Robin Berjon; public-device-a...@w3.org; Ian
Fette; Web Applications Working Group WG
Subject: Re: Transferring File* to WebApps - redux

 

Hi,

 

Am I correct in thinking that what you find too restrictive is that the
FileSystem API only allows programmatic access to a sandboxed portion of
the device's filesystem instead of the entire filesystem?  Otherwise, I
believe that the File APIs as a whole will allow most of the other
operations you mention.

 

--mike

On Tue, Jun 15, 2010 at 3:24 PM, SULLIVAN, BRYAN L (ATTCINW)
 wrote:

Arun,

I am not meaning to be unfair, perhaps the message is not coming through
clearly enough.

There are specific technical requirements that we need these APIs to
fulfill, that I indicated to Thomas in another email:
1) access filesystems on the host device
2) traverse directories
3) read files as they exist on the filesystem (not just a local

representation in memory, as currently defined in the File API to my
understanding), in bytes and lines

4) write files (similar requirement to write directly to the

filesystem), in bytes and lines, with overwrite and append options

5) do the above programmatically in Javascript (not dependent just upon

user selection of an input element and interaction with a file selector)

6) provide security for this using the policy-framework approach as

being defined for DAP APIs

Apart from the details of (1-4) above, which will help ensure are
addressed in the current File* APIs (no matter where they are
finished),I think it's (5-6) where the real differences are. If we need
another API in DAP to address them, then AT&T will help ensure it gets
done separately from the current File* APIs.

The question of where you are represented and your ability to
participate cuts both ways - the same is true for us. I think if the
browser vendors want their products really to be seen as compatible with
the Web application space (as compared to just dynamic Web pages), they
will support the work in DAP as its there that non-obtrusive and
inherently secure models for Web application access to device resources
will be defined as APIs.


Thanks,
Bryan Sullivan | AT&T


-Original Message-
From: Arun Ranganathan [mailto:a...@mozilla.com]

Sent: Tuesday, June 15, 2010 2:53 PM
To: SULLIVAN, BRYAN L (ATTCINW)
Cc: Robin Berjon; public-device-a...@w3.org; Ian Fette; Web Applications
Working Group WG
Subject: Re: Transferring File* to WebApps - redux

On 6/15/10 2:24 PM, SULLIVAN, BRYAN L (ATTCINW) wrote:
> Arun,
>
> The basic concern I have is with the notion of "browsers" as the only
> Web context and use-case that matters. The browser-based model for API
> integration view (as I understand your position) is that the user must
> be actively involved in every significant action, and choose
explicitly
> the actions that enable integration with browser-external resources
> (including local and remote). Step back and you will see the
> inconsistency in that (what would Ajax be if the user had to approved
> every HTTP API request via an  element?).
>

In the case of the File API, I'm merely stating that the capability
should be an evolution on top of what web pages already do with respect
to the input element, and not introduce a new unbounded API space which
doesn't consider user involvement, or reconsiders it with other consent
models.  Equating ajax with this in general isn't relevant to the
argument.

If you have no substantial technical differences with FileReader,
FileWriter, and the FileSystem API, why are you blocking them from
moving?  What additional oversight does the DAP WG provide, that the
WebApps WG does NOT provide?  The WebApps WG has MORE browser vendors
than the DAP WG, allowing review that's pertinent to the technology we
are building.  Below, you say:
> Webapps are much more than just dynamic Web pages. They are
> applications, and wi

Re: Transferring File* to WebApps - redux

2010-06-15 Thread Mike Clement
Hi,

Am I correct in thinking that what you find too restrictive is that the
FileSystem API only allows programmatic access to a sandboxed portion of the
device's filesystem instead of the entire filesystem?  Otherwise, I believe
that the File APIs as a whole will allow most of the other operations you
mention.

--mike

On Tue, Jun 15, 2010 at 3:24 PM, SULLIVAN, BRYAN L (ATTCINW)  wrote:

> Arun,
>
> I am not meaning to be unfair, perhaps the message is not coming through
> clearly enough.
>
> There are specific technical requirements that we need these APIs to
> fulfill, that I indicated to Thomas in another email:
> 1) access filesystems on the host device
> 2) traverse directories
> 3) read files as they exist on the filesystem (not just a local
> representation in memory, as currently defined in the File API to my
> understanding), in bytes and lines
> 4) write files (similar requirement to write directly to the
> filesystem), in bytes and lines, with overwrite and append options
> 5) do the above programmatically in Javascript (not dependent just upon
> user selection of an input element and interaction with a file selector)
> 6) provide security for this using the policy-framework approach as
> being defined for DAP APIs
>
> Apart from the details of (1-4) above, which will help ensure are
> addressed in the current File* APIs (no matter where they are
> finished),I think it's (5-6) where the real differences are. If we need
> another API in DAP to address them, then AT&T will help ensure it gets
> done separately from the current File* APIs.
>
> The question of where you are represented and your ability to
> participate cuts both ways - the same is true for us. I think if the
> browser vendors want their products really to be seen as compatible with
> the Web application space (as compared to just dynamic Web pages), they
> will support the work in DAP as its there that non-obtrusive and
> inherently secure models for Web application access to device resources
> will be defined as APIs.
>
> Thanks,
> Bryan Sullivan | AT&T
>
>
> -Original Message-
> From: Arun Ranganathan [mailto:a...@mozilla.com]
> Sent: Tuesday, June 15, 2010 2:53 PM
> To: SULLIVAN, BRYAN L (ATTCINW)
> Cc: Robin Berjon; public-device-a...@w3.org; Ian Fette; Web Applications
> Working Group WG
> Subject: Re: Transferring File* to WebApps - redux
>
> On 6/15/10 2:24 PM, SULLIVAN, BRYAN L (ATTCINW) wrote:
> > Arun,
> >
> > The basic concern I have is with the notion of "browsers" as the only
> > Web context and use-case that matters. The browser-based model for API
> > integration view (as I understand your position) is that the user must
> > be actively involved in every significant action, and choose
> explicitly
> > the actions that enable integration with browser-external resources
> > (including local and remote). Step back and you will see the
> > inconsistency in that (what would Ajax be if the user had to approved
> > every HTTP API request via an  element?).
> >
>
> In the case of the File API, I'm merely stating that the capability
> should be an evolution on top of what web pages already do with respect
> to the input element, and not introduce a new unbounded API space which
> doesn't consider user involvement, or reconsiders it with other consent
> models.  Equating ajax with this in general isn't relevant to the
> argument.
>
> If you have no substantial technical differences with FileReader,
> FileWriter, and the FileSystem API, why are you blocking them from
> moving?  What additional oversight does the DAP WG provide, that the
> WebApps WG does NOT provide?  The WebApps WG has MORE browser vendors
> than the DAP WG, allowing review that's pertinent to the technology we
> are building.  Below, you say:
> > Webapps are much more than just dynamic Web pages. They are
> > applications, and with HTML5 will have the ability to rival desktop
> > applications, as is clearly the vision of many in the industry. It
> might
> > even enable a return to a thin client world (e.g. browser as OS) in
> > which most significant resources are cloud-based. I see the logic and
> > value in that, but it's not the only valid (and valuable) model.
> >
> > W3C focuses on the Web, and the Web is bigger than the browser
> use-case.
> > HTML5 and the APIs that attach HTML-based applications to the world
> can
> > actually be the application platform for the next era of the Web, but
> > only if we do not limit the options to the user-centric/control
> > paradigms of the past.
> >
>
> But, by charter, the DAP WG allows you to address those very use

RE: Transferring File* to WebApps - redux

2010-06-15 Thread SULLIVAN, BRYAN L (ATTCINW)
Arun,

I am not meaning to be unfair, perhaps the message is not coming through
clearly enough. 

There are specific technical requirements that we need these APIs to
fulfill, that I indicated to Thomas in another email:
1) access filesystems on the host device
2) traverse directories
3) read files as they exist on the filesystem (not just a local
representation in memory, as currently defined in the File API to my
understanding), in bytes and lines
4) write files (similar requirement to write directly to the
filesystem), in bytes and lines, with overwrite and append options
5) do the above programmatically in Javascript (not dependent just upon
user selection of an input element and interaction with a file selector)
6) provide security for this using the policy-framework approach as
being defined for DAP APIs

Apart from the details of (1-4) above, which will help ensure are
addressed in the current File* APIs (no matter where they are
finished),I think it's (5-6) where the real differences are. If we need
another API in DAP to address them, then AT&T will help ensure it gets
done separately from the current File* APIs.

The question of where you are represented and your ability to
participate cuts both ways - the same is true for us. I think if the
browser vendors want their products really to be seen as compatible with
the Web application space (as compared to just dynamic Web pages), they
will support the work in DAP as its there that non-obtrusive and
inherently secure models for Web application access to device resources
will be defined as APIs.

Thanks, 
Bryan Sullivan | AT&T


-Original Message-
From: Arun Ranganathan [mailto:a...@mozilla.com] 
Sent: Tuesday, June 15, 2010 2:53 PM
To: SULLIVAN, BRYAN L (ATTCINW)
Cc: Robin Berjon; public-device-a...@w3.org; Ian Fette; Web Applications
Working Group WG
Subject: Re: Transferring File* to WebApps - redux

On 6/15/10 2:24 PM, SULLIVAN, BRYAN L (ATTCINW) wrote:
> Arun,
>
> The basic concern I have is with the notion of "browsers" as the only
> Web context and use-case that matters. The browser-based model for API
> integration view (as I understand your position) is that the user must
> be actively involved in every significant action, and choose
explicitly
> the actions that enable integration with browser-external resources
> (including local and remote). Step back and you will see the
> inconsistency in that (what would Ajax be if the user had to approved
> every HTTP API request via an  element?).
>

In the case of the File API, I'm merely stating that the capability 
should be an evolution on top of what web pages already do with respect 
to the input element, and not introduce a new unbounded API space which 
doesn't consider user involvement, or reconsiders it with other consent 
models.  Equating ajax with this in general isn't relevant to the
argument.

If you have no substantial technical differences with FileReader, 
FileWriter, and the FileSystem API, why are you blocking them from 
moving?  What additional oversight does the DAP WG provide, that the 
WebApps WG does NOT provide?  The WebApps WG has MORE browser vendors 
than the DAP WG, allowing review that's pertinent to the technology we 
are building.  Below, you say:
> Webapps are much more than just dynamic Web pages. They are
> applications, and with HTML5 will have the ability to rival desktop
> applications, as is clearly the vision of many in the industry. It
might
> even enable a return to a thin client world (e.g. browser as OS) in
> which most significant resources are cloud-based. I see the logic and
> value in that, but it's not the only valid (and valuable) model.
>
> W3C focuses on the Web, and the Web is bigger than the browser
use-case.
> HTML5 and the APIs that attach HTML-based applications to the world
can
> actually be the application platform for the next era of the Web, but
> only if we do not limit the options to the user-centric/control
> paradigms of the past.
>

But, by charter, the DAP WG allows you to address those very use cases!

If the FileWriter, FileSystem, and FileReader specifications do NOT 
address the vision you articulate above, why not create a specification 
relevant to your use case?  Naturally, browser vendors see value in 
technology that serves the cause of dynamic web pages.  Why are you 
disallowing maximum browser vendor review by prohibiting a sensible 
move?  Even within the DAP WG, feedback isn't as forthcoming on these 
specifications as it is in the WebApps WG.

Please reconsider your stance here.  You are not providing technical 
feedback on the specifications in question, nor illustrating why they 
don't address your use cases.  But, you are blocking them from moving to

a place where there *is* healthy technical feedback, worrying that those

who *are* providing technical feedback will be poor custodians of a 
technology they are enthusiastic about building into their products.  
This is unfair.

-- A*



Re: Transferring File* to WebApps - redux

2010-06-15 Thread Jonas Sicking
On Tue, Jun 15, 2010 at 3:11 PM, SULLIVAN, BRYAN L (ATTCINW)
 wrote:
> Jonas,
> I guess there might be a parting of the ways here, resulting from
> differing (I guess some would say, incompatible) use cases and the APIs
> that support them.
>
> If the current File APIs in DAP are expected to only serve the
> user-centric browser paradigm then I agree they will not meet the DAP
> requirements and could be finalized in Webapps. But in DAP we will still
> need to define an API that *does* meet the use cases and requirements as
> envisioned in BONDI (which are focused more on mobile use cases and
> security models, as compared to a desktop browser focus) and that are
> now being carried forward in the WAC.
>
> So to help move us forward with the use cases that matter most to us in
> DAP, AT&T will draft a new API (filesystem) and provide that as input to
> the upcoming DAP F2F.

That sounds great. Thank you!

/ Jonas



RE: Transferring File* to WebApps - redux

2010-06-15 Thread SULLIVAN, BRYAN L (ATTCINW)
Jonas,
I guess there might be a parting of the ways here, resulting from
differing (I guess some would say, incompatible) use cases and the APIs
that support them. 

If the current File APIs in DAP are expected to only serve the
user-centric browser paradigm then I agree they will not meet the DAP
requirements and could be finalized in Webapps. But in DAP we will still
need to define an API that *does* meet the use cases and requirements as
envisioned in BONDI (which are focused more on mobile use cases and
security models, as compared to a desktop browser focus) and that are
now being carried forward in the WAC. 

So to help move us forward with the use cases that matter most to us in
DAP, AT&T will draft a new API (filesystem) and provide that as input to
the upcoming DAP F2F.

Thanks, 
Bryan Sullivan | AT&T


-Original Message-
From: Jonas Sicking [mailto:jo...@sicking.cc] 
Sent: Tuesday, June 15, 2010 2:48 PM
To: SULLIVAN, BRYAN L (ATTCINW)
Cc: a...@mozilla.com; Robin Berjon; public-device-a...@w3.org; Ian
Fette; Web Applications Working Group WG
Subject: Re: Transferring File* to WebApps - redux

On Tue, Jun 15, 2010 at 2:24 PM, SULLIVAN, BRYAN L (ATTCINW)
 wrote:
> Arun,
>
> The basic concern I have is with the notion of "browsers" as the only
> Web context and use-case that matters. The browser-based model for API
> integration view (as I understand your position) is that the user must
> be actively involved in every significant action, and choose
explicitly
> the actions that enable integration with browser-external resources
> (including local and remote). Step back and you will see the
> inconsistency in that (what would Ajax be if the user had to approved
> every HTTP API request via an  element?).
>
> Webapps are much more than just dynamic Web pages. They are
> applications, and with HTML5 will have the ability to rival desktop
> applications, as is clearly the vision of many in the industry. It
might
> even enable a return to a thin client world (e.g. browser as OS) in
> which most significant resources are cloud-based. I see the logic and
> value in that, but it's not the only valid (and valuable) model.
>
> W3C focuses on the Web, and the Web is bigger than the browser
use-case.
> HTML5 and the APIs that attach HTML-based applications to the world
can
> actually be the application platform for the next era of the Web, but
> only if we do not limit the options to the user-centric/control
> paradigms of the past.

Hi Sullivan,

I certainly agree that browsers aren't the only web context or
use-case. However I strongly feel that we should design APIs for
browsers separately from APIs where the security model is different
from that of browsers.

For example in a browser it is unacceptable for the web page to read
the users file system without the user first granting access to this.
And even then there are likely restrictions as to prevent users from
getting hacked just because they clicked "yes" on a dialog they didn't
understand and just wanted to go away (aka the "whatever dialog"
problem).

On the flip side, it might make a lot of sense for a widget running on
a mobile phone, which some authority has authorized, to have read
access to large parts of the phones file system. And possibly even
write access to parts of it.

However these differences in security model will likely lead to
differences in API. This is ok. Lessons from the past, with for
example the DOM-Core spec, show that if we try to create an API that
fit too many different audiences (in that case it was both server-side
environments, as well as web pages). I would really like to avoid
repeating similar mistakes.

So my suggestion is that we let the FileWriter and File System APIs be
ones that are designed for the browser security model. And let them be
designed in the webapps WG which is already working on several very
similar features (for example I would argue that IndexedDB should
supersede File system).

If you or anyone else wants to design similar file related
specifications, but that has different security model or otherwise
different requirements than what exists in the web browser context,
then this in no way should impact you. If this should happen in DAP,
BONDI, or even in WebApps is a separate question which I basically
don't have much of an opinion on at all.

/ Jonas



Re: Transferring File* to WebApps - redux

2010-06-15 Thread Arun Ranganathan

On 6/15/10 2:24 PM, SULLIVAN, BRYAN L (ATTCINW) wrote:

Arun,

The basic concern I have is with the notion of "browsers" as the only
Web context and use-case that matters. The browser-based model for API
integration view (as I understand your position) is that the user must
be actively involved in every significant action, and choose explicitly
the actions that enable integration with browser-external resources
(including local and remote). Step back and you will see the
inconsistency in that (what would Ajax be if the user had to approved
every HTTP API request via an  element?).
   


In the case of the File API, I'm merely stating that the capability 
should be an evolution on top of what web pages already do with respect 
to the input element, and not introduce a new unbounded API space which 
doesn't consider user involvement, or reconsiders it with other consent 
models.  Equating ajax with this in general isn't relevant to the argument.


If you have no substantial technical differences with FileReader, 
FileWriter, and the FileSystem API, why are you blocking them from 
moving?  What additional oversight does the DAP WG provide, that the 
WebApps WG does NOT provide?  The WebApps WG has MORE browser vendors 
than the DAP WG, allowing review that's pertinent to the technology we 
are building.  Below, you say:

Webapps are much more than just dynamic Web pages. They are
applications, and with HTML5 will have the ability to rival desktop
applications, as is clearly the vision of many in the industry. It might
even enable a return to a thin client world (e.g. browser as OS) in
which most significant resources are cloud-based. I see the logic and
value in that, but it's not the only valid (and valuable) model.

W3C focuses on the Web, and the Web is bigger than the browser use-case.
HTML5 and the APIs that attach HTML-based applications to the world can
actually be the application platform for the next era of the Web, but
only if we do not limit the options to the user-centric/control
paradigms of the past.
   


But, by charter, the DAP WG allows you to address those very use cases!  
If the FileWriter, FileSystem, and FileReader specifications do NOT 
address the vision you articulate above, why not create a specification 
relevant to your use case?  Naturally, browser vendors see value in 
technology that serves the cause of dynamic web pages.  Why are you 
disallowing maximum browser vendor review by prohibiting a sensible 
move?  Even within the DAP WG, feedback isn't as forthcoming on these 
specifications as it is in the WebApps WG.


Please reconsider your stance here.  You are not providing technical 
feedback on the specifications in question, nor illustrating why they 
don't address your use cases.  But, you are blocking them from moving to 
a place where there *is* healthy technical feedback, worrying that those 
who *are* providing technical feedback will be poor custodians of a 
technology they are enthusiastic about building into their products.  
This is unfair.


-- A*



Re: Transferring File* to WebApps - redux

2010-06-15 Thread Jonas Sicking
On Tue, Jun 15, 2010 at 2:24 PM, SULLIVAN, BRYAN L (ATTCINW)
 wrote:
> Arun,
>
> The basic concern I have is with the notion of "browsers" as the only
> Web context and use-case that matters. The browser-based model for API
> integration view (as I understand your position) is that the user must
> be actively involved in every significant action, and choose explicitly
> the actions that enable integration with browser-external resources
> (including local and remote). Step back and you will see the
> inconsistency in that (what would Ajax be if the user had to approved
> every HTTP API request via an  element?).
>
> Webapps are much more than just dynamic Web pages. They are
> applications, and with HTML5 will have the ability to rival desktop
> applications, as is clearly the vision of many in the industry. It might
> even enable a return to a thin client world (e.g. browser as OS) in
> which most significant resources are cloud-based. I see the logic and
> value in that, but it's not the only valid (and valuable) model.
>
> W3C focuses on the Web, and the Web is bigger than the browser use-case.
> HTML5 and the APIs that attach HTML-based applications to the world can
> actually be the application platform for the next era of the Web, but
> only if we do not limit the options to the user-centric/control
> paradigms of the past.

Hi Sullivan,

I certainly agree that browsers aren't the only web context or
use-case. However I strongly feel that we should design APIs for
browsers separately from APIs where the security model is different
from that of browsers.

For example in a browser it is unacceptable for the web page to read
the users file system without the user first granting access to this.
And even then there are likely restrictions as to prevent users from
getting hacked just because they clicked "yes" on a dialog they didn't
understand and just wanted to go away (aka the "whatever dialog"
problem).

On the flip side, it might make a lot of sense for a widget running on
a mobile phone, which some authority has authorized, to have read
access to large parts of the phones file system. And possibly even
write access to parts of it.

However these differences in security model will likely lead to
differences in API. This is ok. Lessons from the past, with for
example the DOM-Core spec, show that if we try to create an API that
fit too many different audiences (in that case it was both server-side
environments, as well as web pages). I would really like to avoid
repeating similar mistakes.

So my suggestion is that we let the FileWriter and File System APIs be
ones that are designed for the browser security model. And let them be
designed in the webapps WG which is already working on several very
similar features (for example I would argue that IndexedDB should
supersede File system).

If you or anyone else wants to design similar file related
specifications, but that has different security model or otherwise
different requirements than what exists in the web browser context,
then this in no way should impact you. If this should happen in DAP,
BONDI, or even in WebApps is a separate question which I basically
don't have much of an opinion on at all.

/ Jonas



Re: Transferring File* to WebApps - redux

2010-06-15 Thread Tab Atkins Jr.
On Tue, Jun 15, 2010 at 2:24 PM, SULLIVAN, BRYAN L (ATTCINW)
 wrote:
> Arun,
>
> The basic concern I have is with the notion of "browsers" as the only
> Web context and use-case that matters. The browser-based model for API
> integration view (as I understand your position) is that the user must
> be actively involved in every significant action, and choose explicitly
> the actions that enable integration with browser-external resources
> (including local and remote). Step back and you will see the
> inconsistency in that (what would Ajax be if the user had to approved
> every HTTP API request via an  element?).

The similarity between AJAX and the use-cases we're discussing is
thin.  XHR is the page communicating back with its origin server, and
is security-wise in roughly the same category as a script adding an
 to a page (the  sends a script-crafted request back to the
server and receives data back).

Interacting directly with the user's file system is a substantially
more security-conscious action.  Involving the user in the action, at
least minimalloy, appears to be a common-sense good idea to mitigate
the possibility of attacks.

The decisions in this arena have been highly informed by security
considerations specific to the particular cases being discussed.

~TJ



RE: Transferring File* to WebApps - redux

2010-06-15 Thread SULLIVAN, BRYAN L (ATTCINW)
Arun,

The basic concern I have is with the notion of "browsers" as the only
Web context and use-case that matters. The browser-based model for API
integration view (as I understand your position) is that the user must
be actively involved in every significant action, and choose explicitly
the actions that enable integration with browser-external resources
(including local and remote). Step back and you will see the
inconsistency in that (what would Ajax be if the user had to approved
every HTTP API request via an  element?).

Webapps are much more than just dynamic Web pages. They are
applications, and with HTML5 will have the ability to rival desktop
applications, as is clearly the vision of many in the industry. It might
even enable a return to a thin client world (e.g. browser as OS) in
which most significant resources are cloud-based. I see the logic and
value in that, but it's not the only valid (and valuable) model.

W3C focuses on the Web, and the Web is bigger than the browser use-case.
HTML5 and the APIs that attach HTML-based applications to the world can
actually be the application platform for the next era of the Web, but
only if we do not limit the options to the user-centric/control
paradigms of the past.

Thanks, 
Bryan Sullivan | AT&T


-Original Message-
From: Arun Ranganathan [mailto:a...@mozilla.com] 
Sent: Tuesday, June 15, 2010 1:48 PM
To: SULLIVAN, BRYAN L (ATTCINW)
Cc: Robin Berjon; public-device-a...@w3.org; Ian Fette; Web Applications
Working Group WG
Subject: Re: Transferring File* to WebApps - redux

On 6/15/10 1:15 PM, SULLIVAN, BRYAN L (ATTCINW) wrote:
> We would not be in favor of this transfer. We believe this API needs
to
> be developed in the DAP group, as our vision for its functionality was
> driven by the input from BONDI and in general as a *device* API (as
> compared to an abstracted API for cloud-based file resources), and we
do
> not believe that vision will be fulfilled if this work is transferred
to
> Webapps.
>

The BONDI API isn't a good starting place for an API that can be built 
into web browsers, since it doesn't gracefully layer into the existing 
HTML input element model for file selection.  You are making a 
distinction I don't understand clearly, since we're not really 
considering "cloud-based file resources" with the FileReader API.  
Rather, we are considering file resources resident on the device.  The 
API allows you to select them using an input element, and then access 
the file resource and programmatically manipulate it as a Blob.  
Similarly, the FileWriter API allows you to use the "save as" channel to

write to the device in question.  The FileSystem specification posits an

abstraction that isn't necessarily "cloud-based" (although FWIW that is 
also possible).

If you have a different vision, then that vision is incompatible with 
web browsers.  In this case, I'd encourage the DAP WG, which *also* has 
a charter to work on file system deliverables, to construct an API which

matches the use case you have in mind.  You may then pursue the relevant

BONDI API, which as a browser vendor I cannot consider.

> If the issue is the level of discussion in this group, that can be
> addressed. For one, I have seen quite a lot of traffic on the DAP
email
> list about this, so I don't understand the question of activity.
>

If you note the discussion on FileWriter, you'll see that the lion's 
share of feedback comes from cross-posts to public-weba...@w3.org.  
Feedback from others, including those that post to the DAP WG, is always

welcome.
> But to start, I will address some of the open topics in the current
> draft on the DAP list, to help get the discussion moving faster.
>
>

Again, I'd urge you to reconsider your position.  The move of the 
specification in question -- FileWriter and FileSystem -- allows for 
greater collaboration on the same web stack, *and* allows parties that 
are NOT members of the DAP WG to comment on the technology.  Perhaps you

are misunderstanding the goals here?  Or, perhaps you can provide a 
tighter definition of what you mean by "cloud-based file resources" 
*exactly*?  DAP WG members are, by charter, free to consider technology 
that matches their particular use case.

-- A*




Re: Transferring File* to WebApps - redux

2010-06-15 Thread Arun Ranganathan

On 6/15/10 1:15 PM, SULLIVAN, BRYAN L (ATTCINW) wrote:

We would not be in favor of this transfer. We believe this API needs to
be developed in the DAP group, as our vision for its functionality was
driven by the input from BONDI and in general as a *device* API (as
compared to an abstracted API for cloud-based file resources), and we do
not believe that vision will be fulfilled if this work is transferred to
Webapps.
   


The BONDI API isn't a good starting place for an API that can be built 
into web browsers, since it doesn't gracefully layer into the existing 
HTML input element model for file selection.  You are making a 
distinction I don't understand clearly, since we're not really 
considering "cloud-based file resources" with the FileReader API.  
Rather, we are considering file resources resident on the device.  The 
API allows you to select them using an input element, and then access 
the file resource and programmatically manipulate it as a Blob.  
Similarly, the FileWriter API allows you to use the "save as" channel to 
write to the device in question.  The FileSystem specification posits an 
abstraction that isn't necessarily "cloud-based" (although FWIW that is 
also possible).


If you have a different vision, then that vision is incompatible with 
web browsers.  In this case, I'd encourage the DAP WG, which *also* has 
a charter to work on file system deliverables, to construct an API which 
matches the use case you have in mind.  You may then pursue the relevant 
BONDI API, which as a browser vendor I cannot consider.



If the issue is the level of discussion in this group, that can be
addressed. For one, I have seen quite a lot of traffic on the DAP email
list about this, so I don't understand the question of activity.
   


If you note the discussion on FileWriter, you'll see that the lion's 
share of feedback comes from cross-posts to public-weba...@w3.org.  
Feedback from others, including those that post to the DAP WG, is always 
welcome.

But to start, I will address some of the open topics in the current
draft on the DAP list, to help get the discussion moving faster.

   


Again, I'd urge you to reconsider your position.  The move of the 
specification in question -- FileWriter and FileSystem -- allows for 
greater collaboration on the same web stack, *and* allows parties that 
are NOT members of the DAP WG to comment on the technology.  Perhaps you 
are misunderstanding the goals here?  Or, perhaps you can provide a 
tighter definition of what you mean by "cloud-based file resources" 
*exactly*?  DAP WG members are, by charter, free to consider technology 
that matches their particular use case.


-- A*