-
Notifications
You must be signed in to change notification settings - Fork 4
/
163.txt
72 lines (55 loc) · 3.94 KB
/
163.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
* 仕様書
[REFS[
- [65] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2015-05-06 10:42:35 +09:00]] 版) <https://html.spec.whatwg.org/#location>
- [68] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2015-05-06 10:42:35 +09:00]] 版) <https://html.spec.whatwg.org/#allowed-to-show-a-popup>
]REFS]
* 意味
[69] [DFN[triggered by user activation]] (旧 [DFN[[[allowed to show a popup]]]])
とは、次のいずれかの条件を満たすことをいいます
[SRC[>>68]]。
[FIG(list)[
- [14] [[タスク]]が[[信頼済み]] [CODE(DOMe)@en[[[click]]]] [[イベント]]の[[活性化動作]]の処理中である
- [15] [[タスク]]が[[信頼済み]] [CODE(DOMe)@en[[[click]]]], [CODE(DOMe)@en[[[change]]]],
[CODE(DOMe)@en[[[dblclick]]]], [CODE(DOMe)@en[[[mouseup]]]], [CODE(DOMe)@en[[[reset]]]],
[CODE(DOMe)@en[[[submit]]]] [[イベント]]の[[イベントリスナー]]の処理中である
- [16] [[タスク]]が [[triggered by user activation]] な[[タスク]]から[[タスクキューに追加]]されたものである、
ただし最初の[[タスク]]から[[利用者エージェント]]定義の[[時間]]が経過していない
]FIG]
;; [17] 時間制限は、例えば[[クリック]]から数秒後ならともかく、数時間後は相応しくない
[SRC[>>68]] ことによります。
[64] [CODE(DOMi)@en[[[Location]]]] では、次のいずれかの条件を満たすと分岐します [SRC[>>65]]。 ([[タスク]]以外の判定条件もあります。 [CODE(DOMi)@en[[[Location]]]] 参照。)
[FIG(list)[
- [66] [[タスク]]が[[信頼済み]] [CODE(DOMe)@en[[[click]]]] [[イベント]]の[[活性化動作]]の処理中である
- [67] [[タスク]]が[[信頼済み]] [CODE(DOMe)@en[[[click]]]] [[イベント]]の[[イベントリスナー]]の処理中である
]FIG]
[18] [[タスク]]は、自身がこの条件を満たしているかどうかの情報を保持しておく必要があります。
また[[イベントオブジェクト]] (の持つ情報の一部または全部) も必要かもしれません。
例えば [CODE(JS)@en[[[window.open]]]] は、[[プラットフォームの慣習]]により、 [KBD[[[Ctrl]]]]
押下時に新しい[[閲覧文脈]]を常に開く、といったような動作にできます。
[25] 実際には [[triggered by user activation]] の実装 (またはその呼び出し元の実装)
は更に厳しく制限しているかもしれません。
[EG[
[27] 例えば同じ[[タスク]]内で多数の新しい[[最上位閲覧文脈]]を作成するのは[[ブラクラ]]であり、
拒否するべきと考えられます。
]EG]
[26] 更に、[[タスク]]を超えた制約もあるかもしれません。
[EG[
[28] 例えば [CODE(JS)@en[[[setTimeout]]]] を使って短時間に別の[[タスク]]で多くの新しい[[最上位閲覧文脈]]を作成するのは[[ブラクラ]]であり、
拒否するべきと考えられます。
]EG]
* 文脈
[19] [[triggered by user activation]] は、次の場面で使われます。
[FIG(list)[
- [20] 新しい[[最上位閲覧文脈]]を開くかどうかの判断 ([[閲覧文脈名から閲覧文脈を選ぶ規則]]など)
- [21] [CODE(HTMLa)@en[[[download]]]] や [[navigate]] で[[ダウンロード]]するべきかの判断
- [24] [[navigate]] で[[ヘルパーアプリケーション]]を起動するべきかの判断
- [22] [CODE(DOMm)@en[[[requestAutocomplete]]]] 時
- [23] [CODE(HTML)@en[[[<input type=file>]]]] [[ダイアログ]]を開くかどうかの判断
]FIG]
* 歴史
[1] [CITE@en[Editorial: "allowed to show a popup" → "triggered by user activation"]]
( ([[domenic]]著, [TIME[2016-06-01 17:23:12 +09:00]]))
<https://github.com/whatwg/html/commit/797f412eb78fd88bd5d0a1c098d17fbf1736c188>
[2] [CITE@en[Existing intervention: user gesture required for sensitive operations · Issue #12 · WICG/interventions]]
( ([TIME[2016-06-02 18:08:21 +09:00]]))
<https://github.com/WICG/interventions/issues/12>