{"action":"created","issue":{"url":"https://api.github.com/repos/RByers/EventListenerOptions/issues/20","labels_url":"https://api.github.com/repos/RByers/EventListenerOptions/issues/20/labels{/name}","comments_url":"https://api.github.com/repos/RByers/EventListenerOptions/issues/20/comments","events_url":"https://api.github.com/repos/RByers/EventListenerOptions/issues/20/events","html_url":"https://github.com/RByers/EventListenerOptions/issues/20","id":94601740,"number":20,"title":"UAs observing the presence of event listeners is bad","user":{"login":"foolip","id":498917,"avatar_url":"https://avatars.githubusercontent.com/u/498917?v=3","gravatar_id":"","url":"https://api.github.com/users/foolip","html_url":"https://github.com/foolip","followers_url":"https://api.github.com/users/foolip/followers","following_url":"https://api.github.com/users/foolip/following{/other_user}","gists_url":"https://api.github.com/users/foolip/gists{/gist_id}","starred_url":"https://api.github.com/users/foolip/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/foolip/subscriptions","organizations_url":"https://api.github.com/users/foolip/orgs","repos_url":"https://api.github.com/users/foolip/repos","events_url":"https://api.github.com/users/foolip/events{/privacy}","received_events_url":"https://api.github.com/users/foolip/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":31,"created_at":"2015-07-12T21:44:22Z","updated_at":"2015-09-24T14:30:03Z","closed_at":null,"body":"What happens if the UI process/thread thinks that a point only has non-canceling event listeners, but when the event reaches the main thread, a regular event listener that calls `preventDefault()` has been added? It's too late to actually prevent the scroll, but it'll look to the event listener like it can prevent it.\r\n\r\nPerhaps create non-cancelable events when the UI process/thread actually isn't waiting for the result? Though this would make the presence of other no-op event handlers observable, ugh."},"comment":{"url":"https://api.github.com/repos/RByers/EventListenerOptions/issues/comments/142946393","html_url":"https://github.com/RByers/EventListenerOptions/issues/20#issuecomment-142946393","issue_url":"https://api.github.com/repos/RByers/EventListenerOptions/issues/20","id":142946393,"user":{"login":"RByers","id":1280419,"avatar_url":"https://avatars.githubusercontent.com/u/1280419?v=3","gravatar_id":"","url":"https://api.github.com/users/RByers","html_url":"https://github.com/RByers","followers_url":"https://api.github.com/users/RByers/followers","following_url":"https://api.github.com/users/RByers/following{/other_user}","gists_url":"https://api.github.com/users/RByers/gists{/gist_id}","starred_url":"https://api.github.com/users/RByers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RByers/subscriptions","organizations_url":"https://api.github.com/users/RByers/orgs","repos_url":"https://api.github.com/users/RByers/repos","events_url":"https://api.github.com/users/RByers/events{/privacy}","received_events_url":"https://api.github.com/users/RByers/received_events","type":"User","site_admin":false},"created_at":"2015-09-24T14:30:03Z","updated_at":"2015-09-24T14:30:03Z","body":"@annevk and I [chatted about this on IRC](http://krijnhoetmer.nl/irc-logs/whatwg/20150924#l-466) and came to an agreement.  Tentative conclusions:\r\n - Observing event handler presence for perf reasons is unfortunate but acceptable\r\n - Observing for the sake of making an event uncancelable is discouraged but some events (touch/wheel) may be specified to do so.  \r\n - New events should be designed to avoid this (like pointer events), reach out to public-script-coord if you think you have a use case.\r\n - Add a non-normative section \"Observing event listeners\" after interface EventTarget that spells this out (kind of like \"Action versus Occurrence\").\r\n"}}