Hi - I haven't been following the history of this branch in detail, but I'm concerned that the majority of the logic in this file doesn't follow our "recommended Fluid house style" - it is all implemented in a function held at file-private scope " var bindMediaDOMEvents" and provides no means for the user to intercept or customise this implementation. Also, a lot of the logic is very repetitive (consisting of calls to "that.applier.fireChangeRequest " for event "canPlay" with reference to a further function "var getcanPlayData" which is also not exposed correctly.

I suggest that this implementation should be expressed differently, in terms of properly namespaced functions in the global scope, as well as being economised to be refactored in terms of common utility functions - for extra points, expressed in terms of a suitable lightweight declarative structure which expresses without using code directly how outgoing media DOM events should be transformed into changeApplier and other events.