<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><section><h1>仕様書</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="26" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[26]</anchor-end> <cite xml:lang="en">Permissions</cite> (<time>2016-10-17 15:49:40 +09:00</time>) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://w3c.github.io/permissions/">https://w3c.github.io/permissions/</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="56" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[56]</anchor-end> <cite xml:lang="en">Geolocation API Specification</cite>, <time>2019-11-24 18:38:51 +09:00</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://w3c.github.io/geolocation-api/#security">https://w3c.github.io/geolocation-api/#security</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="35" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[35]</anchor-end> <cite xml:lang="en-US">Push API</cite>, <time>2020-02-04 16:21:34 +09:00</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://w3c.github.io/push-api/#dfn-express-permission">https://w3c.github.io/push-api/#dfn-express-permission</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="37" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[37]</anchor-end> <cite xml:lang="en-US">Push API</cite>, <time>2020-02-04 16:21:34 +09:00</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://w3c.github.io/push-api/#security-and-privacy-considerations">https://w3c.github.io/push-api/#security-and-privacy-considerations</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="38" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[38]</anchor-end> <cite xml:lang="en-US">Push API</cite>, <time>2020-02-04 16:21:34 +09:00</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://w3c.github.io/push-api/#dom-pushmanager-subscribe">https://w3c.github.io/push-api/#dom-pushmanager-subscribe</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="45" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[45]</anchor-end> <cite xml:lang="en-US">Push API</cite>, <time>2020-02-04 16:21:34 +09:00</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://w3c.github.io/push-api/#dom-pushmanager-permissionstate">https://w3c.github.io/push-api/#dom-pushmanager-permissionstate</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="41" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[41]</anchor-end> <cite xml:lang="en-US">Push API</cite>, <time>2020-02-04 16:21:34 +09:00</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://w3c.github.io/push-api/#pushsubscriptionoptionsinit-dictionary">https://w3c.github.io/push-api/#pushsubscriptionoptionsinit-dictionary</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="42" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[42]</anchor-end> <cite xml:lang="en-US">Push API</cite>, <time>2020-02-04 16:21:34 +09:00</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://w3c.github.io/push-api/#pushpermissionstate-enumeration">https://w3c.github.io/push-api/#pushpermissionstate-enumeration</anchor-external></li></ul></refs></section><section><h1>Geolocation API</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="60" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[60]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者エージェント</anchor>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プライバシー</anchor>を守るための仕組みを用意しなければ<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません</MUST>。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者エージェント</anchor>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">許可<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">Permission</title></anchor>の表明なくして<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">位置情報</anchor>を提供しては<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません</MUST>。 
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="56" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;56</anchor-internal></src></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="57" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[57]</anchor-end> 後段、なぜか<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">禁止</MUST>と<SHOULD xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">推奨</SHOULD>の2回同じような規定があります。
<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">禁止</MUST>の方が強いです。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="61" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[61]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者エージェント</anchor>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>が予め設定している場合を除き、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者インターフェイス</anchor>を通じて<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">許可<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">Permission</title></anchor>を得なければ<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません</MUST>。
当該<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">許可<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">Permission</title></anchor>取得<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者インターフェイス</anchor>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書</anchor>の <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">文書の番地</title></f> の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ホスト<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">URL host</title></f>を含まなければ<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません</MUST>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="56" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;56</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="62" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[62]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者インターフェイス</anchor>を通じた<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">許可<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">Permission</title></anchor>であって<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">現在閲覧セッション</anchor>を超えて保持されるものは、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">取り消せ<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">revoke</title></anchor>なければ<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません</MUST>。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者エージェント</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">取消<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">revoke</title></anchor>を尊重しなければ<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません</MUST>。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="56" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;56</anchor-internal></src></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="58" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[58]</anchor-end> 
例えば集中管理下にある端末で、
特定の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">起源</anchor>による<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">位置情報</anchor>取得を管理者が一括して<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">許可<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">Permission</title></anchor>しているようなとき、
直接の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>が個別に承認、不承認を変更できない仕組みがあり得ると思われます。</comment-p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[59]</anchor-end> 仕様書は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者エージェント</anchor>による<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者インターフェイス</anchor>の違いの例として、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>なら<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者インターフェイス</anchor>を表示するであろうところ、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">VoIP</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">電話</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">緊急通報</anchor>時に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者インターフェイス</anchor>を提示しなくても<MAY xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">構わない</MAY>のだと書いています。
<src><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="56" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;56</anchor-internal></src>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">VoIP</anchor> 電話機能の実装に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Geolocation API</anchor> が使われた事例が実在するのかは謎です。
そもそも <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>以外の実装まで想定して一般化する必要性が謎です。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="63" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[63]</anchor-end> 
<code>getCurrentPosition</code>
と
<code>watchPosition</code>
から呼び出されます。</p></section><section><h1>Push API</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="36" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[36]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Push API</anchor>
における
<dfn>express permission</dfn>
とは、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>による動作であって、
例えば<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者インターフェイス</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プラットフォーム</anchor>機能を通じて、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webアプリケーション</anchor>が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Push API</anchor>
を利用することを承認するものをいいます。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="35" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;35</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="39" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[39]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者エージェント</anchor>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>が
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">express permission</anchor>
することなく <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Push API</anchor>
の機能を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webアプリケーション</anchor>に提供しては<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません</MUST> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="37" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;37</anchor-internal></src>。
<code>subscribe</code>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メソッド</anchor>では、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者インターフェイス</anchor>で <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">permission</anchor>
に同意を得るか、
以前の同意が有効でなければ<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません</MUST> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="37" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;37</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="38" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;38</anchor-internal></src>。
同意済みかの判定には<var>オプション群</var>
(<code>PushSubscriptionOptionsInit</code>)
を考慮<MAY xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">できます</MAY>
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="37" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;37</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="41" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;41</anchor-internal></src>。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者インターフェイス</anchor>を提示しなければならない場合で、
<code>subscribe</code>
が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サービスワーカー</anchor>から呼び出された場合には、
拒否とみなさなければなりません <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="38" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;38</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="55" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[55]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Push API</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">permission</anchor>
は持続させる、つまり一旦許可されれば次の <code>subscribe</code>
でも許可されているとみなすことができます。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="45" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;45</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="40" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[40]</anchor-end> 
現在の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">閲覧セッション</anchor>を超えて有効な <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">permission</anchor>
は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">失効</anchor>可能でなければ<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません</MUST>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="37" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;37</anchor-internal></src>
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>プッシュ購読</anchor> </sw-see></p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="44" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[44]</anchor-end> <code>PushManager</code>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">インターフェイス</anchor>の
<dfn><code>permissionState</code></dfn>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メソッド</anchor>は、
次のようにしなければなりません。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="45" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;45</anchor-internal></src></p><figure class="steps"><ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="46" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[46]</anchor-end> <var>約束</var>を、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">新しい約束</anchor>に設定します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="47" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[47]</anchor-end> <var>約束</var>を返します。</li></ol></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="48" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[48]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">非同期的</anchor>に、次のようにしなければ<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません</MUST>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="45" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;45</anchor-internal></src></p><figure class="steps"><ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="49" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[49]</anchor-end> <var>状態</var>を、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Push API</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">permission</anchor> の状態に設定します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="50" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[50]</anchor-end> <var>状態</var>がエラーの場合、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="51" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[51]</anchor-end> <var>約束</var>を、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">拒絶</anchor>します。</li></ol></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="52" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[52]</anchor-end> それ以外の場合、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="53" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[53]</anchor-end> <var>約束</var>を、 <var>状態</var> (<code>PushPermissionState</code>) で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">解決</anchor>します。</li></ol></li></ol></figure><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="54" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[54]</anchor-end> このメソッドは現在の状態をたずねるだけにも関わらず、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">非同期的</anchor>な処理になっており、仕様書では要求が云々という記述もあります。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">permission</anchor> の取得に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">fetch</anchor> が必要な場合や、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プラットフォーム</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">permission</anchor> の確認に時間がかかることも想定しているのでしょうか。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[43]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">列挙型</anchor>
<dfn><code>PushPermissionState</code></dfn>
は、
次のいずれかの値です。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="42" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;42</anchor-internal></src></p><ul><li><dfn><code>granted</code></dfn>: <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">permission</anchor> を有します。</li><li><dfn><code>denied</code></dfn>: <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">permission</anchor> を拒否されています。</li><li><dfn><code>prompt</code></dfn>: <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">permission</anchor> をたずねる必要があります。</li></ul></section><section><h1>利用者インターフェイス</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="22" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[22]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webサイト</anchor>によっては、最初の表示の際に承認を要求するので、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>によっては大きく表示されてとても邪魔です。</p><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="23" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[23]</anchor-end> いくつかの読み物系のサイトは表示したときに<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">通知</anchor>権限を要求してきます。
たまたま開いただけでどんな記事のあるサイトか知らないうちから<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">通知</anchor>の承認を求めるのは、
ほとんど <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">spam</anchor> のようなものです。</p></example><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="24" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[24]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Chrome</anchor> では<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">承認</anchor>のポップアップで<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">許可</anchor>ボタンに<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォーカス</anchor>が当たるので、
うっかり <kbd>Enter</kbd> を連打していると意図せず承認してしまうことがあり、
問題のあるインターフェイスです。 <time>2016-09-28T06:26:57.500Z</time></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="25" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[25]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">triggered by user activation</anchor> でない限り、
承認の要求を無視するか、目立たない表示にとどめておくべきだと思われます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="34" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[34]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Chrome</anchor> の確認ポップアップはちょうど<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ブックマーク</anchor>バーに重なるので、
いちいち消さないと下が押せなくてうざい。
<time>2018-04-21T04:24:18.400Z</time></p></section><section><h1>歴史</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <cite xml:lang="en">Proposal for a Permissions API</cite>
( (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Mounir Lamouri</anchor> 著, <time>2014-09-02 22:51:38 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://lists.w3.org/Archives/Public/public-webapps/2014JulSep/0389.html">http://lists.w3.org/Archives/Public/public-webapps/2014JulSep/0389.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> <cite>Permissions API - Google ドキュメント</cite>
( (<time>2014-09-04 13:00:40 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://docs.google.com/a/chromium.org/document/d/12xnZ_8P6rTpcGxBHiDPPCe7AUyCar-ndg8lh2KwMYkM/preview">https://docs.google.com/a/chromium.org/document/d/12xnZ_8P6rTpcGxBHiDPPCe7AUyCar-ndg8lh2KwMYkM/preview</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> <cite xml:lang="en">Re: Rechartering: Permissions API</cite>
( (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Mounir Lamouri</anchor> 著, <time>2014-11-13 21:16:08 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://lists.w3.org/Archives/Public/public-webappsec/2014Nov/0238.html">http://lists.w3.org/Archives/Public/public-webappsec/2014Nov/0238.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <cite xml:lang="en">The Permissions API</cite>
( (<time>2014-11-13 03:39:41 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://w3c.github.io/permissions/">https://w3c.github.io/permissions/</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> <cite xml:lang="en">The Permissions API</cite>
( (<time>2015-04-07 23:47:53 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.w3.org/TR/2015/WD-permissions-20150407/">http://www.w3.org/TR/2015/WD-permissions-20150407/</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> <cite xml:lang="en">dontcallmedom/web-permissions-req</cite>
( (<time>2014-08-13 09:56:34 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/dontcallmedom/web-permissions-req/">https://github.com/dontcallmedom/web-permissions-req/</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> <cite xml:lang="en">Re: Permissions API vs local APIs</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Jonas Sicking</anchor> 著, <time>2015-05-06 06:54:43 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://lists.w3.org/Archives/Public/public-webappsec/2015May/0010.html">https://lists.w3.org/Archives/Public/public-webappsec/2015May/0010.html</anchor-external></p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> <cite xml:lang="en">Notifications meetup outcome</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Anne van Kesteren</anchor> 著, <time>2012-05-01 06:03:37 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://lists.w3.org/Archives/Public/public-web-notification/2012Apr/0018.html">https://lists.w3.org/Archives/Public/public-web-notification/2012Apr/0018.html</anchor-external></figcaption><blockquote><p>We discussed the remaining two issues with the specification:</p><p>* Given that the DAP WG is no longer working on the permissions  </p><p>specification we will go with the proposal from Apple to expose the  </p><p>permission model as static members of the Notification object.</p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> <cite xml:lang="en">Permissions for Device API Access</cite>
( (<time>2015-07-13 14:01:13 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.w3.org/TR/2015/NOTE-api-perms-20150714/">http://www.w3.org/TR/2015/NOTE-api-perms-20150714/</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> <cite>Permissions for Device API Access</cite>
(<time>2010-09-30 21:08:41 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.w3.org/TR/2010/WD-api-perms-20101005/">http://www.w3.org/TR/2010/WD-api-perms-20101005/</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> <cite xml:lang="en">Permissions for Device API Access</cite>
(<time>2015-06-19 01:25:19 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://dev.w3.org/2009/dap/api-perms/">http://dev.w3.org/2009/dap/api-perms/</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> <cite xml:lang="en">Runtime and Security Model for Web Applications</cite>
(<time>2015-08-04 19:31:42 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.w3.org/TR/2015/NOTE-runtime-20150806/#permissions">http://www.w3.org/TR/2015/NOTE-runtime-20150806/#permissions</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> <cite xml:lang="en">The Permissions API</cite>
(<time>2015-08-26 19:01:12 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://w3c.github.io/permissions/">https://w3c.github.io/permissions/</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> <cite xml:lang="en">Reuse PermissionState from the Permissions API · whatwg/storage@a5ca15e</cite>
(<time>2016-04-01 19:35:33 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/storage/commit/a5ca15e4322a9ef97026bfdd52e77fcf3dd9ebfa">https://github.com/whatwg/storage/commit/a5ca15e4322a9ef97026bfdd52e77fcf3dd9ebfa</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</anchor-end> <cite xml:lang="en">Rely on the Permissions API before it is ready · whatwg/storage@ed1e326</cite>
(<time>2016-04-02 14:31:12 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/storage/commit/ed1e326951ea3a012477a4fb45471186bc72839b">https://github.com/whatwg/storage/commit/ed1e326951ea3a012477a4fb45471186bc72839b</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[16]</anchor-end> <cite xml:lang="en">1165263 – Use origin for nsIPermissionManager</cite>
( (<time>2016-06-10 18:05:33 +09:00</time>))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://bugzilla.mozilla.org/show_bug.cgi?id=1165263">https://bugzilla.mozilla.org/show_bug.cgi?id=1165263</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[17]</anchor-end> <cite xml:lang="en">Re: VC meeting to discuss Permissions spec</cite>
( (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Anne van Kesteren</anchor>著, <time>2016-06-09 18:35:56 +09:00</time>))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://lists.w3.org/Archives/Public/public-webappsec/2016Jun/0036.html">https://lists.w3.org/Archives/Public/public-webappsec/2016Jun/0036.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[18]</anchor-end> <cite xml:lang="en">Add note about permissions</cite>
( (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">andrey-logvinov</anchor>著, <time>2016-06-20 19:27:46 +09:00</time>))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/w3c/wake-lock/commit/440add20cd09d2c7a519ef9f77ccf9af707eda75">https://github.com/w3c/wake-lock/commit/440add20cd09d2c7a519ef9f77ccf9af707eda75</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="19" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[19]</anchor-end> <cite xml:lang="en">Acknowledge that the permission prompt or heuristic might not result …</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annevk</anchor>著, <time>2016-06-24 17:10:59 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/storage/commit/16cf7db48fec4425ac8a13b10a5bba10edf925eb">https://github.com/whatwg/storage/commit/16cf7db48fec4425ac8a13b10a5bba10edf925eb</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[20]</anchor-end> <cite xml:lang="en">Explain the intent behind the persistent permission</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annevk</anchor>著, <time>2016-06-25 16:29:28 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/storage/commit/e1f556d4c62b7cb619048f853f6dd45bcf11bfb2">https://github.com/whatwg/storage/commit/e1f556d4c62b7cb619048f853f6dd45bcf11bfb2</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[21]</anchor-end> <cite xml:lang="en">Permissions store</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Anne van Kesteren</anchor>著, <time>2016-08-09 18:26:49 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://lists.w3.org/Archives/Public/public-webappsec/2016Aug/0002.html">https://lists.w3.org/Archives/Public/public-webappsec/2016Aug/0002.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="27" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[27]</anchor-end> <cite xml:lang="en">Requesting Permissions</cite>
(<time>2017-09-22 03:24:48 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://jyasskin.github.io/permissions-request/">https://jyasskin.github.io/permissions-request/</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="28" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[28]</anchor-end> <cite xml:lang="en">Permissions</cite>
(<time>2017-09-26 05:20:09 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.w3.org/TR/2017/WD-permissions-20170925/">https://www.w3.org/TR/2017/WD-permissions-20170925/</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="29" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[29]</anchor-end> <cite xml:lang="en">Update permission algorithm to link into Permission spec.</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">garykac</anchor>著, <time>2017-10-24 08:01:03 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/w3c/clipboard-apis/commit/f3cf40df596ac8d9964b723187f9d801bd818538">https://github.com/w3c/clipboard-apis/commit/f3cf40df596ac8d9964b723187f9d801bd818538</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="30" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[30]</anchor-end> <cite xml:lang="en">New in Chrome 63  |  Web  |  Google Developers</cite>
(<time>2017-12-08 00:12:30 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://developers.google.com/web/updates/2017/12/nic63?utm_source=feed&amp;utm_medium=feed&amp;utm_campaign">https://developers.google.com/web/updates/2017/12/nic63?utm_source=feed&amp;utm_medium=feed&amp;utm_campaign</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[31]</anchor-end> <cite>ビジネスパーソンに送るニュース情報サイト ビジネスジャーナル/Business Journal</cite> (<time>2018-01-12 15:30:43 +09:00</time>) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://biz-journal.jp/">http://biz-journal.jp/</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="32" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[32]</anchor-end> このサイト、ページ読み込み時の規制を回避する目的なのか、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Chrome</anchor> の通知許可ダイアログに見せかけたものを <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">viewport</anchor>
内に表示するようです。まるで<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フィッシングサイト</anchor>ですね。
<time>2018-01-12T06:32:06.100Z</time></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="33" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[33]</anchor-end> <cite xml:lang="ja">はぜさんのツイート: &quot;物件ファンさん @bukkenfan https://t.co/Iwo9HTJeeG のWebプッシュ通知バー良い. ほとんどのWebサイトが流入と同時にいきなり通知するか聞いてくるし最悪だけど, こういうのが広がってくれるととても嬉しい… https://t.co/otljEwdmIU&quot;</cite>
(<time>2018-03-08 18:08:31 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://twitter.com/haze_it_ac/status/967385442738843648">https://twitter.com/haze_it_ac/status/967385442738843648</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="64" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[64]</anchor-end> <cite xml:lang="en">Chromium Blog: Reducing abusive notification content</cite>
(<time>2020-10-23T06:06:42.000Z</time>, <time>2020-10-24T01:05:49.535Z</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://blog.chromium.org/2020/10/reducing-abusive-notification-content.html">https://blog.chromium.org/2020/10/reducing-abusive-notification-content.html</anchor-external></p></section></body></html>