Overview.src.html
author Anne van Kesteren <annevk@opera.com>
Thu, 07 Jun 2012 08:12:58 +0200
changeset 1 0f513d43130e
child 2 1693fc18292c
permissions -rw-r--r--
alternative Anolis draft with a few text improvements as well as the permission model
1
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
     1
<!doctype html>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
     2
<html lang=en-US>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
     3
<meta charset=utf-8>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
     4
<title>Web Notifications</title>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
     5
<style>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
     6
 pre.idl { border:solid thin; background:#eee; color:#000; padding:0.5em 1em }
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
     7
 pre.idl :link, pre.idl :visited { color:inherit; background:transparent }
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
     8
 pre code { color:inherit; background:transparent }
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
     9
 pre.css { border: solid 0.0625em; background: #FFFFEE; color: black; padding: 0.5em 1em; }
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    10
 .example { margin-left:1em; padding-left:1em; border-left:double; color:#222; background:#fcfcfc }
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    11
 .note { margin-left:2em; font-weight:bold; font-style:italic; color:#008000 }
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    12
 p.note::before { content:"Note: " }
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    13
 .XXX { padding:.5em; border:solid #f00 }
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    14
 p.XXX::before { content:"Issue: " }
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    15
 dl.switch { padding-left:2em }
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    16
 dl.switch > dt { text-indent:-1.5em }
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    17
 dl.switch > dt:before { content:'\21AA'; padding:0 0.5em 0 0; display:inline-block; width:1em; text-align:right; line-height:0.5em }
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    18
 dl.domintro { color: green; margin: 2em 0 2em 2em; padding: 0.5em 1em; border: none; background: #DDFFDD; }
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    19
 dl.domintro dt, dl.domintro dt * { color: black; text-decoration: none; }
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    20
 dl.domintro dd { margin: 0.5em 0 1em 2em; padding: 0; }
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    21
 dl.domintro dd p { margin: 0.5em 0; }
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    22
 dl.domintro:before { display: table; margin: -1em -0.5em -0.5em auto; width: auto; content: 'This box is non-normative. Implementation requirements are given below this box.'; color: red; border: solid 2px; background: white; padding: 0 0.25em; }
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    23
 em.ct { text-transform:lowercase; font-variant:small-caps; font-style:normal }
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    24
 dfn { font-weight:bold; font-style:normal }
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    25
 code { color:orangered }
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    26
 code :link, code :visited { color:inherit }
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    27
 hr:not(.top) { display:block; background:none; border:none; padding:0; margin:2em 0; height:auto }
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    28
 table { border-collapse:collapse; border-style:hidden hidden none hidden }
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    29
 table thead { border-bottom:solid }
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    30
 table tbody th:first-child { border-left:solid }
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    31
 table td, table th { border-left:solid; border-right:solid; border-bottom:solid thin; vertical-align:top; padding:0.2em }
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    32
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    33
 .warning { color: red; background: transparent; font-weight: bolder; font-style: italic; }
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    34
 .warning p:first-child { margin-top: 0; }
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    35
 .warning p:last-child { margin-bottom: 0; }
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    36
 .warning:before { font-style: normal; }
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    37
 p.warning:before { content: '\26A0 Warning! '; }
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    38
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    39
 @media print {
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    40
   [data-anolis-spec]::after { content:"[" attr(data-anolis-spec) "]"; font-size:.6em; vertical-align:super; text-transform:uppercase }
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    41
 }
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    42
</style>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    43
<link rel=stylesheet href="http://www.w3.org/StyleSheets/TR/W3C-[STATUS]">
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    44
<div class=head>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    45
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    46
<!-- logo -->
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    47
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    48
<h1>Web Notifications</h1>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    49
<h2 class="no-num no-toc">[LONGSTATUS] [DATE: 01 Jan 1901]</h2>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    50
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    51
<dl>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    52
 <dt>This Version:
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    53
 <dd class=dontpublish><a href="http://dvcs.w3.org/hg/notifications/raw-file/tip/Overview.html">http://dvcs.w3.org/hg/notifications/raw-file/tip/Overview.html</a>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    54
 <dd class=publish><a href="[VERSION]">[VERSION]</a>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    55
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    56
 <dt class=publish>Latest Version:
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    57
 <dd class=publish><a href="[LATEST]">[LATEST]</a>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    58
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    59
 <dt class=publish>Latest Editors Draft:
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    60
 <dd class=publish><a href="http://dvcs.w3.org/hg/notifications/raw-file/tip/Overview.html">http://dvcs.w3.org/hg/notifications/raw-file/tip/Overview.html</a>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    61
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    62
 <dt class=dontpublish>Participate:</dt>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    63
 <dd class=dontpublish>Send feedback to
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    64
  <a href="mailto:public-web-notification@w3.org">public-web-notification@w3.org</a>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    65
  (<a href=http://lists.w3.org/Archives/Public/public-web-notification/>archives</a>)
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    66
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    67
 <dt>Version History:
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    68
 <dd><a href="http://dvcs.w3.org/hg/notifications/shortlog">http://dvcs.w3.org/hg/notifications/shortlog</a></dd>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    69
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    70
 <dt>Editor:
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    71
 <dd><a href="http://annevankesteren.nl/">Anne van Kesteren</a>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    72
 (<a href="http://www.opera.com/">Opera Software ASA</a>)
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    73
 &lt;<a href="mailto:annevk@annevk.nl">annevk@annevk.nl</a>&gt;</dd>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    74
 <dd>John Gregg (<a href="http://www.google.com/">Google</a>)
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    75
 &lt;<a href="mailto:johnnyg@google.com">johnnyg@google.com</a>>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    76
</dl>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    77
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    78
<!-- copyright -->
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    79
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    80
</div>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    81
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    82
<hr>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    83
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    84
<h2 class="no-num no-toc">Abstract</h2>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    85
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    86
<p>This document defines an API for displaying simple notifications to the user.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    87
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    88
<h2 class="no-num no-toc" id="sotd">Status of this document</h2>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    89
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    90
<p>This document is an Editor's Draft and is not suitable for purposes other than reviewing the specification being developed.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    91
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    92
<h2 class="no-num no-toc">Table of contents</h2>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    93
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    94
<!-- toc -->
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    95
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    96
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    97
<h2>Introduction</h2>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    98
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
    99
<p>This specification provides an API to display notifications to alert
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   100
users outside the context of a web page. It does not specify exactly how a
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   101
user agent should display these notifications; the best presentation depends
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   102
on the device where the user agent is run. When this specification refers
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   103
to displaying notifications on the "desktop", it generally refers to some
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   104
static display area outside the web page, but may take several forms,
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   105
including:
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   106
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   107
<ul>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   108
 <li>A corner of the user's display.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   109
 <li>An area within the chrome of the user agent.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   110
 <li>The "home" screen of a mobile device.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   111
</ul>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   112
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   113
<p>This specification does not define exactly how the user agent should
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   114
display the notification, and the API is designed to be flexible with
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   115
respect to presentation options.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   116
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   117
<p>This specification is designed to be compatible with existing
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   118
notification platforms as much as possible, but also to be
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   119
platform-independent. Since the common platforms do not provide the same
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   120
functionality, this spec will indicate what events are guaranteed and
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   121
which are not. In particular, notifications as specified here only can
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   122
contain text and icon content. In the future, notifications generated from
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   123
web content may wish to contain web content themselves, but that is outside
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   124
the scope of this document.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   125
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   126
<p>In general, the event model for notifications is best-effort; while the
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   127
<code>Notification</code> object offers a <code title>click</code> event,
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   128
applications may enhance their functionality by listening for that event,
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   129
but <em>must not depend on receiving it</em>, in case the underlying
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   130
notification platform does not provide that capability.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   131
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   132
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   133
<h2>Conformance</h2>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   134
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   135
<p>All diagrams, examples, and notes in this specification are
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   136
non-normative, as are all sections explicitly marked non-normative.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   137
Everything else in this specification is normative.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   138
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   139
<p>The key words "MUST", "MUST NOT", "REQUIRED", <!--"SHALL", "SHALL
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   140
NOT",--> "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   141
"OPTIONAL" in the normative parts of this specification are to be
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   142
interpreted as described in RFC2119. For readability, these words do
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   143
not appear in all uppercase letters in this specification.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   144
<span data-anolis-ref>RFC2119</span>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   145
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   146
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   147
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   148
<h3>Security</h3>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   149
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   150
<p>Notifications should only be presented when the user has indicated they
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   151
are desired; without this they could create a negative experience for the
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   152
user.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   153
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   154
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   155
<h2>Terminology</h2>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   156
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   157
<p>Most terminology used in this specification is from DOM and HTML.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   158
<span data-anolis-ref>DOM</span>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   159
<span data-anolis-ref>HTML</span>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   160
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   161
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   162
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   163
<h2>Model</h2>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   164
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   165
<p>A <dfn title=concept-notification>notification</dfn> allows alerting the
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   166
user outside a the context of a web page of an occurrence, such as the
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   167
delivery of email.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   168
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   169
<p>Each <span title=concept-notification>notification</span> has a
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   170
<dfn>title</dfn>. For specification simplicity each
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   171
<span title=concept-notification>notification</span> also has a
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   172
<dfn>title direction</dfn> and <dfn>body direction</dfn>, both of which are
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   173
initially "<code title>auto</code>".
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   174
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   175
<p>Each <span title=concept-notification>notification</span> <em>can</em>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   176
have an associated <dfn>body</dfn>, <dfn>tag</dfn>, and <dfn>icon URL</dfn>.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   177
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   178
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   179
<h3>Permission</h3>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   180
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   181
<p><span title=concept-notification>Notifications</span> can only be
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   182
displayed if the user (or user agent on behalf of the user) has granted
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   183
<dfn>permission</dfn>. The <span>permission</span> to display
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   184
<span title=concept-notification>notifications</span> for a given
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   185
<span data-anolis-spec=origin>origin</span> can be one of three strings:
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   186
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   187
<dl>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   188
 <dt>"<code title>default</code>"
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   189
 <dd><p>This is equivalent to "<code title>denied</code>", but the user has
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   190
 made no explicit choice thus far.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   191
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   192
 <dt>"<code title>denied</code>"
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   193
 <dd><p>This means the user does not want
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   194
 <span title=concept-notification>notifications</span>.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   195
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   196
 <dt>"<code title>granted</code>"
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   197
 <dd><p>This means <span title=concept-notification>notifications</span> can
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   198
 be displayed.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   199
</dl>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   200
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   201
<p class=note>The conceptual "<code title>default</code>", but meaning
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   202
"<code title>granted</code>" does not exist. In that case
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   203
"<code title>granted</code>" is simply returned as there would be no reason
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   204
for the application to ask for <span>permission</span>.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   205
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   206
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   207
<h3>Notification lists</h3>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   208
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   209
<p>The user agent must keep a <dfn>list of pending notifications</dfn> and
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   210
a <dfn>list of active notifications</dfn>.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   211
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   212
<h3>Showing a notification</h3>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   213
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   214
<p>The <dfn>show steps</dfn> for a given <var title>notification</var> are:
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   215
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   216
<ol>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   217
 <li><p>If notifications are not allowed, cancel any ongoing
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   218
 <span data-anolis-spec=html>fetch</span> for
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   219
 <var title>notification</var>'s <span>icon URL</span>,
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   220
 <span data-anolis-spec=html>queue a task</span> to
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   221
 <span data-anolis-spec=dom title=concept-event-fire>fire an event</span> named
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   222
 <code title>error</code> on <var title>notification</var>, and terminate
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   223
 these steps.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   224
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   225
 <li><p>If there is a <span title=concept-notification>notification</span>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   226
 in the <span>list of pending notifications</span> or the
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   227
 <span>list of active notifications</span> whose <span>tag</span> equals
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   228
 <var title>notification</var>'s <span>tag</span>, run the
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   229
 <span>replace steps</span> and terminate these steps.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   230
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   231
 <li><p>If the device allows notifications to be displayed immediately
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   232
 without limitations on the number of concurrent notifications, run
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   233
 the <span>display steps</span> and terminate these steps.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   234
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   235
 <li><p>If the device has limitations on the number of concurrent
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   236
 notifications, either immediately call to a notifications platform which
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   237
 natively supports queueing, or append <var title>notification</var> to the
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   238
 <span>list of pending notifications</span>.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   239
</ol>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   240
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   241
<h3>Closing a notification</h3>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   242
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   243
<p>When a <span title=concept-notification>notification</span> is closed,
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   244
either by the underlying notifications platform or by the user, the
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   245
<span>close steps</span> must be run.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   246
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   247
<p>The <span>close steps</span> are:
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   248
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   249
<ol>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   250
 <li><p>If <span title=concept-notification>notification</span> is neither
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   251
 in the <span>list of pending notifications</span> nor in the
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   252
 <span>list of active notifications</span>, terminate these steps.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   253
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   254
 <li><p><span data-anolis-spec=html>Queue a task</span> to remove
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   255
 <span title=concept-notification>notification</span> from either the
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   256
 <span>list of pending notifications</span> or the
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   257
 <span>list of active notifications</span>, and
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   258
 <span data-anolis-spec=dom title=concept-event-fire>fire an event</span>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   259
 named <code title>close</code> on
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   260
 <span title=concept-notification>notification</span>.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   261
</ol>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   262
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   263
<h3>Pending notifications</h3>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   264
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   265
<p>Whenever the <span>list of pending notifications</span> is not empty, the
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   266
user agent must wait and monitor changes in the available notification space
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   267
on the device.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   268
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   269
<p>When the available display space changes on the device such that a new
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   270
notification can be displayed, for example due to a previous notification
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   271
being dismissed, the user agent should run the <span>display steps</span>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   272
for the first <span title=concept-notification>notification</span> in the
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   273
<span>list of pending notifications</span> and then remove it from the
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   274
<span>list of pending notifications</span>.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   275
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   276
<h3>Displaying notifications</h3>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   277
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   278
<p>The <dfn>display steps</dfn> for a given <var title>notification</var>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   279
are:
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   280
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   281
<ol>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   282
 <li><p>If the notification platform supports icons and
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   283
 <var title>notification</var>'s <span>icon URL</span> has not yet been
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   284
 <span data-anolis-spec=html title=fetch>fetched</span>,
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   285
 <span data-anolis-spec=html>fetch</span> it and wait for the resource to be
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   286
 fully downloaded.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   287
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   288
 <li><p>If <span data-anolis-spec=html title=fetch>fetching</span>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   289
 <var title>notification</var>'s <span>icon URL</span> failed for some
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   290
 reason or the image format is not supported,
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   291
 <span data-anolis-spec=html>queue a task</span> to
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   292
 <span data-anolis-spec=dom title=concept-event-fire>fire an event</span>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   293
 named <code title>error</code> on <var title>notification</var> and terminate
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   294
 these steps.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   295
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   296
 <li><p><span data-anolis-spec=html>Queue a task</span> to display
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   297
 <var title>notification</var> on the device (e.g. by calling the
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   298
 appropriate notification platform), append <var title>notification</var> to the
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   299
 <span>list of active notifications</span>, and
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   300
 <span data-anolis-spec=dom title=concept-event-fire>fire an event</span>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   301
 named <code title>show</code> on <var title>notification</var>.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   302
</ol>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   303
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   304
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   305
<h3>Replacing a notification</h3>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   306
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   307
<p>The <dfn>replace steps</dfn> for replacing an <var title>old</var>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   308
<span title=concept-notification>notification</span> with a
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   309
<var title>new</var> one are:
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   310
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   311
<ol>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   312
 <li><p>If the notification platform supports icons and
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   313
 <var title>new</var>'s <span>icon URL</span> has not yet been
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   314
 <span data-anolis-spec=html title=fetch>fetched</span>,
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   315
 <span data-anolis-spec=html>fetch</span> it and wait for the resource to be
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   316
 fully downloaded.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   317
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   318
 <li><p>If <span data-anolis-spec=html title=fetch>fetching</span>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   319
 <var title>new</var>'s <span>icon URL</span> failed for some
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   320
 reason or the image format is not supported,
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   321
 <span data-anolis-spec=html>queue a task</span> to
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   322
 <span data-anolis-spec=dom title=concept-event-fire>fire an event</span>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   323
 named <code title>error</code> on <var title>new</var> and terminate
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   324
 these steps.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   325
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   326
 <li><p>If <var title>old</var> is in the
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   327
 <span>list of pending notifications</span>,
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   328
 <span data-anolis-spec=html>queue a task</span> to replace
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   329
 <var title>old</var> with <var title>new</var>, in the same position, in
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   330
 the <span>list of pending notifications</span>, and
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   331
 <span data-anolis-spec=dom title=concept-event-fire>fire an event</span>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   332
 named <code title>close</code> on <var title>old</var>.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   333
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   334
 <li>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   335
  <p>Otherwise,
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   336
  <span data-anolis-spec=html>queue a task</span> to replace
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   337
  <var title>old</var> with <var title>new</var>, in the same position, in
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   338
  the <span>list of active notifications</span>,
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   339
  <span data-anolis-spec=dom title=concept-event-fire>fire an event</span>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   340
  named <code title>close</code> on <var title>old</var>, and
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   341
  <span data-anolis-spec=dom title=concept-event-fire>fire an event</span>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   342
  named <code title>show</code> on <var title>new</var>.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   343
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   344
  <p>If the notification platform does not support replacement this
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   345
  requirement may be addressed by removal and addition instead.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   346
</ol>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   347
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   348
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   349
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   350
<h2>API</h2>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   351
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   352
<p>A <span title=concept-notification>notification</span> is represented by
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   353
a <code>Notification</code> object and can be created by its
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   354
<span title=dom-Notification>constructor</span>.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   355
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   356
<pre class="idl">[<span title=dom-Notification>Constructor</span>(DOMString <var title>title</var>, optional <span>NotificationOptions</span> <var title>options</var>)]
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   357
interface <dfn>Notification</dfn> : <span data-anolis-spec=dom>EventTarget</span> {
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   358
  static readonly attribute <span>NotificationPermission</span> <span title=dom-Notification-permission>permission</span>;
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   359
  static void <span title=dom-Notification-requestPermission>requestPermission</span>(<span>NotificationPermissionCallback</span> <var title>callback</var>);
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   360
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   361
  [TreatNonCallableAsNull] attribute <span data-anolis-spec=html>Function</span>? <span title=handler-onclick>onclick</span>;
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   362
  [TreatNonCallableAsNull] attribute <span data-anolis-spec=html>Function</span>? <span title=handler-onshow>onshow</span>;
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   363
  [TreatNonCallableAsNull] attribute <span data-anolis-spec=html>Function</span>? <span title=handler-onerror>onerror</span>;
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   364
  [TreatNonCallableAsNull] attribute <span data-anolis-spec=html>Function</span>? <span title=handler-onclose>onclose</span>;
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   365
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   366
  void <span title=dom-Notification-close>close</span>();
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   367
};
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   368
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   369
dictionary <dfn>NotificationOptions</dfn> {
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   370
  <span>NotificationDirection</span> titleDir;
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   371
  DOMString body;
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   372
  <span>NotificationDirection</span> bodyDir;
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   373
  DOMString tag;
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   374
  DOMString iconUrl;
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   375
};
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   376
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   377
enum <dfn>NotificationPermission</dfn> {
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   378
  "default",
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   379
  "denied",
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   380
  "granted"
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   381
};
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   382
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   383
callback <dfn>NotificationPermissionCallback</dfn> = void (<span>NotificationPermission</span> <var title>permission</var>);
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   384
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   385
enum <dfn>NotificationDirection</dfn> {
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   386
  "auto",
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   387
  "ltr",
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   388
  "rtl"
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   389
};</pre>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   390
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   391
<p>The
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   392
<dfn title=dom-Notification><code>Notification(<var title>title</var>, <var title>options</var>)</code></dfn>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   393
constructor must run these steps:
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   394
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   395
<ol>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   396
 <li><p>Let <var title>notification</var> be a new
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   397
 <span title=concept-notification>notification</span> represented by a
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   398
 <code>Notification</code> object.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   399
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   400
 <li><p>Set <var title>notification</var>'s <span>title</span> to
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   401
 <var title>title</var>,
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   402
 <span data-anolis-spec=webidl title="convert a DOMString to a sequence of Unicode characters">converted to Unicode</span>.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   403
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   404
 <li><p>If <var title>options</var> is not omitted and its
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   405
 <code title>titleDir</code> member is not null, set
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   406
 <var title>notification</var>'s <span>title direction</span> to
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   407
 <code title>titleDir</code>.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   408
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   409
 <li><p>If <var title>options</var> is not omitted and its
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   410
 <code title>body</code> is not null, set <var title>notification</var>'s
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   411
 <span>body</span> to <code title>body</code>,
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   412
 <span data-anolis-spec=webidl title="convert a DOMString to a sequence of Unicode characters">converted to Unicode</span>.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   413
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   414
 <li><p>If <var title>options</var> is not omitted and its
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   415
 <code title>bodyDir</code> member is not null, set
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   416
 <var title>notification</var>'s <span>body direction</span> to
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   417
 <code title>bodyDir</code>.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   418
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   419
 <li><p>If <var title>options</var> is not omitted and its
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   420
 <code title>tag</code> is not null, set <var title>notification</var>'s
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   421
 <span>tag</span> to <code title>tag</code>.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   422
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   423
 <li><p>If <var title>options</var> is not omitted and its
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   424
 <code title>iconUrl</code> is not null, set <var title>notification</var>'s
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   425
 <span>icon URL</span> to <code title>iconUrl</code>.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   426
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   427
 <li><p>Return <var title>notification</var>, but continue running these
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   428
 steps asynchronouusly.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   429
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   430
 <li><p>If the notification platform supports icons, the user agent may
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   431
 start <span data-anolis-spec=html title=fetch>fetching</span>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   432
 <var title>notification</var>'s <span>icon URL</span> at this point.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   433
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   434
 <li><p>Run the <span>show steps</span> for <var title>notification</var>.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   435
</ol>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   436
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   437
<p>The static
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   438
<dfn title=dom-Notification-permission><code>permission</code></dfn>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   439
attribute must return <span>permission</span>.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   440
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   441
<p>The static
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   442
<dfn title=dom-Notification-requestPermission><code>requestPermission(<var title>callback</var>)</code></dfn>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   443
method must run these steps:
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   444
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   445
<ol>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   446
 <li><p>Return, but continue running these steps asynchronously.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   447
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   448
 <li><p>Let <var title>permission</var> be <span>permission</span>.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   449
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   450
 <li><p>If <var title>permission</var> is "<code title>default</code>",
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   451
 ask the user whether showing notifications for the current
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   452
 <span data-anolis-spec=origin>origin</span> is acceptable. If it is, set
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   453
 <var title>permission</var> to "<code title>granted</code>", or
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   454
 "<code title>denied</code>" otherwise.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   455
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   456
 <li><p><span data-anolis-spec=html>Queue a task</span> to set
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   457
 <code title=dom-Notification-permission>permission</code> to
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   458
 <var title>permission</var> and invoke <var title>callback</var> with
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   459
 <var title>permission</var> as single argument.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   460
</ol>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   461
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   462
<p>The following are the <span data-anolis-spec=html>event handlers</span>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   463
(and their corresponding
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   464
<span data-anolis-spec=html title="event handler event type">event handler event types</span>)
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   465
that must be supported as attributes by the <code>Notification</code> object.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   466
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   467
<table>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   468
 <thead>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   469
  <tr>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   470
   <th><span data-anolis-spec=html title="event handlers">event handler</span>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   471
   <th><span data-anolis-spec=html>event handler event type</span>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   472
 <tbody>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   473
  <tr>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   474
   <td><dfn title=handler-onclick><code>onclick</code></dfn>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   475
   <td><code title=event-click>click</code>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   476
  <tr>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   477
   <td><dfn title=handler-onshow><code>onshow</code></dfn>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   478
   <td><code title=event-show>show</code>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   479
  <tr>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   480
   <td><dfn title=handler-onerror><code>onerror</code></dfn>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   481
   <td><code title=event-error>error</code>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   482
  <tr>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   483
   <td><dfn title=handler-onclose><code>onclose</code></dfn>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   484
   <td><code title=event-close>close</code>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   485
</table>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   486
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   487
<p>The <dfn title=dom-Notification-close><code>close()</code></dfn> method
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   488
must run the <span>close steps</span> for the
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   489
<span title=concept-notification>notification</span>.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   490
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   491
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   492
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   493
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   494
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   495
<h2>Rendering</h2>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   496
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   497
<p class=XXX>bidi
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   498
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   499
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   500
<h2>Examples</h2>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   501
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   502
<h3>Using events</h3>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   503
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   504
<p>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   505
	Notification objects dispatch events during their lifecycle, which authors can use
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   506
	to generate desired behaviors.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   507
      </p>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   508
      <p>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   509
	The <code>show</code> event occurs when the notification is shown to the user --
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   510
	this may be at some time after the notification is created in the case
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   511
	of limited display space and a queue.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   512
      </p>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   513
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   514
      <p>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   515
	In the following example, this event is used to guarantee that regardless of when
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   516
	the notification is shown, it is displayed for only 15 seconds.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   517
      </p>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   518
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   519
<pre class="example">new Notification("New Email Received",
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   520
                 { iconUrl: "mail.png",
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   521
                   onshow: function() { setTimeout(notification.close(), 15000); }
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   522
                 });</pre>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   523
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   524
<p>The <code>close</code> events occurs when the notification is dismissed by the user.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   525
	Authors may use this event to perform actions when notifications are acknowledged.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   526
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   527
<p>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   528
	In the following example, when a meeting reminder notification is acknowledged, the
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   529
	application suppresses other forms of reminders.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   530
      </p>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   531
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   532
<pre class="example">new Notification("Meeting about to begin",
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   533
                 { iconUrl: "calendar.gif",
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   534
                   body: "Room 101",
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   535
                   onclose: function() { cancelReminders(event); }
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   536
                 });</pre>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   537
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   538
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   539
<h3 id="tags-example">Using the tag attribute for multiple instances</h3>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   540
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   541
<p>Web applications frequently operate concurrently in multiple instances, such as when a
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   542
	user opens a mail application in multiple browser tabs.  Since the desktop is a shared
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   543
	resource, Web Notifications provides a way for these instances to easily coordinate, by
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   544
	using the <code>tag</code> attribute.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   545
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   546
<p>Notifications which represent the same conceptual event can be tagged in the same way,
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   547
	and when both are shown, the user will only receive one notification.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   548
      </p>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   549
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   550
<pre class="example" title="">Instance 1                                   | Instance 2
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   551
                                             |
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   552
// Instance notices there is new mail.       |
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   553
new Notification("New mail from John Doe",   |
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   554
                 { tag: 'message1' });       |
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   555
                                             |
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   556
                                             |  // Slightly later, this instance notices
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   557
                                             |  // there is new mail.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   558
                                             |  new Notification("New mail from John Doe",
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   559
                                             |                   { tag: 'message1' });</pre>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   560
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   561
<p>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   562
	The result of this situation, if the user agent follows the algorithms here, is a <strong>single</strong> notification "New mail from John Doe".
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   563
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   564
<h3>Using the tag attribute for a single instance</h3>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   565
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   566
<p>The tag attribute can also be used by a single instance of an application to keep its
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   567
	notifications as current as possible as state changes.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   568
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   569
<p>For example, if Alice is using a chat application with Bob, and Bob sends multiple
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   570
	messages while Alice is idle, the application may prefer that Alice not see a
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   571
	desktop notification for each message.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   572
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   573
<pre class="example">// Bob says "Hi"
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   574
new Notification("Bob: Hi", { tag: 'chat_Bob' });
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   575
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   576
// Bob says "Are you free this afternoon?"
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   577
new Notification("Bob: Hi / Are you free this afternoon?", { tag: 'chat_Bob' });</pre>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   578
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   579
<p>The result of this situation is a <em>single</em> notification; the second one
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   580
	replaces the first having the same tag.  In a platform that queues notifications
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   581
	(first-in-first-out), using the tag allows the notification to also maintain its
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   582
	position in the queue.  Platforms where the newest notifications are shown first,
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   583
	a similar result could be achieved using the
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   584
	<code title=dom-Notification-close>close()</code> method.
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   585
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   586
<h2 class=no-num>References</h2>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   587
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   588
<div id=anolis-references></div>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   589
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   590
<h2 class=no-num>Acknowledgments</h2>
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   591
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   592
<p>Thanks to
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   593
Alex Russell,
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   594
Doug Turner,
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   595
Drew Wilson,
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   596
Edward O'Connor,
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   597
Ian Hickson,
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   598
James Graham,
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   599
Jon Lee, and
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   600
Jonas Sicking
0f513d43130e alternative Anolis draft with a few text improvements as well as the permission model
Anne van Kesteren <annevk@opera.com>
parents:
diff changeset
   601
for being awesome.