Re: [whatwg] Proposed additions to ClientInformation interface

2009-02-11 Thread Ian Hickson
On Sat, 17 Jan 2009, Mark Finkle wrote:
> On Mon, Jul 21, 2008 at 10:10 PM, Ian Hickson  wrote:
> > On Mon, 7 Jul 2008, Mark Finkle wrote:
> > >
> > > The only reason I can see for such an API is to get the user's 
> > > permission to use features that _may_ be a bit of a security risk to 
> > > normal webapps. Clipboard, dock badging, local file drag-n-drop, 
> > > even offline cache are some examples.
> >
> > Clipboard, drag and drop, and offline caching are all available to all 
> > applications in HTML5, since the APIs are intended to be designed in a 
> > way that doesn't expose the user to risk that requires user 
> > permission.
> 
> Then why would a button be needed to "activate" standalone mode? What is 
> the actual webapp doing differently? Shouldn't the webapp be acting the 
> exact same? Sounds like it's the UA that would act differently.

In "standalone" mode, a Web application can pretend to be a Web browser, 
tricking the user into thinking they are visiting a site they are not in 
fact visiting, and thus executing a remarkably authentic-looking phishing 
attack. That is why it needs an explicit opt-in.


> > Dock badging could be equally made available safely, IMHO. The main 
> > reason I haven't made dock badging available so far is that it doesn't 
> > really make sense for most environments -- in fact as far as I know 
> > only Mac OS X has this feature.
> 
> Great to know. Prism has code that allows  and  elements 
> to be used to add menuitems to the Dock (Trayicon on Windows) menu as 
> well. We could even support something like ... 
> for this too. Ignored by UAs that don't support it.

Yes, this is one of the things I'm interested in exploring once  and 
 (as specified today) are implemented. (Another is introducing a 
command="" attribute to make it possible to define command state once 
and have UI widgets reflect that state automatically.)


> I am suggesting that an explicit "push to make a standalone app" button 
> isn't needed. Any webapp is already able to run standalone. _If_ there 
> is some reason, for security or code privilege, that an explicit action 
> or confirmation is needed on the part of the user, such confirmation 
> should be enforced at the point of execution, when the user attempts to 
> do something that might be dangerous.

It's unclear how that would work. Confirmations in general are known to 
not work, for instance (users click through anything).

-- 
Ian Hickson   U+1047E)\._.,--,'``.fL
http://ln.hixie.ch/   U+263A/,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'


Re: [whatwg] Proposed additions to ClientInformation interface

2009-01-16 Thread Mark Finkle
On Mon, Jul 21, 2008 at 10:10 PM, Ian Hickson  wrote:

On Mon, 7 Jul 2008, Mark Finkle wrote:
> >
> > The only reason I can see for such an API is to get the user's
> > permission to use features that _may_ be a bit of a security risk to
> > normal webapps. Clipboard, dock badging, local file drag-n-drop, even
> > offline cache are some examples.
>
> Clipboard, drag and drop, and offline caching are all available to all
> applications in HTML5, since the APIs are intended to be designed in a way
> that doesn't expose the user to risk that requires user permission.
>

Then why would a button be needed to "activate" standalone mode? What is the
actual webapp doing differently? Shouldn't the webapp be acting the exact
same? Sounds like it's the UA that would act differently.


>
> Dock badging could be equally made available safely, IMHO. The main reason
> I haven't made dock badging available so far is that it doesn't really
> make sense for most environments -- in fact as far as I know only Mac OS X
> has this feature.
>

Great to know. Prism has code that allows  and  elements to
be used to add menuitems to the Dock (Trayicon on Windows) menu as well. We
could even support something like ... for this too.
Ignored by UAs that don't support it.


>
>
> > >  * Sites want this mechanism to be inline so that they can position it
> > >on their page.
> >
> > on the page? not sure it is as trustworthy there.
> >
> > >  * It shouldn't be something that appears in the browser's UI, since
> > >   browsers have basically run out of room.
> >
> > disagree. it will depend in browser UI anyway for the confirm prompt
>
> This isn't something we get to disagree with. When a browser vendor says
> "we would like to offer X and our requirement is Y", where Y in this case
> is "it doesn't appear as a permanent feature of our UI", then that's what
> we have to provide, otherwise they'll just ignore us and do their own
> thing.
>
>
> > >  * It would be better if this mechanism could integrate with the menu/
> > >   command feature in HTML5.
> >
> > why isn't this "feature" skipped and the menu/command used instead (when
> > needed)? when the app tries to use the menu/command the browser can
> > prompt and remember response.
>
> I don't understand what you are suggesting here.
>

I am suggesting that an explicit "push to make a standalone app" button
isn't needed. Any webapp is already able to run standalone. _If_ there is
some reason, for security or code privilege, that an explicit action or
confirmation is needed on the part of the user, such confirmation should be
enforced at the point of execution, when the user attempts to do something
that might be dangerous.


>
>
> > > One possibility for addressing these requirements would be an element
> > > that acts as a link, button, or icon, or some such, and which invokes
> > > user agent features. Something like:
> > >
> > >   
> > >
> > > ...where "type" has a value to provide the page as a standalone Web
> > > app, a value to make the browser perform feed autodetection on the
> > > page and subscribe to the relevant feed, a value to print the page,
> > > etc.
> >
> > overengineered overkill . let's just stick to the real features that
> > webapps need to act more standalone and worry less about in-page badges
>
> I'm not really sure how this resolves the problem of offering the page to
> the user as a "download" for turning it into a standalone application.
>

IMO, it's a problem that doesn't need to be solved. Any webapp (or webpage)
can be turned into a standalone application without any effort on the part
of the webapp (or webpage).


Re: [whatwg] Proposed additions to ClientInformation interface

2009-01-16 Thread Ian Hickson
On Tue, 8 Jul 2008, Maciej Stachowiak wrote:
> 
> I think there are two competing ideas here that are sometimes in 
> tension:
> 
> A) Web applications are just Web pages and should be indistinguishable 
> from any other Web page.
>
> B) Web applications are just applications and should be 
> indistinguishable from any other (e.g. native) application.
> 
> Obviously the Web platform has a long way to go to really achieve B, and 
> it is important to preserve the strengths of the Web in the course of 
> making Web applications give something closer to a native experience 
> (security, accessibility, ubiquitousness, platform-independence, etc).
> 
> The way I think of standalone(*) Web applications is that they should 
> work well in the browser context, but be able to provide progressive 
> enhancement when in standalone mode. For example, native applications 
> have custom icons in the Dock under Mac OS X, but pages in a browser 
> window do not, so we let Web applications have the ability to customize 
> the icon only when running in standalone mode.
> 
> * - When I say "standalone Web application" I am referring to mechanisms 
> like Mozilla Prism, Fluid, and Safari 4's "Save as Web Application" 
> feature.
> 
> I am probably largely preaching to the choir here, but I wanted to give 
> the premises for our thinking.

The above makes sense to me.


> > > In support of this new area of interest, I propose two new additions 
> > > to the ClientInformation interface as follows:
> > > 
> > > First:  "readonly attribute boolean standalone;"
> >
> > I am very concerned about Web authors doing exactly this, and would in 
> > fact strongly like to encourage authors not to do this. Can you give 
> > an example of a use case where there would be a difference?
> 
> We did not initially think there was a need for this, but multiple 
> developer requests changed our mind. In retrospect, however, they all 
> boil down to customizing the UI when the window's toolbar is not present 
> (to use the extra space on small fixed-size screens, or to add visual 
> weight to the top of the window on large screens). And this can already 
> be determined via "toolbar.visible". In fact that would do the right 
> thing even in user agents that always or never show a toolbar, so that 
> is probably the right thing to recommend.
> 
> The other possible use case would be to avoid displaying any "save as 
> Web app" UI, but that is better handled by that feature.
> 
> Brady, what do you think? Would toolbar.visible work ok for this?

I've specced out window.toolbar.visible.


> > Things like changing the look based on what the author knows of the 
> > "standalone mode" of their own browser is very dangerous, as it would 
> > result in things clashing with other browsers' looks and feels.
> 
> Browsers do already report some information about the UI, and it is 
> probably better to reuse that than to invent something new that has a 
> less direct relationship.

Yeah.


> [...]

Do you have any implementation experience with ?

-- 
Ian Hickson   U+1047E)\._.,--,'``.fL
http://ln.hixie.ch/   U+263A/,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'


Re: [whatwg] Proposed additions to ClientInformation interface

2008-07-21 Thread Ian Hickson

Based on discussions around this topic I've drafted a very experimental 
section introducing a  element.

The  element is expected to be styled much like an  element by 
user agents:

   bb:enabled { color: blue; text-decoration: underline; }
   bb:disabled { display: none; }
   bb[type=makeapp]:empty { content: url(makeapp.icon); }

It can be used to create many of the kinds of effects that are currently 
being used for this kind of button. For example, see the "rss", "log out", 
"print", or "e-mail" links in these screen shots from some sites:

   http://damowmow.com/playground/browserbuttons/all.html

By exposing ".supported" and ".disabled" DOM attributes on the element, 
scripts can determine if a feature is enabled or not and adjust the 
rendering accordingly.

Going forward, by making the  element in  have the same 
:enabled/:disabled state as the first command in the , we can even 
make this happen from style.

Example from the spec showing the scripted case:

   
Settings |
 
Help |
Sign out
   
   
var bb = document.getElementById('makeapp');
if (bb.supported && bb.enabled) {
  bb.parentNode.nextSibling.textContent = ' | ';
  bb.textContent = 'Download standalone application';
} else {
  bb.parentNode.removeChild(bb);
}
   

...and the styled case:

   
Settings
Download standalone application
Help
Sign out
   
   
menu li { display: none; }
menu li:enabled { display: inline; }
menu li:not(:first-child)::before { content: ' | '; }
   


The  element is a relatively simple mechanism to implement -- it 
really just works like  in many ways, except when empty it shows a 
default icon (we could even remove that if people don't think that's 
necessary or think it will never be used).

It will also fit well into the  mechanism in future once browsers 
implement that, allowing it to seamlessly drop into toolbars or context 
menus.


Anyway this is just a tentative proposal. If there are aspects of this 
that really don't work then I'm happy to go back to the drawing board and 
see if maybe an API is a better solution after all.


On Mon, 7 Jul 2008, Ian Hickson wrote:
> 
> As I see it, based on discussions and other e-mails, here are the use 
> cases and requirements:
> 
>  * Sites want to offer a way for users to opt into a standalone mode 
>("can we offer a link to download one of these standalone Web apps?").
>Basically, to offer a way to bookmark the page as a standalone app 
>instead of as a bookmark that opens in the browser.
>
>  * Sites want this mechanism to be inline so that they can position it on 
>their page.

Check and check.


>  * It would be better if this mechanism could use user-agent specific 
>iconology instead of site-specific iconology, so that users could learn 
>to look for particular icons, as they have with RSS.

Right now this is supported. If people think we shouldn't do this, it's 
easy to remove. What do people think? Worth it? Should we use an attribute 
to trigger this instead of the contents being empty?


>  * Authors should be able to customise the look, though.

Check.


>  * This mechanism shouldn't be visible in user agents where the feature 
>isn't available.

This is supported in that you can do what the second example above does, 
or you can leave the element empty and rely on the UA default icon.


>  * This mechanism shouldn't be visible when the user has already activated 
>the feature.

You can hide the element using :disabled for this case, but it's not 
automatic (though it will hopefully look disabled, at least).


>  * It would be better if, for the previous two cases, instead of just 
>hiding the feature, it could optionally (if desired by the author)
>be shown but disabled when not relevant.

CSS gives control over this.


>  * This mechanism shouldn't depend on scripts.

It doesn't depend on scripts, though it allows scripts to be used with it.


>  * It shouldn't be something that appears in the browser's UI, since 
>browsers have basically run out of room.
>
>  * It would be better if this mechanism could integrate with the menu/ 
>command feature in HTML5.

Check.


>  * It would be better if this mechanism could be extended to support other 
>similar features. In particular, people currently have links for 
>calling window.print() and for invoking the RSS functionality of the 
>browser, which could be integrated with this.

Right now I haven't supported these but you need to set the type="" 
attribute to invoke the makeapp feature, so there's an obvious extension 
point.



On Tue, 8 Jul 2008, Robert O'Callahan wrote:
> 
> It's an interesting idea. You'd have to remind authors and implementors 
> that the user can easily be tricked into activating this button so 
> standard confirmation UI is still required.

I've put in a warning note.



On Mon, 7 Jul 2008, Aaron Boodman wrote:
> On Fri, Jun 27, 2008 at 2:04 PM, Br

Re: [whatwg] Proposed additions to ClientInformation interface

2008-07-14 Thread Křištof Želechovski
Abuse: use in a manner that does not meet the intended purpose.  Example:
creating a LINK element that does not link to any resource.

HTH

Chris

 

 

-Original Message-
From: Mark Finkle [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, July 08, 2008 7:18 PM
To: Krzysztof Żelechowski
Cc: whatwg@lists.whatwg.org; Ian Hickson; Brady Eidson; [EMAIL PROTECTED]
Subject: Re: [whatwg] Proposed additions to ClientInformation interface

 

On Tue, Jul 8, 2008 at 1:01 PM, Krzysztof Żelechowski
<[EMAIL PROTECTED]> wrote:

Tuesday 08 of July 2008 05:10:46 Mark Finkle napisał(a):

> On Mon, Jul 7, 2008 at 6:04 PM, Ian Hickson <[EMAIL PROTECTED]> wrote:
> > On Fri, 27 Jun 2008, Brady Eidson wrote:

> >  * Sites want to offer a way for users to opt into a standalone mode
> >   ("can we offer a link to download one of these standalone Web apps?").
> >   Basically, to offer a way to bookmark the page as a standalone app
> >   instead of as a bookmark that opens in the browser.
>
> link rel ?

Not really, it would abuse the LINK element.


define abuse
 


> >  * It shouldn't be something that appears in the browser's UI, since
> >   browsers have basically run out of room.
>
> disagree. it will depend in browser UI anyway for the confirm prompt

The prompt would be presented in a modal window, therefore it would not use
chrome space.


I hope no modal windows will be used in the making of this UI. Firefox
currently doesn't use modal UI for permission prompts.



Re: [whatwg] Proposed additions to ClientInformation interface

2008-07-09 Thread Ian Hickson

I'll reply to this in more detail in due course, but I'm still interested 
in the  idea, and would like to discuss that further:

On Tue, 8 Jul 2008, Maciej Stachowiak wrote:
> > 
> > One possibility for addressing these requirements would be an element 
> > that acts as a link, button, or icon, or some such, and which invokes 
> > user agent features. Something like:
> > 
> >   
> > 
> > ...where "type" has a value to provide the page as a standalone Web 
> > app, a value to make the browser perform feed autodetection on the 
> > page and subscribe to the relevant feed, a value to print the page, 
> > etc.
> 
> This is an interesting idea. However, traditionally the Web platform has 
> exposed hooks into UA functionality through APIs rather than custom 
> controls. For example, window.print(), history.back(), 
> history.forward(), location.reload(), window.stop(), window.prompt().

One could equally argue the opposite -- , , 
, there are plenty of completely declarative browser 
mechanisms that are exposed to authors too.


> One could certainly imagine a custom element that can expose these kinds 
> of operations without the need for script, and with automatic 
> enable/disable. However, this would require a lot more complexity than a 
> method, as the element would need to be able to have different style for 
> the enabled and disabled cases (if custom look is done through literal 
> contents of the element, this is awkward), an API to query, and events 
> to hook in both before and after the special action.

Here's a proposal that seems relatively simple:

The syntax would just be an empty element:

   

...with a few attributes, in particular one to specify the kind of 
functionality being exposed (type=""), and one to say whether the element 
should be hidden or disabled if the feature isn't available.

The visual browser would then render this as an inline element, applying 
all of CSS as appropriate, with just a single image 1em high being the 
only content of the element, as if the element was:

   

Styling would then be done something like this:

   browser-button::after {
 content: " Save as standalone application.";
 color: blue;
 text-decoration: underline;
   }

...or:

   browser-button {
 appearance: button;
   }

...or:

   browser-button { border: solid outset; }
   browser-button:active { border: solid inset; }


> I think this may be a good idea, but I am not sure this feature should 
> be the test case for designing it.

Well, that's what people always say. If we only use unimportant features 
to introduce ideas like this, they'll never see the light of day. :-)


> Adding an API does not preclude also supporting a more declarative 
> mechanism in the future.

I'm very worried about adding yet another API that can spawn a dialog.


> And if the new element ends up being just for this one feature, then to 
> my design taste it would seem like overkill to add an HTML element for 
> such a narrow purpose.

There are other things that need addressing too. One, for instance, is 
HTTP logout:

   

It would clear the HTTP credentials for this origin, thus logging the user 
out from an HTTP site. (We'd still need an inline HTTP authentication 
mechanism, maybe something on .)


> To be fair though, for completeness the API mechanism still needs a way 
> to report whether the UA supports a standalone Web app feature (perhaps 
> this can just be indicated by whether the method is present) and also 
> whether the user has already saved this particular page as a Web app (in 
> which case the Web app's UI should not further hector them).

Right, those are other reasons we would benefit from this being 
declarative.

-- 
Ian Hickson   U+1047E)\._.,--,'``.fL
http://ln.hixie.ch/   U+263A/,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'


Re: [whatwg] Proposed additions to ClientInformation interface

2008-07-08 Thread Mark Finkle
On Tue, Jul 8, 2008 at 1:01 PM, Krzysztof Żelechowski <[EMAIL PROTECTED]>
wrote:

> Tuesday 08 of July 2008 05:10:46 Mark Finkle napisał(a):
> > On Mon, Jul 7, 2008 at 6:04 PM, Ian Hickson <[EMAIL PROTECTED]> wrote:
> > > On Fri, 27 Jun 2008, Brady Eidson wrote:
> > >  * Sites want to offer a way for users to opt into a standalone mode
> > >   ("can we offer a link to download one of these standalone Web
> apps?").
> > >   Basically, to offer a way to bookmark the page as a standalone app
> > >   instead of as a bookmark that opens in the browser.
> >
> > link rel ?
>
> Not really, it would abuse the LINK element.
>

define abuse


>
> > >  * It shouldn't be something that appears in the browser's UI, since
> > >   browsers have basically run out of room.
> >
> > disagree. it will depend in browser UI anyway for the confirm prompt
>
> The prompt would be presented in a modal window, therefore it would not use
> chrome space.
>

I hope no modal windows will be used in the making of this UI. Firefox
currently doesn't use modal UI for permission prompts.


Re: [whatwg] Proposed additions to ClientInformation interface

2008-07-08 Thread Krzysztof Żelechowski
Tuesday 08 of July 2008 05:10:46 Mark Finkle napisał(a):
> On Mon, Jul 7, 2008 at 6:04 PM, Ian Hickson <[EMAIL PROTECTED]> wrote:
> > On Fri, 27 Jun 2008, Brady Eidson wrote:
> >  * Sites want to offer a way for users to opt into a standalone mode
> >   ("can we offer a link to download one of these standalone Web apps?").
> >   Basically, to offer a way to bookmark the page as a standalone app
> >   instead of as a bookmark that opens in the browser.
>
> link rel ?

Not really, it would abuse the LINK element.

[snip]

> >  * It shouldn't be something that appears in the browser's UI, since
> >   browsers have basically run out of room.
>
> disagree. it will depend in browser UI anyway for the confirm prompt

The prompt would be presented in a modal window, therefore it would not use 
chrome space.

Chris


Re: [whatwg] Proposed additions to ClientInformation interface

2008-07-08 Thread Krzysztof Żelechowski
Tuesday 08 of July 2008 14:45:23 Maciej Stachowiak napisał(a):
> The way I think of standalone(*) Web applications is that they should  
> work well in the browser context, but be able to provide progressive  
> enhancement when in standalone mode. For example, native applications  
> have custom icons in the Dock under Mac OS X, but pages in a browser  
> window do not, so we let Web applications have the ability to  
> customize the icon only when running in standalone mode.

Pages in a browser window have the favorite icon.

Chris


Re: [whatwg] Proposed additions to ClientInformation interface

2008-07-08 Thread Maciej Stachowiak

On Jul 7, 2008, at 3:04 PM, Ian Hickson wrote:


Actually there are a number of features that cater for this use case
already, like the sizes="" attribute on rel=icon, and one of the  

names. In general, though, the idea is to make these kinds of  
applications
as indistinguishable from other Web pages as possible, for a variety  
of

reasons.


I think there are two competing ideas here that are sometimes in  
tension:


A) Web applications are just Web pages and should be indistinguishable  
from any other Web page.
B) Web applications are just applications and should be  
indistinguishable from any other (e.g. native) application.


Obviously the Web platform has a long way to go to really achieve B,  
and it is important to preserve the strengths of the Web in the course  
of making Web applications give something closer to a native  
experience (security, accessibility, ubiquitousness, platform- 
independence, etc).


The way I think of standalone(*) Web applications is that they should  
work well in the browser context, but be able to provide progressive  
enhancement when in standalone mode. For example, native applications  
have custom icons in the Dock under Mac OS X, but pages in a browser  
window do not, so we let Web applications have the ability to  
customize the icon only when running in standalone mode.


* - When I say "standalone Web application" I am referring to  
mechanisms like Mozilla Prism, Fluid, and Safari 4's "Save as Web  
Application" feature.


I am probably largely preaching to the choir here, but I wanted to  
give the premises for our thinking.


In support of this new area of interest, I propose two new  
additions to

the ClientInformation interface as follows:

First:  "readonly attribute boolean standalone;"

I am very concerned about Web authors doing exactly this, and would in
fact strongly like to encourage authors not to do this. Can you give  
an

example of a use case where there would be a difference?


We did not initially think there was a need for this, but multiple  
developer requests changed our mind. In retrospect, however, they all  
boil down to customizing the UI when the window's toolbar is not  
present (to use the extra space on small fixed-size screens, or to add  
visual weight to the top of the window on large screens). And this can  
already be determined via "toolbar.visible". In fact that would do the  
right thing even in user agents that always or never show a toolbar,  
so that is probably the right thing to recommend.


The other possible use case would be to avoid displaying any "save as  
Web app" UI, but that is better handled by that feature.


Brady, what do you think? Would toolbar.visible work ok for this?



Things like changing the look based on what the author knows of the
"standalone mode" of their own browser is very dangerous, as it would
result in things clashing with other browsers' looks and feels.


Browsers do already report some information about the UI, and it is  
probably better to reuse that than to invent something new that has a  
less direct relationship.




Second:  "void makeStandalone();"

Web applications that have been fully designed to behave as stand  
alone

applications should be able to announce this fact.  Currently web
applications would have to state in their page that they are  
"standalone

aware" and to instruct users on how they might go about creating a
standalone version of the page.  I've seen and heard buzz that web
authors would like a better way.

This is what the makeStandalone() call is about.  The intention  
behind
the call is that the user agent would prompt the user about  
creating a

standalone application from the current page.  Of course user agents
would have full flexibility in how they respond to the call such as
choosing to do nothing, prompting only once for a given domain or  
URL,
or prompting only when the user prefers to be prompted.  I imagine  
most
user agents would tie the workings of this method to a user action,  
much

like popup blocking works currently, so the page could only enact the
prompt when the user clicks on some control.  I just think it's quite
valuable to get the tool out there for web applications to use.

The exact naming of this method call is up for debate, but I think my
point is clear.


I'm not sure a method is the best solution here.

As I see it, based on discussions and other e-mails, here are the use
cases and requirements:

* Sites want to offer a way for users to opt into a standalone mode
  ("can we offer a link to download one of these standalone Web  
apps?").

  Basically, to offer a way to bookmark the page as a standalone app
  instead of as a bookmark that opens in the browser.

* Sites want this mechanism to be inline so that they can position  
it on

  their page.

* It would be better if this mechanism could use user-agent specific
  iconology instead of site-specific iconology, so that users could  
learn

  to look for par

Re: [whatwg] Proposed additions to ClientInformation interface

2008-07-07 Thread Mark Finkle
On Mon, Jul 7, 2008 at 6:04 PM, Ian Hickson <[EMAIL PROTECTED]> wrote:

> On Fri, 27 Jun 2008, Brady Eidson wrote:
> >
> > There is one aspect to this notion of "Web Applications" that is being
> > explored by multiple vendors but hasn't been explicitly addressed in
> > HTML5 quite yet:  the "stand alone web application."
>
> Actually there are a number of features that cater for this use case
> already, like the sizes="" attribute on rel=icon, and one of the 
> names. In general, though, the idea is to make these kinds of applications
> as indistinguishable from other Web pages as possible, for a variety of
> reasons.
>

Agreed, there are more than a few features in HTML5, and some in other
working implementations, that cater to standalone webapps.

> In support of this new area of interest, I propose two new additions to
> > the ClientInformation interface as follows:
> >
> > First:  "readonly attribute boolean standalone;"
> >
> > This is in the same vein as the window.navigator.onLine property which
> > gives authors a great hint on how to change the behavior of their web
> > application based on the existence of a network connection.  The
> > standalone property would give web application developers a powerful
> > hint as to whether or not they are running in a full browser or in a
> > more minimalistic, dedicated user agent. There's a number of things they
> > might customize based on this situation such as look, feel, and
> > available feature set.
>
> I am very concerned about Web authors doing exactly this, and would in
> fact strongly like to encourage authors not to do this. Can you give an
> example of a use case where there would be a difference?
>

IMO, navigator.onLine is a bit less vague than window.standalone with regard
to context. The web author has no idea what feature set impact standalone
really means for different UA.Being a bit more specific in the feature set
support would be better and isn't JS good enough at discovering API
existence?


> > Second:  "void makeStandalone();"
> >
> > Web applications that have been fully designed to behave as stand alone
> > applications should be able to announce this fact.  Currently web
> > applications would have to state in their page that they are "standalone
> > aware" and to instruct users on how they might go about creating a
> > standalone version of the page.  I've seen and heard buzz that web
> > authors would like a better way.
>

IMO, webapps should not have to be "fully" designed to behave standalone to
in fact be run as standalone. Documentation sites are a good example of a
nice standalone webapp that needs no real internal support.


> >
> > This is what the makeStandalone() call is about.  The intention behind
> > the call is that the user agent would prompt the user about creating a
> > standalone application from the current page.  Of course user agents
> > would have full flexibility in how they respond to the call such as
> > choosing to do nothing, prompting only once for a given domain or URL,
> > or prompting only when the user prefers to be prompted.  I imagine most
> > user agents would tie the workings of this method to a user action, much
> > like popup blocking works currently, so the page could only enact the
> > prompt when the user clicks on some control.  I just think it's quite
> > valuable to get the tool out there for web applications to use.
> >
> > The exact naming of this method call is up for debate, but I think my
> > point is clear.
>

The only reason I can see for such an API is to get the user's permission to
use features that _may_ be a bit of a security risk to normal webapps.
Clipboard, dock badging, local file drag-n-drop, even offline cache are some
examples.

Instead of a single API call, why not just ask the user whenever one these
"security risk" features is attempted, and remember the response on a per
site/domain/whatever basis?


> I'm not sure a method is the best solution here.
>
> As I see it, based on discussions and other e-mails, here are the use
> cases and requirements:
>
>  * Sites want to offer a way for users to opt into a standalone mode
>   ("can we offer a link to download one of these standalone Web apps?").
>   Basically, to offer a way to bookmark the page as a standalone app
>   instead of as a bookmark that opens in the browser.
>

link rel ?


>
>  * Sites want this mechanism to be inline so that they can position it on
>   their page.
>

on the page? not sure it is as trustworthy there.


>
>  * It would be better if this mechanism could use user-agent specific
>   iconology instead of site-specific iconology, so that users could learn
>   to look for particular icons, as they have with RSS.
>

which has moved to browser UI


>
>  * Authors should be able to customise the look, though.
>

well, not if it is in the browser UI


>
>  * This mechanism shouldn't be visible in user agents where the feature
>   isn't available.
>

agree


>
>  * This mechanism shouldn't be visi

Re: [whatwg] Proposed additions to ClientInformation interface

2008-07-07 Thread Aaron Boodman
On Fri, Jun 27, 2008 at 2:04 PM, Brady Eidson <[EMAIL PROTECTED]> wrote:
> Second:  "void makeStandalone();"

I think one disadvantage of this approach is that it can only be
called in response to a user action if you want to avoid it being used
to annoy or spam. It's unfortunate to have an API that can only be
called at certain times.

On Mon, Jul 7, 2008 at 3:04 PM, Ian Hickson <[EMAIL PROTECTED]> wrote:
>   

I like this idea. I think it will be fun (in a good way) to come up
with the right mix of a distinctive look for the button/link/whatever
and support for customization.

Perhaps it would have a distinctive icon, but the styling otherwise
(borders, background, font) are up to the author.

- a


Re: [whatwg] Proposed additions to ClientInformation interface

2008-07-07 Thread Robert O'Callahan
On Tue, Jul 8, 2008 at 11:06 AM, Ian Hickson <[EMAIL PROTECTED]> wrote:

> Indeed. (This isn't unique to this proposal; the original idea of an API
> would be even more vulnerable to this, since scripts could just invoke it
> at any time they please.)
>

Of course, but that can be seen as an advantage since it's obvious to
everyone that confirmation UI is needed.

Rob
-- 
"He was pierced for our transgressions, he was crushed for our iniquities;
the punishment that brought us peace was upon him, and by his wounds we are
healed. We all, like sheep, have gone astray, each of us has turned to his
own way; and the LORD has laid on him the iniquity of us all." [Isaiah
53:5-6]


Re: [whatwg] Proposed additions to ClientInformation interface

2008-07-07 Thread Ian Hickson
On Tue, 8 Jul 2008, Robert O'Callahan wrote:
> On Tue, Jul 8, 2008 at 10:04 AM, Ian Hickson <[EMAIL PROTECTED]> wrote:
> >
> > One possibility for addressing these requirements would be an element 
> > that acts as a link, button, or icon, or some such, and which invokes 
> > user agent features. Something like:
> >
> >   
> 
> It's an interesting idea. You'd have to remind authors and implementors 
> that the user can easily be tricked into activating this button so 
> standard confirmation UI is still required.

Indeed. (This isn't unique to this proposal; the original idea of an API 
would be even more vulnerable to this, since scripts could just invoke it 
at any time they please.)

-- 
Ian Hickson   U+1047E)\._.,--,'``.fL
http://ln.hixie.ch/   U+263A/,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'


Re: [whatwg] Proposed additions to ClientInformation interface

2008-07-07 Thread Robert O'Callahan
On Tue, Jul 8, 2008 at 10:04 AM, Ian Hickson <[EMAIL PROTECTED]> wrote:

> One possibility for addressing these requirements would be an element that
> acts as a link, button, or icon, or some such, and which invokes user
> agent features. Something like:
>
>   
>

It's an interesting idea. You'd have to remind authors and implementors that
the user can easily be tricked into activating this button so standard
confirmation UI is still required.

Rob
-- 
"He was pierced for our transgressions, he was crushed for our iniquities;
the punishment that brought us peace was upon him, and by his wounds we are
healed. We all, like sheep, have gone astray, each of us has turned to his
own way; and the LORD has laid on him the iniquity of us all." [Isaiah
53:5-6]


Re: [whatwg] Proposed additions to ClientInformation interface

2008-07-07 Thread Ian Hickson
On Fri, 27 Jun 2008, Brady Eidson wrote:
>
> There is one aspect to this notion of "Web Applications" that is being 
> explored by multiple vendors but hasn't been explicitly addressed in 
> HTML5 quite yet:  the "stand alone web application."

Actually there are a number of features that cater for this use case 
already, like the sizes="" attribute on rel=icon, and one of the  
names. In general, though, the idea is to make these kinds of applications 
as indistinguishable from other Web pages as possible, for a variety of 
reasons.


> In support of this new area of interest, I propose two new additions to 
> the ClientInformation interface as follows:
> 
> First:  "readonly attribute boolean standalone;"
> 
> This is in the same vein as the window.navigator.onLine property which 
> gives authors a great hint on how to change the behavior of their web 
> application based on the existence of a network connection.  The 
> standalone property would give web application developers a powerful 
> hint as to whether or not they are running in a full browser or in a 
> more minimalistic, dedicated user agent. There's a number of things they 
> might customize based on this situation such as look, feel, and 
> available feature set.

I am very concerned about Web authors doing exactly this, and would in 
fact strongly like to encourage authors not to do this. Can you give an 
example of a use case where there would be a difference?

Things like changing the look based on what the author knows of the 
"standalone mode" of their own browser is very dangerous, as it would 
result in things clashing with other browsers' looks and feels.

For example, if browser A hides the toolbar with back/forward buttons in 
the standalone mode [1], and browser B doesn't, and the author uses 
browser A, then he might show a toolbar at the top, since then it would 
look in browser A... but then in browser B it would look bad.

[1] I think this would be dodgy, since back/forward is a well-understood 
feature of the Web now and apps rely on it. Indeed, with pushState() we're 
making it even more useful for web apps.


> Second:  "void makeStandalone();"
> 
> Web applications that have been fully designed to behave as stand alone 
> applications should be able to announce this fact.  Currently web 
> applications would have to state in their page that they are "standalone 
> aware" and to instruct users on how they might go about creating a 
> standalone version of the page.  I've seen and heard buzz that web 
> authors would like a better way.
> 
> This is what the makeStandalone() call is about.  The intention behind 
> the call is that the user agent would prompt the user about creating a 
> standalone application from the current page.  Of course user agents 
> would have full flexibility in how they respond to the call such as 
> choosing to do nothing, prompting only once for a given domain or URL, 
> or prompting only when the user prefers to be prompted.  I imagine most 
> user agents would tie the workings of this method to a user action, much 
> like popup blocking works currently, so the page could only enact the 
> prompt when the user clicks on some control.  I just think it's quite 
> valuable to get the tool out there for web applications to use.
> 
> The exact naming of this method call is up for debate, but I think my 
> point is clear.

I'm not sure a method is the best solution here.

As I see it, based on discussions and other e-mails, here are the use 
cases and requirements:

 * Sites want to offer a way for users to opt into a standalone mode 
   ("can we offer a link to download one of these standalone Web apps?").
   Basically, to offer a way to bookmark the page as a standalone app 
   instead of as a bookmark that opens in the browser.

 * Sites want this mechanism to be inline so that they can position it on 
   their page.

 * It would be better if this mechanism could use user-agent specific 
   iconology instead of site-specific iconology, so that users could learn 
   to look for particular icons, as they have with RSS.

 * Authors should be able to customise the look, though.

 * This mechanism shouldn't be visible in user agents where the feature 
   isn't available.

 * This mechanism shouldn't be visible when the user has already activated 
   the feature.

 * It would be better if, for the previous two cases, instead of just 
   hiding the feature, it could optionally (if desired by the author)
   be shown but disabled when not relevant.

 * This mechanism shouldn't depend on scripts.

 * It shouldn't be something that appears in the browser's UI, since 
   browsers have basically run out of room.

 * It would be better if this mechanism could integrate with the menu/ 
   command feature in HTML5.

 * It would be better if this mechanism could be extended to support other 
   similar features. In particular, people currently have links for 
   calling window.print() and for invoking the RSS functio