trusted event

Event インターフェイス isTrusted 属性 (DOM)

仕様書

意味

[5] isTrustedイベント信用済みイベント (trusted event) といいます >>3

[28] 現在となっては trusted か否かはそれほど有用な概念ではないと考えられています。

[32] Webブラウザー自体の実装の一部を構成する束縛や、 ブラウザー拡張の類は、 利用者の行動によるイベント著者の指示によるイベントの区別が必要なときにこれを使うことができます。

関連

[27] ポップアップ抑制されるかどうか isTrusted で判定できるというデマが流れているようですが、 ポップアップが認められるかの条件は triggered by user activation であり、 isTrusted はそのいくつかある要件の1つでしかありません。

歴史

誕生

[23] 元々、利用者エージェントの機能の一部を XBL として実装する時に、 利用者エージェントイベント著者イベントとを区別する必要があるとして trusted の概念が追加されました。

[29] 一時期の DOM の構想上のアーキテクチャでは、 利用者の入力 (マウスキーボードの操作など) はDOMイベントとなり、 まずは著者のコードによって処理され、 そこで取り消しされなければ既定動作であるところのDOM実装のコードによって処理される、 ということになっていました。著者のコードもDOM実装 (Webブラウザー) のコードも等しくイベントリスナーですが、違ったグループに属していました。 DOM実装イベントリスナーは、 C++ で内部的に実装されている (とみなす) こともあれば、 XBL のように JavaScript で実装されることも考えられました。

[30] この処理モデルでは、著者によるWebブラウザー機能の濫用 (による利用者の混乱) を防ぐため、場合によっては著者の生成したイベントと、 利用者の操作によるイベントとを DOM実装のコードの側で区別する必要が生じます。

[8] 最初 XBL2Event オブジェクト実装するべきインターフェイス EventXBLIDL属性 trusted として規定されました。

[22] trusted から isTrusted に改称されました。

[9] Document Object Model (DOM) Level 3 Events Specification ( ( 版)) <http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html#events-event-type-isTrusted>

[13] Bug 25504 – isTrusted in the events generated by the methods ( ( 版)) <https://www.w3.org/Bugs/Public/show_bug.cgi?id=25504>

[24] Gecko は独自の addEventListener の引数で、 trusted でないイベントも受信するかどうかを選べるようにしていました。

整理

[31] 既定動作ベースの実装モデルはその後否定されることになりました。 trusted の概念の意義も失われ、挙動が曖昧なケースも生じていました。 それらの定義はに整理されました。

[14] Editorial: major cleanup around firing and dispatching events (annevk著, ) <https://github.com/whatwg/html/commit/8ffbd146d4709057e45dd6cfc81e7a70897050c5>

[15] Analyze isTrusted usage · Issue #1912 · whatwg/html () <https://github.com/whatwg/html/issues/1912>

[16] Set some MessageEvent's isTrusted attributes to true (domenic著, ) <https://github.com/whatwg/html/commit/eecea4bf565a442e98c2ec98bf298d082d196282>

[17] Always leave isTrusted as true when firing events (annevk著, ) <https://github.com/whatwg/html/commit/e64078e9dbe871f1316a49c5d16ddacb199d7c1e>

[18] Clarify isTrusted (annevk著, ) <https://github.com/whatwg/dom/commit/7958b2557d50d5224e089b9c4c66f46782b72157>

[25] Fallback to legacy type only when event is trusted (upsuper著, ) <https://github.com/whatwg/dom/commit/9d8e4ed93896c50b1cacfceca6f93c56337686d8>

[26] Set isTrusted for coalesced events (#189) (NavidZ著, ) <https://github.com/w3c/pointerevents/commit/2fafb0ae2cca56f61382ef75f6e2f3a19d595606>