On Mon, Jul 20, 2009 at 6:41 PM, Marcin Hanclik<marcin.hanc...@access-company.com> wrote: > Dear All, > > Following the discussions (as below) about the topic of the required > attribute on <access> element, I would like to provide a few comments to the > current WARP WD. > > Historically <access> element was earlier in the widget set of specification > than <feature>. > >From the design perspective the network access is a feature as are any other > >potential features (not specified in W3C yet, but coming in DAP), like > >messaging (SMS, MMS, any other means), file access etc. > The semantic difference between <access> and <feature> is the missing > @required attribute on <access> element. > > Removing from the below notes the following comments: > - UX aspects, since they are the same as for feature > - Policy aspects, for the same reason > we could conclude that indeed @required could be put onto <access> element to > uniformly treat functionalities/features and to prepare a consistent model - > within all the widgets specifications - for any discussions around security > policies in DAP. It seems that DAP may bring new inputs to the discussion > about @required attribute, I just think that we may discuss it sooner so that > the WARP spec ensures the consistency of the widget packaging data model. > > If possible, I would like to start a discussion about this topic over email, > since the discussion during F2F (as below) seems to have diverted into > undesired direction leaving the topic actually not fully clarified (either > for or against). > > Following reasoning provided by Bryan Sullivan (e.g. > http://lists.w3.org/Archives/Public/public-webapps/2009AprJun/0489.html), my > use case for @required attribute is as follows: > Imagine a widget that is fully functional without network, e.g. an off-line > game or MMS/SMS-client widget. > The widget requires the network access only in very specific cases, e.g. to > upload game result, and network access can easily fail, it is not mandatory > for the normal operation of the widget. > If the device/WUA has a policy specified (assuming W3C will define some, or > e.g. as it is done within BONDI), the authority defining the policy may be > interested in controlling the network access, due to e.g. roaming, similarly > to controlling any other feature. > > The WARP spec says: > "For example, when a user attempts to install a Widget in a User Agent, and > the Widget Configuration Document declares that it requires access to > currently blocked services in order to function, the User Agent may prompt > the user to choose to: > > 1. enable access to the service (for example, adding the service to a proxy > server or firewall white list), > 2. cancel installing the Widget, or > 3. proceed with installation, with the user now aware that there may be > problems with the Widget due to restricted access to services." > Adding @required on <access> would change the state-machine related to widget. > Currently if a widget requires network access, it is assumed that this access > would be granted once forever, at installation time. It defaults to having > @required="true". > @required="false" would mean - as for the above use case - that the widget > does not have to access the network, it just may request such access. > > P&C spec says the following about @required on <access>: > " When set to true, the required attribute denotes that a feature is > absolutely needed by the widget to function correctly, and without the > availability of this feature the widget serves no useful purpose or won't > execute properly. > When set to false, the required attribute denotes that a widget can > function correctly without the feature being supported or otherwise made > available by the user agent. > The default value that a user agent must use when the required attribute > is absent is true, meaning that the feature must be made available to the > widget by the user agent at runtime. > It is optional for authors to use the required attribute with an feature > element." > > The intended semantics of the @required attribute on <access> would be > exactly the same as in P&C, thus there is potential for having a consistency. >
The P&C spec no longer says any such thing. The P&C is ignorant of <access>. > To sum up, the most important argument for @required on <access> is the > consistency of the model for <feature> and <access> elements. > > Thanks. > > Kind regards, > Marcin > > Robin >>>I'm happy to add a required attribute with the same semantics >>>and processing as those of the same attribute on >>><feature>. I think it makes sense to be consistent here. > > Marcos >>>I can live with this if the rest of the WG wants it, >>>but I don't get the sense this will get used much (i.e., required = "false'). >>>So again, do we _REALLY_ need this? > > Bryan >>>In the case of the resources identified by <access>, widgets may be designed >>>to use a variety of them. >>>As close to a specific example I can give (recognize that I expect the >>>variety of widgets >>>and their relationships to content/service resources to be much wider) is: >>>- a social networking widget is designed to use the HTTP-based API's >>>provided by various >>>social network providers, and includes the API URI's in <access> elements >>>- some of these resources may not be accessible due to policies in effect >>>for the user and/or service provider >>>- the widget is nonetheless designed to work with some of the social networks >>>via an alternate resource, e.g. an API proxy provider, which is allowed per >>>policy >>>- the widget is thus usable on devices in which at least the API proxy >>>resource >>>is accessible: thus it is "required", and the others "optional" >>> >>>There are various valid reasons (validity of course here being in the eye of >>>the user >>>and/or service provider) for variation in resource accessibility, >>>and these can be expressed as policies e.g. via BONDI, which can be used >>>in the compatibility decision process. With the complimentary expression of >>>*need* >>>in the <access> element, we can support a complete system of compatibility >>>verification, >>>without widget-package-external metadata (e.g. something maintained in a >>>proprietary way >>>as part of an app store widget cataloging system). > > http://www.w3.org/2009/06/09-wam-minutes.html > BS: it had to do generally with the purpose for the access element v the > feature element > ... there were two things I proposed > ... 1) a @required flag > ... you get only what you declare in the way it is defined, which means that > without prior knowledge that a specific domain is going to be allowed, you > won't find out until it doesn't work > ... you can't get access to things that may be useful but not essential > ... <feature> was designed around that, but not <access> - which I find is > similar in nature > ... you could have alternate approaches if a netres is not available > ... I based acc...@required on the feature > RB: it's commented out, pushed out to v2 > BS: why defer? > AB: I think the general reason why some of us felt we should put it off is > because we hit LC around christmas last year, and we'd like to consider > ourselves feature-complete > BS: but WARP has been moved out into a separate spec > BS: is it assumed WARP is near LC? > AB: when we made that decision, it was still in PC > ... so does the decision move with it? > AB: the idea was that WARP should move at warp speed > ... I suggest that the same rationale applies > ... we don't want any new features > MC: I still don't see much use for these attributes, so from Opera's point of > view we don't see them as that useful > JK: I'm indifferent about @required, but @duration is disconcerting > ... I see a lot of echo of J2ME and the result of that is when these values > were used and applied to mutiple different APIs it very quickly turns into > excessive prompting > JK: that's a UX killer - if we bring that into <access> where the granularity > is a URL, and you have several of these, you're going to get more prompting, > and a dreadful UX > RT: I agree, you're implying UX with prompting - we don't want to imply UX, > that's an implementation thing > MH: consolidation of the prompts? > MH: this is an important factor > BS: the purpose is not to mandate a UI/UX > ... obviously apps have to be designed or vetted to access some features > <ArtB> Bryan's email: > http://lists.w3.org/Archives/Public/public-webapps/2009AprJun/att-0844/00-part > BS: the purpose of this disclosure is not to promote a given security model > BS: we will eventually have a process of alignement > BS: we see this process of prompting as essential > BS: but this is just like feat...@required > ... this is about what the widget needs to be able to do > MC: even if @required is going to be useless because the URL might be > unavailable > BS: but you can still have a policy > MC: yeah, but I think it's overkill > ... <access> says what you want to access, and then it might but unavailable > ... so you're already handling that case > BS: but the widget won't install > RB: we don't say whether the widget gets installed or not > MC: you know acc...@uri > ... if it's not allowed to access something inside the range of URIs, the > required doesn't change anything there > ... on feature it's different but I could live with dropping it there > errrrr > sorry, had to undrop it > MC: the request would just fail > BS: but with @reuiqred you can check that by policy > ... you could implement APIs on the web represented as URIs much more > flexibly, but they should be equal citizen with feature > MC: required on feature is a legacy from when we had fallback - this has gone > so it could go too > RB: if we drop @required on feature we have to go back to LC > BS: if you discover incompatibility earlier, you have a better UX > Josh: wrong, users get pissed because they can't install the widget that > their friend has > ... if it bails out too early I can't use it > ... I can show examples of this > BS: I would prefer to not even offer that to download based on capability > ... we can do this in PC, or we can do this externally > MC: why do we assume that there will be different policies for different > devices > BS: we do policy per context, in MIDP and native > MC: which are very unsuccessful > BS: some people chage, some people don't > AB: the more we talk about policy, the more I think it's a DAP problem > RB: thank you Art, you'll pay for that > <JereK> +1 > AB: I'm not hearing a lot of support within this WG to do it here > ... there's an opportunity to submit furhter comments when FPWD is out > ... WARP isn't in LC, so in theory it's open to features > emphasis on theory > AB: I recommend ending the discussion now, and discussing when the FPWD is out > MC: in the future, there's only ever going to be one policy > ... for all devices > RB: developers certainly would prefer that > RESOLUTION: Policy gets discussed in DAP > MC: we can add it in a separate spec > BS: we'd like to avoid the overhead of addiotinal spec > Josh: we'd like to avoid the overhead of extra attributes that turn out to be > useless > the WG opens a bet about the future > ADJOURNED > > > 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. > > -- Marcos Caceres http://datadriven.com.au