Bug-org 930843 NS_UI_ACTIVATE should be dispatched as trusted event even if it's caused by untrusted event
初回投稿日時: 2015年08月30日09時51分19秒
カテゴリ: Events Mozilla Core Mozilla43 バグ修正
SNS:
Tweet (list)
放置していたバグの修正です。NS_UI_ACTIVATE
は、DOMActivate
イベントの元です。ちなみに、DOMActivate
イベントとは、マウスで要素をクリックした時にアクティブ状態になったことを通知するイベントですが、DOM Level 3では不採用が確定して削除できないか模索もされています。
それはさておき、今回のバグは、そのDOMActivate
がuntrustedなマウスイベントによって発生した場合(例えばclick
イベントを生成して要素上で発火した時や、click()
メソッドでクリックを偽装した場合)、そのイベントのisTrusted
を引き継いで、false
のままイベントを生成していました。
isTrusted
はそのイベントがユーザエージェントから発火されたものかどうかを示します。つまり、このケースではクリックのエミュレーションが原因であっても、実際にアクティブになったからDOMActivate
イベントを生成しているので、そのisTrusted
属性は常にtrue
でなくてはいけないのです。
今回の修正で、NS_UI_ACTIVATE
が信頼できるソースから生成されたのかどうかを判断するにはWidgetEvent::mEvent::mIsTrusted
が利用できなくなったので、それを検査していた(と思われる)箇所のために、InternalUIEvent::IsTrustable()
というメソッドを追加しています。