However, there is a problem in the
click-to-play, this policy didn't work on some pages which calls
video.play() inside an async event handler , because the way to detect if the input is triggered by user  doesn't support being used inside the async event handler. Therefore, we had some bugs reports about this feature doesn't work before, eg. Vimeo, but now it works on Vimeo.
However, for the way of detecting if the action is an user input, Chrome has proposed a different method and we have already implememted that way in , which is treating an action as a user triggled action if the action happens within a specific period of time after user performs input on the page. It's not necessary to perform the action on the certain element, it can occur on any places.
Eg. If I click on anywhere inside a page (which is not media element itself), then call
video.play() which should not need to be called inside a event handler but needs to be called within a certain period of time, then this
video.play() would be treat as an valid user input and we would allow video to play.
That is different from our current implementation, which requires the
video.play() should only be called inside the event handler.
If we want to add an option to switch to
click-to-play policy, we have to decide if we want to use Chrome's method for determining if the play is called by user or not, in order to block non-user triggered play request.