Re: [WARP] Last Call comments (1)

2009-09-17 Thread Robin Berjon

On Sep 15, 2009, at 21:12 , Marcin Hanclik wrote:

I do not think they are so different.


Frederick is correct in his interpretation of the intent of the  
specification: they are meant to be different.



feature points to anything, we can still build the interpretation.


But it is meant and intended for APIs. We could extend it for a  
zillion things, e.g.:


  feature uri='http://example.com/widgets/icon'
param name='src' value='/icons/myapp.svg/
  /feature

But I don't believe that that would be helpful.


I think it can be disputable what access is for.
WARP says:
 A network resource is a retrievable resource of any type that is  
identified by a URI that has a DNS or IP as its authority.


Then, how to fit e.g. sms: or tel: schemes into this context?


This limitation is *exactly* what access was designed for. If you go  
back to the (long) discussions that the WG had before WARP was  
birthed, you'll see this. Basically, at this point in time there are  
two options: define a complete security policy model that would cover  
everything that can be done, or address a trivial 80/20.


There was clear agreement that the first option is DAP's  
responsibility. We thought about not doing anything at all, but that  
option was rejected because we're already seeing different approaches  
(Opera widgets, BONDI, JIL — they all have different things there).


So the resolution was to go with the simple 80/20 approach that  
handled the common accessing a web resource or REST API case in a  
boolean fashion, did describe what happened to content that is  
expected to behave in a Web fashion, but didn't go anywhere that would  
risk trampling on DAP's territory.


Schemes such as sms and tel are definitely out of scope for this  
simple approach. Even if they weren't they would *still* be out of  
scope for access because they aren't network resources. You can't  
make an XHR request to sms:, it is meaningless to have img  
src='tel:...'/. These are therefore rejected immediately — just  
because it has a scheme doesn't mean it's a network resource, those  
are two completely separate things.


Now there could be a policy for accessing SMS or phone from within an  
API, for instance one that would limit to only one phone number, or  
perhaps to a given price limit (per minute, per SMS), or a frequency,  
or a maximal total cost per month. But none of that is related to  
access.



@subdomains makes also little sense for those schemes.


That's because those schemes make little sense for access. You're  
finding faults that are there because you're expecting it to address  
use cases that aren't there.


Apart from DNS/IP issues, I assume that some Web resources are not  
meant to be retrievable, e.g. POSTing a form uses URI to send  
information to, and not to retrieve a resource.


Actually POST is perfectly allowed to retrieve an entity (and often  
does) so long as the response status isn't 204.


If we would like the spec to be future-/scheme-proof, we could  
prepare the model based on actual schemes, as e.g. suggested in my  
below email.


I don't think that that is a good idea. This specification addresses  
the requirements of today. When and if we need to add new schemes, we  
can do so. The intent is that WARP is a simply, stop-gap solution to  
address today's interoperability issues at the level of requirement  
which they have. When we need more power, the expectation is that DAP  
will have provided it, that we'll be able to express access in DAP  
terms, and that DAP will provide the extensibility mechanism.


--
Robin Berjon - http://berjon.com/






Re: [WARP] Last Call comments (1)

2009-09-17 Thread Robin Berjon

On Sep 7, 2009, at 15:11 , Marcin Hanclik wrote:

is pretty simple, logical, and gets the job done for most use cases.


The above is not the case e.g. for mailto: or tel:, specifically if  
you want to be more specific/selective with the additional arguments  
(a la subdomains).


There is a major distinction here. When you use mailto: or tel:, it  
triggers an external application (email client, phone dialer) and you  
can decide from within that application whether to enact those. If you  
have access to a messaging or calling API, then you can do those  
stealthily — but that's not WARP's problem, it's DAP's problem.


What WARP is concerned with is whatever access can be made without  
user interaction (an img/@src, or an XHR request) that is possible  
today in a WRT. Anything else is out of scope, and is DAP's job.


--
Robin Berjon - http://berjon.com/






Re: [WARP] Last Call comments (1)

2009-09-17 Thread Robin Berjon

On Sep 8, 2009, at 11:00 , Marcin Hanclik wrote:
As stated in my original email, one of the targets is that access  
is not an obstacle for DAP.


The design was based on:

 - not restricting DAP's ability to define a security policy
 - enabling boolean access to URIs
 - having pattern matching that covers most cases
 - making sure that web content that works outside of a widget can  
work inside a widget


It is currently undefined how the related access control will be  
done and we would probably want to avoid the situation that access  
is deprecated once DAP is ready with their model.


Quite the contrary. If all goes well DAP's security policy will be  
available within a couple years, and after that we'll need another  
year before it ships as presumably it'll have some degree of  
complexity. That's all fine but the problem that we have today is that  
people are shipping implementations with support for something a lot  
like access but that are not compatible. Just off the top of my head  
I know that Opera has their own stuff (which was the original  
proposal), BONDI has network-access which is different, JIL has  
something of their own with different default rules, and Microsoft has  
a widget engine using access from the December 2008 PC draft.


What WARP does is that it provides the strictly minimal solution that  
will make interoperability possible before DAP finishes its work,  
while adhering to its fundamental design principles. If it gets  
obsoleted, superseded, set on fire in public displays of wrath, or  
trampled by a horde of arctic hippopotami on MDMA then great. The  
primary goal is to gain 3 years of interoperability which we need to  
have. A complementary goal is that since we want content created  
conforming to WARP today to be valid forever is that the policies that  
WARP enables should be expressible using whatever DAP comes up with,  
so that access can be defined as simply a syntactical shortcut to DAP.


In other words it is future-proof *because* it is simple. It's  
extensible (if we need to, which I don't think we should) because it's  
XML (and because its processing model is intended for that).


--
Robin Berjon - http://berjon.com/






Re: [WARP] Last Call comments (1)

2009-09-17 Thread Robin Berjon

On Sep 10, 2009, at 15:00 , Frederick Hirsch wrote:

Is the fundamental difference of feature and access the following:

feature - API set expected to be possibly used
access - network resource to be accessed.


Exactly. I think that part of the confusion stems from the different  
uses of URIs. For features they're just identifiers, for access  
they're locators (or partial patterns on locators).


--
Robin Berjon - http://berjon.com/






RE: [WARP] Last Call comments (1)

2009-09-17 Thread Marcin Hanclik
Hi Robin,

I understand the 80/20 principle.
It is about quality.
I am however not sure that publication of the spec as is will result in the 
companies listed below to adjust to the correct meaning.

BONDI has network-access which is different
It was done, because there was no access when BONDI discussed this.
And actually in BONDI no-one seems to be against the proposals of making the 
design more robust based on feature.
My proposal is not about syntax, but about semantics that is missing in WARP.

Thanks,
Marcin

Marcin Hanclik
ACCESS Systems Germany GmbH
Tel: +49-208-8290-6452  |  Fax: +49-208-8290-6465
Mobile: +49-163-8290-646
E-Mail: marcin.hanc...@access-company.com

-Original Message-
From: Robin Berjon [mailto:ro...@berjon.com]
Sent: Thursday, September 17, 2009 4:41 PM
To: Marcin Hanclik
Cc: Marcos Caceres; public-webapps@w3.org
Subject: Re: [WARP] Last Call comments (1)

On Sep 8, 2009, at 11:00 , Marcin Hanclik wrote:
 As stated in my original email, one of the targets is that access
 is not an obstacle for DAP.

The design was based on:

  - not restricting DAP's ability to define a security policy
  - enabling boolean access to URIs
  - having pattern matching that covers most cases
  - making sure that web content that works outside of a widget can
work inside a widget

 It is currently undefined how the related access control will be
 done and we would probably want to avoid the situation that access
 is deprecated once DAP is ready with their model.

Quite the contrary. If all goes well DAP's security policy will be
available within a couple years, and after that we'll need another
year before it ships as presumably it'll have some degree of
complexity. That's all fine but the problem that we have today is that
people are shipping implementations with support for something a lot
like access but that are not compatible. Just off the top of my head
I know that Opera has their own stuff (which was the original
proposal), BONDI has network-access which is different, JIL has
something of their own with different default rules, and Microsoft has
a widget engine using access from the December 2008 PC draft.

What WARP does is that it provides the strictly minimal solution that
will make interoperability possible before DAP finishes its work,
while adhering to its fundamental design principles. If it gets
obsoleted, superseded, set on fire in public displays of wrath, or
trampled by a horde of arctic hippopotami on MDMA then great. The
primary goal is to gain 3 years of interoperability which we need to
have. A complementary goal is that since we want content created
conforming to WARP today to be valid forever is that the policies that
WARP enables should be expressible using whatever DAP comes up with,
so that access can be defined as simply a syntactical shortcut to DAP.

In other words it is future-proof *because* it is simple. It's
extensible (if we need to, which I don't think we should) because it's
XML (and because its processing model is intended for that).

--
Robin Berjon - http://berjon.com/






Access Systems Germany GmbH
Essener Strasse 5  |  D-46047 Oberhausen
HRB 13548 Amtsgericht Duisburg
Geschaeftsfuehrer: Michel Piquemal, Tomonori Watanabe, Yusuke Kanda

www.access-company.com

CONFIDENTIALITY NOTICE
This e-mail and any attachments hereto may contain information that is 
privileged or confidential, and is intended for use only by the
individual or entity to which it is addressed. Any disclosure, copying or 
distribution of the information by anyone else is strictly prohibited.
If you have received this document in error, please notify us promptly by 
responding to this e-mail. Thank you.



RE: [WARP] Last Call comments (1)

2009-09-17 Thread Marcin Hanclik
Hi Robin,

Herewith I reply to both your recent answers [1] and [2].

It is good for me to see that the intentions and scope of the WARP spec get 
clarified upon discussion.

 Schemes such as sms and tel are definitely out of scope for
this simple approach.
If so, then please add clear rules to the spec which schemes are in scope.
These are the hints:

a)
A network resource is a retrievable resource of any type that is identified by 
a URI that has a DNS or IP as its authority.
So here sms: and tel: seem out of scope. What about E164 and DNS [3]?
Another edge case:
sms:+41796431851;pid=smtp:i...@dret.net from [4]

b)
This special value provides a means for an author to request from the user 
agent unrestricted access to resources through any and all schemes and 
protocols supported by the user agent.
Here the set of schemes is infinite. So I suggest adding the relevant text, e.g.
This special value provides a means for an author to request from the user 
agent unrestricted access to network resources through any and all schemes and 
protocols that have DNS or IP as its authority and that are supported by the 
user agent.

Schemes such as sms and tel are definitely out of scope for this
simple approach. Even if they weren't they would *still* be out of
scope for access because they aren't network resources. You can't
make an XHR request to sms:, it is meaningless to have img
src='tel:...'/. These are therefore rejected immediately - just
because it has a scheme doesn't mean it's a network resource, those
are two completely separate things.
Can you do XHR to mailto:? Or img src='mailto:...'?
But mailto: is explicitly mentioned in WARP.

There is a major distinction here. When you use mailto: or tel:, it
triggers an external application (email client, phone dialer)
Not necessarily. My mail client may be another widget/webapp.
Similarly to tel: (depends on DAP).

 and you
can decide from within that application whether to enact those. If you
have access to a messaging or calling API, then you can do those
stealthily - but that's not WARP's problem, it's DAP's problem.
From the security point of view it does not matter whether a message or a call 
was accomplished by a programmatic call to device API or by an external 
application that was triggered by the URI embedded in a widget. If restricted, 
it should simply not happen. I understand that this is a DAP issue, therefore 
I suggest to leave it all to DAP.

In general, if the text of WARP specifies that WARP is only about http, https, 
and XHR I could live with it.


Thanks,
Marcin

[1] http://lists.w3.org/Archives/Public/public-webapps/2009JulSep/1113.html
[2] http://lists.w3.org/Archives/Public/public-webapps/2009JulSep/1114.html
[3] http://www.ietf.org/rfc/rfc2916.txt
[4] http://tools.ietf.org/html/draft-wilde-sms-uri-00#section-2.4

Marcin Hanclik
ACCESS Systems Germany GmbH
Tel: +49-208-8290-6452  |  Fax: +49-208-8290-6465
Mobile: +49-163-8290-646
E-Mail: marcin.hanc...@access-company.com

-Original Message-
From: Robin Berjon [mailto:ro...@berjon.com]
Sent: Thursday, September 17, 2009 4:27 PM
To: Marcin Hanclik
Cc: Marcos Caceres; public-webapps@w3.org
Subject: Re: [WARP] Last Call comments (1)

On Sep 7, 2009, at 15:11 , Marcin Hanclik wrote:
 is pretty simple, logical, and gets the job done for most use cases.

 The above is not the case e.g. for mailto: or tel:, specifically if
 you want to be more specific/selective with the additional arguments
 (a la subdomains).

There is a major distinction here. When you use mailto: or tel:, it
triggers an external application (email client, phone dialer) and you
can decide from within that application whether to enact those. If you
have access to a messaging or calling API, then you can do those
stealthily - but that's not WARP's problem, it's DAP's problem.

What WARP is concerned with is whatever access can be made without
user interaction (an img/@src, or an XHR request) that is possible
today in a WRT. Anything else is out of scope, and is DAP's job.

--
Robin Berjon - http://berjon.com/






Access Systems Germany GmbH
Essener Strasse 5  |  D-46047 Oberhausen
HRB 13548 Amtsgericht Duisburg
Geschaeftsfuehrer: Michel Piquemal, Tomonori Watanabe, Yusuke Kanda

www.access-company.com

CONFIDENTIALITY NOTICE
This e-mail and any attachments hereto may contain information that is 
privileged or confidential, and is intended for use only by the
individual or entity to which it is addressed. Any disclosure, copying or 
distribution of the information by anyone else is strictly prohibited.
If you have received this document in error, please notify us promptly by 
responding to this e-mail. Thank you.



RE: [WARP] Last Call comments (1)

2009-09-17 Thread Marcin Hanclik
Hi Robin,

Please bear in mind that my proposal moves the access's @uri to param 
name=uri value=XXX/ and not to feature's @name.
The distinction is clear.
Thus there seems to be no confusion.

Thanks,
Marcin

Marcin Hanclik
ACCESS Systems Germany GmbH
Tel: +49-208-8290-6452  |  Fax: +49-208-8290-6465
Mobile: +49-163-8290-646
E-Mail: marcin.hanc...@access-company.com

-Original Message-
From: Robin Berjon [mailto:ro...@berjon.com]
Sent: Thursday, September 17, 2009 4:43 PM
To: Frederick Hirsch
Cc: Marcin Hanclik; public-webapps@w3.org
Subject: Re: [WARP] Last Call comments (1)

On Sep 10, 2009, at 15:00 , Frederick Hirsch wrote:
 Is the fundamental difference of feature and access the following:

 feature - API set expected to be possibly used
 access - network resource to be accessed.

Exactly. I think that part of the confusion stems from the different
uses of URIs. For features they're just identifiers, for access
they're locators (or partial patterns on locators).

--
Robin Berjon - http://berjon.com/






Access Systems Germany GmbH
Essener Strasse 5  |  D-46047 Oberhausen
HRB 13548 Amtsgericht Duisburg
Geschaeftsfuehrer: Michel Piquemal, Tomonori Watanabe, Yusuke Kanda

www.access-company.com

CONFIDENTIALITY NOTICE
This e-mail and any attachments hereto may contain information that is 
privileged or confidential, and is intended for use only by the
individual or entity to which it is addressed. Any disclosure, copying or 
distribution of the information by anyone else is strictly prohibited.
If you have received this document in error, please notify us promptly by 
responding to this e-mail. Thank you.



RE: [WARP] Last Call comments (1)

2009-09-17 Thread Marcin Hanclik
Hi Robin,

I am further trying to align the syntax and semantics of WARP.

The design was based on:
...
  - enabling boolean access to URIs
...
As in the previous emails, I assume that WARP should more underline the 
retrievable character of the network RESOURCE.
Then mailto: should not be mentioned at all (or mentioned as not in scope for 
WARP, bad example due to non-retrievability etc). Then the following sentence:

However, a user agent may grant access to certain URI schemes (e.g., mailto:) 
without the need of an access request if its security policy considers those 
schemes benign.

could be rephrased e.g. to:

It is out of the scope of this specification how schemes other than http, 
https and interfaces other than XmlHttpRequest access the network.

Similarly I assume that e.g. a element is out of the scope, this could entail 
that openURL from widget interface would be excluded as well (aka my previous 
email).

Thanks,
Marcin

Marcin Hanclik
ACCESS Systems Germany GmbH
Tel: +49-208-8290-6452  |  Fax: +49-208-8290-6465
Mobile: +49-163-8290-646
E-Mail: marcin.hanc...@access-company.com

-Original Message-
From: Robin Berjon [mailto:ro...@berjon.com]
Sent: Thursday, September 17, 2009 4:41 PM
To: Marcin Hanclik
Cc: Marcos Caceres; public-webapps@w3.org
Subject: Re: [WARP] Last Call comments (1)

On Sep 8, 2009, at 11:00 , Marcin Hanclik wrote:
 As stated in my original email, one of the targets is that access
 is not an obstacle for DAP.

The design was based on:

  - not restricting DAP's ability to define a security policy
  - enabling boolean access to URIs
  - having pattern matching that covers most cases
  - making sure that web content that works outside of a widget can
work inside a widget

 It is currently undefined how the related access control will be
 done and we would probably want to avoid the situation that access
 is deprecated once DAP is ready with their model.

Quite the contrary. If all goes well DAP's security policy will be
available within a couple years, and after that we'll need another
year before it ships as presumably it'll have some degree of
complexity. That's all fine but the problem that we have today is that
people are shipping implementations with support for something a lot
like access but that are not compatible. Just off the top of my head
I know that Opera has their own stuff (which was the original
proposal), BONDI has network-access which is different, JIL has
something of their own with different default rules, and Microsoft has
a widget engine using access from the December 2008 PC draft.

What WARP does is that it provides the strictly minimal solution that
will make interoperability possible before DAP finishes its work,
while adhering to its fundamental design principles. If it gets
obsoleted, superseded, set on fire in public displays of wrath, or
trampled by a horde of arctic hippopotami on MDMA then great. The
primary goal is to gain 3 years of interoperability which we need to
have. A complementary goal is that since we want content created
conforming to WARP today to be valid forever is that the policies that
WARP enables should be expressible using whatever DAP comes up with,
so that access can be defined as simply a syntactical shortcut to DAP.

In other words it is future-proof *because* it is simple. It's
extensible (if we need to, which I don't think we should) because it's
XML (and because its processing model is intended for that).

--
Robin Berjon - http://berjon.com/






Access Systems Germany GmbH
Essener Strasse 5  |  D-46047 Oberhausen
HRB 13548 Amtsgericht Duisburg
Geschaeftsfuehrer: Michel Piquemal, Tomonori Watanabe, Yusuke Kanda

www.access-company.com

CONFIDENTIALITY NOTICE
This e-mail and any attachments hereto may contain information that is 
privileged or confidential, and is intended for use only by the
individual or entity to which it is addressed. Any disclosure, copying or 
distribution of the information by anyone else is strictly prohibited.
If you have received this document in error, please notify us promptly by 
responding to this e-mail. Thank you.



RE: [WARP] Last Call comments (1)

2009-09-15 Thread Marcin Hanclik
Hi Frederick,

I do not think they are so different.
feature points to anything, we can still build the interpretation.
We can build new worlds on top of feature and param elements, 
independently of any spec IMHO.
feature does not necessarily have to point to the same category of 
components, we can define the categories in any way, e.g. by various IRI 
namespaces.

I think it can be disputable what access is for.
WARP says:
 A network resource is a retrievable resource of any type that is identified 
by a URI that has a DNS or IP as its authority.

Then, how to fit e.g. sms: or tel: schemes into this context?
@subdomains makes also little sense for those schemes.
Apart from DNS/IP issues, I assume that some Web resources are not meant to 
be retrievable, e.g. POSTing a form uses URI to send information to, and not to 
retrieve a resource.
If we would like the spec to be future-/scheme-proof, we could prepare the 
model based on actual schemes, as e.g. suggested in my below email. Experience 
from CORS could also help.

if so, doesn't feature imply both the loading and permission to access
a library, whereas access is about accessing a resource.
E.g. generic network access (not to specific resource, but just to the 
information whether the WUA is online/connected) may be regarded as runtime 
component of the WUA or its environment.

Thanks,
Marcin

Marcin Hanclik
ACCESS Systems Germany GmbH
Tel: +49-208-8290-6452  |  Fax: +49-208-8290-6465
Mobile: +49-163-8290-646
E-Mail: marcin.hanc...@access-company.com

-Original Message-
From: Frederick Hirsch [mailto:frederick.hir...@nokia.com]
Sent: Thursday, September 10, 2009 3:01 PM
To: Marcin Hanclik
Cc: Frederick Hirsch; public-webapps@w3.org
Subject: Re: [WARP] Last Call comments (1)

Is the fundamental difference of feature and access the following:

feature - API set expected to be possibly used
access - network resource to be accessed.

if so, doesn't feature imply both the loading and permission to access
a library, whereas access is about accessing a resource.

if this is correct, aren't these fundamentally different?

regards, Frederick

Frederick Hirsch
Nokia



On Aug 27, 2009, at 2:06 PM, ext Marcin Hanclik wrote:

 Hi All,

 Here are a couple of the Last Call comments to WARP LCWD [1].
 They were already partially presented in my emails [2] and [3].

 The comments below are more of architectural nature than just
 editorial fixes.
 That is why the arguments together with the derived understanding
 are followed by the proposed changes to the specification. The
 proposed changes below are incomplete.

 MOTIVATION / ARGUMENTS

 The main motivation for the changes proposed below is the syntax and
 the underlying architecture related to the treatment of the network
 access - from the widget's or web application's point of view - as
 the resource to which access is to be controlled by some security
 policy.

 The specification that underlies the overall widgets ecosystem,
 Widgets 1.0: Packaging and Configuration (further referred to as
 PC) [4], defines a method to express the dependency of the widget
 on a resource/component, namely the feature element.
 PC in [5] - the definition of the feature element - states:

 A feature is a runtime component

 The feature element serves as a standardized means to request the
 binding of an (IRI) identifiable runtime component to a widget for
 use at runtime.

 ...a widget can attempt to access the feature identified by the
 feature element's name attribute.

 PC [6] states non-normatively:
 The Widgets 1.0: Access Requests specification defines a means to
 request access to URI-identifiable resources (e.g. resources on the
 Web) (see [Widgets-Access]).

 On the other hand, however, WARP states [7]:
  The purpose of this specification is precisely to define the
 security model for network interactions from within a widget that
 has access to sensitive information, and to provide means for a
 widget to declare the need to access specific network resources so
 that a policy may control it.
 And [8]
 A network resource is a retrievable resource of any type that is
 identified by a URI that has a DNS or IP as its authority.

 WARP states that it addresses [9] the requirements [10] and [11].

 [10] R52 Default Security Policy:

 A conforming specification MUST specify a default security policy
 that limits the privileges afforded to a widget at runtime. The
 default security policy MUST be specified in such a way that it
 forces a widget package to explicitly request permission to use
 particular device capabilities (see also the Security Declarations
 requirement).

 [11] R54 Security Declarations:

 A conforming specification MUST specify or recommend a means for
 declaring that an instantiated widget will require access to
 resources or services that have the potential to introduce a
 security risk for an end user. A conforming specification SHOULD
 also make it possible to externalize and associate security

Re: [WARP] Last Call comments (1)

2009-09-10 Thread Frederick Hirsch

Is the fundamental difference of feature and access the following:

feature - API set expected to be possibly used
access - network resource to be accessed.

if so, doesn't feature imply both the loading and permission to access  
a library, whereas access is about accessing a resource.


if this is correct, aren't these fundamentally different?

regards, Frederick

Frederick Hirsch
Nokia



On Aug 27, 2009, at 2:06 PM, ext Marcin Hanclik wrote:


Hi All,

Here are a couple of the Last Call comments to WARP LCWD [1].
They were already partially presented in my emails [2] and [3].

The comments below are more of architectural nature than just  
editorial fixes.
That is why the arguments together with the derived understanding  
are followed by the proposed changes to the specification. The  
proposed changes below are incomplete.


MOTIVATION / ARGUMENTS

The main motivation for the changes proposed below is the syntax and  
the underlying architecture related to the treatment of the network  
access - from the widget's or web application's point of view - as  
the resource to which access is to be controlled by some security  
policy.


The specification that underlies the overall widgets ecosystem,  
Widgets 1.0: Packaging and Configuration (further referred to as  
PC) [4], defines a method to express the dependency of the widget  
on a resource/component, namely the feature element.

PC in [5] - the definition of the feature element - states:

A feature is a runtime component

The feature element serves as a standardized means to request the  
binding of an (IRI) identifiable runtime component to a widget for  
use at runtime.


...a widget can attempt to access the feature identified by the  
feature element's name attribute.


PC [6] states non-normatively:
The Widgets 1.0: Access Requests specification defines a means to  
request access to URI-identifiable resources (e.g. resources on the  
Web) (see [Widgets-Access]).


On the other hand, however, WARP states [7]:
 The purpose of this specification is precisely to define the  
security model for network interactions from within a widget that  
has access to sensitive information, and to provide means for a  
widget to declare the need to access specific network resources so  
that a policy may control it.

And [8]
A network resource is a retrievable resource of any type that is  
identified by a URI that has a DNS or IP as its authority.


WARP states that it addresses [9] the requirements [10] and [11].

[10] R52 Default Security Policy:

A conforming specification MUST specify a default security policy  
that limits the privileges afforded to a widget at runtime. The  
default security policy MUST be specified in such a way that it  
forces a widget package to explicitly request permission to use  
particular device capabilities (see also the Security Declarations  
requirement).


[11] R54 Security Declarations:

A conforming specification MUST specify or recommend a means for  
declaring that an instantiated widget will require access to  
resources or services that have the potential to introduce a  
security risk for an end user. A conforming specification SHOULD  
also make it possible to externalize and associate security  
declarations with a particular widget package (e.g., by allowing  
security declarations to be securely acquired from an external  
trusted authority over HTTP). This MUST include a means of declaring  
the APIs that a widget expects to access. When possible, a  
conforming specification MUST specify a means to verify the  
authenticity and integrity of security declarations included in the  
widget package (e.g. by using Digital Signatures).


One of the motivations against the @required attribute on access  
element was prompting [12], and prompting is included the current  
LCWD [9]. Therefore it is unclear what the argumentation against  
@required attribute is (this is related to the semantics of the  
access and feature elements as outlined below).


The above statements result in the following understanding:

1. WARP specification actually defines the syntax for expression of  
dependency of a widget only on network resources. So here, the name  
of the specification is misleading (taking into account only this  
point, we could require it be named Widgets 1.0: Network Access  
Policy).


2. The dependency of a widget on network resources is atomic and  
unconditional.


3. The resource is identifiable by URI.

4. The URI-identifiable resources are not necessarily truly remote  
network resources.


5. Since network access introduces various risks (e.g. when roaming)  
the requirement [11]:


 A conforming specification MUST specify or recommend a means for  
declaring that  an instantiated widget will require access to  
resources or services that have to the potential to introduce a  
security risk for an end user.


seems not to be fully satisfied, since the access to network  
resources is unconditional in 

RE: [WARP] Last Call comments (1)

2009-09-08 Thread Marcin Hanclik
Hi Marcos,

Re 99% fulfillment of the needs:
As stated in my original email, one of the targets is that access is not an 
obstacle for DAP.
It is currently undefined how the related access control will be done and we 
would probably want to avoid the situation that access is deprecated once DAP 
is ready with their model.
So we may fulfill 99% of the needs now, but 1% in a few months with the 
access element.
That is why I proposed a more robust and extensible (hopefully future-proof) 
design of the functionality based on feature element.

 What's more, the conditional character of feature brings flexibility to 
 the design of widgets/webapps and may be important from
their usability point of view.

I don't understand the above sentence, can you give me an example of
what you mean?

Here I refer to the absence of the @required attribute on access element and 
its presence on feature element.
By flexibility I mean the fact that access to some web resource could be 
conditional (i.e. not-required).
Let's say my widget wants to retrieve resources from 2 websites / domains.
One website provides the core functionality of the widget, i.e. the resources 
from it are mandatory/required, instantiation of the widget without access to 
those resources makes no sense etc.
The second website provides additional functionality, a kind of nice-to-have 
for my widget. So access to the resources from this website is optional 
(@required=false).

Thanks,
Marcin


Marcin Hanclik
ACCESS Systems Germany GmbH
Tel: +49-208-8290-6452  |  Fax: +49-208-8290-6465
Mobile: +49-163-8290-646
E-Mail: marcin.hanc...@access-company.com

-Original Message-
From: Marcos Caceres [mailto:marc...@opera.com]
Sent: Monday, September 07, 2009 3:37 PM
To: Marcin Hanclik
Cc: public-webapps@w3.org
Subject: Re: [WARP] Last Call comments (1)



Marcin Hanclik wrote:
 Hi Marcos,

 is pretty simple, logical, and gets the job done for most use cases.

 The above is not the case e.g. for mailto: or tel:, specifically if you want 
 to be more specific/selective with the additional arguments (a la subdomains).

Access requests for those are not relevant, IMO. Those would be
controlled by the policy of the UA. (e.g., policy may say all 'tel:' and
'mailto:' are allowed and handled by the appropriate scheme handler -
the phone dialer or the mail app.)

I don't see any use case for access uri=mailto:*...@gmail.com; or
access uri=tel:+47*. That's overkill, IMO.

access covers the common (+99%) use case of accessing stuff on the
Web. Like I said, other scheme handlers can handle tel, mailto, etc.
like is currently done by browsers.

 It is also not the case for the distinction between programmatic vs. 
 declarative/URL (not sure how to name it :) ) access.
 Those aspects may be important from the DAP's security model perspective.

Key word here is may: you are adding solutions before you have a
problem. Just focus on solving the issue at hand.

 Most use cases currently entails a few assumptions implicitly, e.g. 
 relation to installation-time or dynamic access to the resource etc.

Let me make the assumptions explicit: Most use cases for Opera = the
Opera gallery of Widgets and what our developer community need and want.
They want access to, for instance, the flickr API, the Google APIs,
Twitter, etc. and the ability to mash up stuff really quickly,
painlessly, and easily. They (and I) want a super easy to use platform
that kicks ass for developing and delivering client-side applications.
My goal is to give that to them:) I'm sure your goals are the same.

In the future, they might want access to features provided by dap.
Hopefully, they won't have to request those through a feature element
(i.e., the APIs will just be there for them to use without requesting
them), but, in the unfortunate case that they do have to request them, I
want to make sure it's as simple as possible.

 What's more, the conditional character of feature brings flexibility to the 
 design of widgets/webapps and may be important from their usability point of 
 view.

I don't understand the above sentence, can you give me an example of
what you mean?


Kind regards,
Marcos



Access Systems Germany GmbH
Essener Strasse 5  |  D-46047 Oberhausen
HRB 13548 Amtsgericht Duisburg
Geschaeftsfuehrer: Michel Piquemal, Tomonori Watanabe, Yusuke Kanda

www.access-company.com

CONFIDENTIALITY NOTICE
This e-mail and any attachments hereto may contain information that is 
privileged or confidential, and is intended for use only by the
individual or entity to which it is addressed. Any disclosure, copying or 
distribution of the information by anyone else is strictly prohibited.
If you have received this document in error, please notify us promptly by 
responding to this e-mail. Thank you.


RE: [WARP] Last Call comments (1)

2009-09-07 Thread Marcin Hanclik
Hi Marcos,

What you did in 192 characters, the access element does in 52.

That is the point of the access element: to make these kind of
annoying declarations easy to write.

I do not think that the conciseness is the main driver of this aspect of the 
config.xml.
What matters seems to be semantics, specifically in the light of the security 
model and selectiveness of the intentions.

The size of the expression could be lowered a bit, e.g. the IRI could be 
changed from;
http://www.w3.org/widgetfeatures/networkaccess/http
to
http://www.w3.org/wf10/na/http
and so on.

From another angle:
We seem to agree to have implicit API versioning (in DAP) that result in 
multiplication of the size of the runtime code (note the performance impact), 
so having a few more characters in config.xml with clearly defined semantics 
seems not to be an issue, I think.

Thanks,
Marcin

Marcin Hanclik
ACCESS Systems Germany GmbH
Tel: +49-208-8290-6452  |  Fax: +49-208-8290-6465
Mobile: +49-163-8290-646
E-Mail: marcin.hanc...@access-company.com

-Original Message-
From: marcosscace...@gmail.com [mailto:marcosscace...@gmail.com] On Behalf Of 
Marcos Caceres
Sent: Friday, September 04, 2009 5:04 PM
To: Marcin Hanclik
Cc: public-webapps@w3.org
Subject: Re: [WARP] Last Call comments (1)

Hi Marcin,
I tried to respond to this email, but in all honesty, I can't follow
your line of argumentation. Maybe you can list your main points as a
list (sorry, I'm a bit simple)...

From what I got, I agree that WARP is over reaching: It does not
address the requirements it lists from the Widgets 1.0: Requirements
document. Otherwise, I'll just leave it to Robin to respond.

I've made some notes on the proposed changes.

On Thu, Aug 27, 2009 at 8:06 PM, Marcin
Hanclikmarcin.hanc...@access-company.com wrote:

 PROPOSED CHANGES

 Given the semantic similarities (or equivalence) between:

 access uri=http://example.org; subdomains=true/

 and e.g.:

 feature name=http://www.w3.org/widgetfeatures/networkaccess/http; 
 required=false
param name=uri value=http://example.org/
param name=subdomains value=true/ /feature


What you did in 192 characters, the access element does in 52.

That is the point of the access element: to make these kind of
annoying declarations easy to write.

 I propose the following:

 1. Change the name of the specification to Widgets 1.0: Network Access 
 Feature and focus on per-URI-scheme definition of the syntax dependencies 
 and functionality.

 Examples:
 a)
 The following feature could replace the generic network access (proposed in 
 the LCWD as * for @uri attribute):

 feature name=http://www.w3.org/widgetfeatures/networkaccess; 
 required=true /

 b)
 The following features could define the http and https access

 feature name=http://www.w3.org/widgetfeatures/networkaccess/http; 
 required=false
param name=uri value=http://example.org/
param name=subdomains value=true/
param name=ports value=80, 8080/ /feature

 feature name=http://www.w3.org/widgetfeatures/networkaccess/https; 
 required=true
param name=uri value=https://example.org/
param name=subdomains value=false/
param name=interface value=XMLHttpRequest/
!-- port defaults to 443 --
 /feature

 c)
 The following feature could define access to SMS feature:

 feature name=http://www.w3.org/widgetfeatures/networkaccess/sms; 
 required=true
param name=uri value=sms:+16177166200/ /feature

 feature name=http://www.w3.org/widgetfeatures/networkaccess/sms; 
 required=true
param name=countrycallingcodes value=1,48,49,34/ /feature

 2. Rewrite parts of the specification - specifically section 3, while keeping 
 its majority as is - to adhere to the syntax of the feature and param 
 elements as outlined above.

 3. Refrain from specifying the default policy; remove the word security from 
 the specification (since this is to be handled in DAP).

 4. Focus in the specification text only on declarative aspects of the 
 intention of the author of the widget, leaving e.g. prompting aspects for 
 DAP. I.e. assuming that the network access is conditional, what are the 
 implications for the widget's code and author in case the network access is 
 not present or its presence is dynamic? (e.g. provide a definition of the 
 event mechanism).

 5. In order to be able to define the IRI for network access feature, another 
 document should probably be prepared that would also define the namespace for 
 the further feature definitions (e.g. http://www.w3.org/widgetfeatures/).

 6. Focus in the specification only on http and https. subdomains attribute 
 / value of the parameter is valid mainly for this protocol family (also 
 including e.g. rtsp, ftp etc.). Other schemes, like sms, tel, mms (there is 
 no RFC for some) have their own specificities, e.g. country calling/dialing 
 codes, shortcodes.

 Thanks.

 Kind regards,
 Marcin

 [1] http://www.w3.org/TR/2009/WD-widgets-access-20090804/
 [2] http://lists.w3.org/Archives/Public

Re: [WARP] Last Call comments (1)

2009-09-07 Thread Marcos Caceres



Marcin Hanclik wrote:

Hi Marcos,


What you did in 192 characters, the access element does in 52.

That is the point of the access element: to make these kind of
annoying declarations easy to write.


I do not think that the conciseness is the main driver of this aspect of the 
config.xml.


In a lot of cases, it is. It's the reason we don't have wrapper elements 
for icons, etc.



What matters seems to be semantics, specifically in the light of the security 
model and selectiveness of the intentions.


Yes, this is of course, far more important. But making the expression of 
intent as easy to express as possible is very important (hence the 
conciseness, and taking out as much work as possible for developers)



The size of the expression could be lowered a bit, e.g. the IRI could be 
changed from;
http://www.w3.org/widgetfeatures/networkaccess/http
to
http://www.w3.org/wf10/na/http
and so on.


No, we don't need another namespace. Even a short convoluted one. 
access in the widget namespace is already defined. I.e., access 
already means http://www.w3.org/wf10/na/http;, and it is much easier to 
remember and use.



 From another angle:
We seem to agree to have implicit API versioning (in DAP) that result in 
multiplication of the size of the runtime code (note the performance impact), 
so having a few more characters in config.xml with clearly defined semantics 
seems not to be an issue, I think.


We are entering a bikeshed discussion here. What we should be asking is 
if the expression of intent is clear in the declaration:


1. I wanna access resource X on the Web? what is the most brain-dead 
simple way I can do that?


For me, personally, saying:

access uri=http://bla.com/some/resource;

is pretty simple, logical, and gets the job done for most use cases.

Kind regards,
Marcos





RE: [WARP] Last Call comments (1)

2009-09-07 Thread Marcin Hanclik
Hi Marcos,

is pretty simple, logical, and gets the job done for most use cases.

The above is not the case e.g. for mailto: or tel:, specifically if you want to 
be more specific/selective with the additional arguments (a la subdomains).
It is also not the case for the distinction between programmatic vs. 
declarative/URL (not sure how to name it :) ) access.
Those aspects may be important from the DAP's security model perspective.

Most use cases currently entails a few assumptions implicitly, e.g. relation 
to installation-time or dynamic access to the resource etc.

What's more, the conditional character of feature brings flexibility to the 
design of widgets/webapps and may be important from their usability point of 
view.

Thanks,
Marcin

Marcin Hanclik
ACCESS Systems Germany GmbH
Tel: +49-208-8290-6452  |  Fax: +49-208-8290-6465
Mobile: +49-163-8290-646
E-Mail: marcin.hanc...@access-company.com



Access Systems Germany GmbH
Essener Strasse 5  |  D-46047 Oberhausen
HRB 13548 Amtsgericht Duisburg
Geschaeftsfuehrer: Michel Piquemal, Tomonori Watanabe, Yusuke Kanda

www.access-company.com

CONFIDENTIALITY NOTICE
This e-mail and any attachments hereto may contain information that is 
privileged or confidential, and is intended for use only by the
individual or entity to which it is addressed. Any disclosure, copying or 
distribution of the information by anyone else is strictly prohibited.
If you have received this document in error, please notify us promptly by 
responding to this e-mail. Thank you.


Re: [WARP] Last Call comments (1)

2009-09-07 Thread Marcos Caceres



Marcin Hanclik wrote:

Hi Marcos,


is pretty simple, logical, and gets the job done for most use cases.


The above is not the case e.g. for mailto: or tel:, specifically if you want to 
be more specific/selective with the additional arguments (a la subdomains).


Access requests for those are not relevant, IMO. Those would be 
controlled by the policy of the UA. (e.g., policy may say all 'tel:' and 
'mailto:' are allowed and handled by the appropriate scheme handler - 
the phone dialer or the mail app.)


I don't see any use case for access uri=mailto:*...@gmail.com; or 
access uri=tel:+47*. That's overkill, IMO.


access covers the common (+99%) use case of accessing stuff on the 
Web. Like I said, other scheme handlers can handle tel, mailto, etc. 
like is currently done by browsers.



It is also not the case for the distinction between programmatic vs. 
declarative/URL (not sure how to name it :) ) access.
Those aspects may be important from the DAP's security model perspective.


Key word here is may: you are adding solutions before you have a 
problem. Just focus on solving the issue at hand.



Most use cases currently entails a few assumptions implicitly, e.g. relation 
to installation-time or dynamic access to the resource etc.


Let me make the assumptions explicit: Most use cases for Opera = the 
Opera gallery of Widgets and what our developer community need and want. 
They want access to, for instance, the flickr API, the Google APIs, 
Twitter, etc. and the ability to mash up stuff really quickly, 
painlessly, and easily. They (and I) want a super easy to use platform 
that kicks ass for developing and delivering client-side applications. 
My goal is to give that to them:) I'm sure your goals are the same.


In the future, they might want access to features provided by dap. 
Hopefully, they won't have to request those through a feature element 
(i.e., the APIs will just be there for them to use without requesting 
them), but, in the unfortunate case that they do have to request them, I 
want to make sure it's as simple as possible.



What's more, the conditional character of feature brings flexibility to the 
design of widgets/webapps and may be important from their usability point of view.


I don't understand the above sentence, can you give me an example of 
what you mean?



Kind regards,
Marcos



Re: [WARP] Last Call comments (1)

2009-09-04 Thread Marcos Caceres
Hi Marcin,
I tried to respond to this email, but in all honesty, I can't follow
your line of argumentation. Maybe you can list your main points as a
list (sorry, I'm a bit simple)...

From what I got, I agree that WARP is over reaching: It does not
address the requirements it lists from the Widgets 1.0: Requirements
document. Otherwise, I'll just leave it to Robin to respond.

I've made some notes on the proposed changes.

On Thu, Aug 27, 2009 at 8:06 PM, Marcin
Hanclikmarcin.hanc...@access-company.com wrote:

 PROPOSED CHANGES

 Given the semantic similarities (or equivalence) between:

 access uri=http://example.org; subdomains=true/

 and e.g.:

 feature name=http://www.w3.org/widgetfeatures/networkaccess/http; 
 required=false
    param name=uri value=http://example.org/
    param name=subdomains value=true/ /feature


What you did in 192 characters, the access element does in 52.

That is the point of the access element: to make these kind of
annoying declarations easy to write.

 I propose the following:

 1. Change the name of the specification to Widgets 1.0: Network Access 
 Feature and focus on per-URI-scheme definition of the syntax dependencies 
 and functionality.

 Examples:
 a)
 The following feature could replace the generic network access (proposed in 
 the LCWD as * for @uri attribute):

 feature name=http://www.w3.org/widgetfeatures/networkaccess; 
 required=true /

 b)
 The following features could define the http and https access

 feature name=http://www.w3.org/widgetfeatures/networkaccess/http; 
 required=false
    param name=uri value=http://example.org/
    param name=subdomains value=true/
    param name=ports value=80, 8080/ /feature

 feature name=http://www.w3.org/widgetfeatures/networkaccess/https; 
 required=true
    param name=uri value=https://example.org/
    param name=subdomains value=false/
    param name=interface value=XMLHttpRequest/
    !-- port defaults to 443 --
 /feature

 c)
 The following feature could define access to SMS feature:

 feature name=http://www.w3.org/widgetfeatures/networkaccess/sms; 
 required=true
    param name=uri value=sms:+16177166200/ /feature

 feature name=http://www.w3.org/widgetfeatures/networkaccess/sms; 
 required=true
    param name=countrycallingcodes value=1,48,49,34/ /feature

 2. Rewrite parts of the specification - specifically section 3, while keeping 
 its majority as is - to adhere to the syntax of the feature and param 
 elements as outlined above.

 3. Refrain from specifying the default policy; remove the word security from 
 the specification (since this is to be handled in DAP).

 4. Focus in the specification text only on declarative aspects of the 
 intention of the author of the widget, leaving e.g. prompting aspects for 
 DAP. I.e. assuming that the network access is conditional, what are the 
 implications for the widget's code and author in case the network access is 
 not present or its presence is dynamic? (e.g. provide a definition of the 
 event mechanism).

 5. In order to be able to define the IRI for network access feature, another 
 document should probably be prepared that would also define the namespace for 
 the further feature definitions (e.g. http://www.w3.org/widgetfeatures/).

 6. Focus in the specification only on http and https. subdomains attribute 
 / value of the parameter is valid mainly for this protocol family (also 
 including e.g. rtsp, ftp etc.). Other schemes, like sms, tel, mms (there is 
 no RFC for some) have their own specificities, e.g. country calling/dialing 
 codes, shortcodes.

 Thanks.

 Kind regards,
 Marcin

 [1] http://www.w3.org/TR/2009/WD-widgets-access-20090804/
 [2] http://lists.w3.org/Archives/Public/public-webapps/2009JulSep/0290.html
 [3] http://lists.w3.org/Archives/Public/public-webapps/2009JulSep/0294.html
 [4] http://www.w3.org/TR/widgets
 [5] http://www.w3.org/TR/widgets/#the-feature-element
 [6] http://www.w3.org/TR/widgets/#the-widget-family-of-specifications
 [7] http://www.w3.org/TR/2009/WD-widgets-access-20090804/#introduction
 [8] http://www.w3.org/TR/2009/WD-widgets-access-20090804/#definitions
 [9] 
 http://www.w3.org/TR/2009/WD-widgets-access-20090804/#design-goals-and-requirements
 [10] http://www.w3.org/TR/widgets-reqs/#default-security-policy
 [11] http://www.w3.org/TR/widgets-reqs/#security-declarations
 [12] http://www.w3.org/2009/06/09-wam-minutes.html
 [13] http://www.w3.org/2009/05/DeviceAPICharter
 [14] 
 http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-August/022264.html

 Marcin Hanclik
 ACCESS Systems Germany GmbH
 Tel: +49-208-8290-6452  |  Fax: +49-208-8290-6465
 Mobile: +49-163-8290-646
 E-Mail: marcin.hanc...@access-company.com

 

 Access Systems Germany GmbH
 Essener Strasse 5  |  D-46047 Oberhausen
 HRB 13548 Amtsgericht Duisburg
 Geschaeftsfuehrer: Michel Piquemal, Tomonori Watanabe, Yusuke Kanda

 www.access-company.com

 CONFIDENTIALITY NOTICE
 This e-mail and any attachments hereto