Reviewers: ihab.awad,
Description: currently, window.addEventListener only works for 'load'. this change adds support for all the other valid events. I don't know how to add a test for this. Please review this at http://codereview.appspot.com/95044 Affected files: M src/com/google/caja/plugin/domita.js Index: src/com/google/caja/plugin/domita.js =================================================================== --- src/com/google/caja/plugin/domita.js (revision 3573) +++ src/com/google/caja/plugin/domita.js (working copy) @@ -3432,21 +3432,27 @@ if (name === 'load') { classUtils.ensureValidCallback(listener); tameDocument.onLoadListeners___.push(listener); + } else { + tameDocument.addEventListener(name, listener, useCapture); } }), removeEventListener: ___.markFuncFreeze( function (name, listener, useCapture) { - var listeners = tameDocument.onLoadListeners___; - var k = 0; - for (var i = 0, n = listeners.length; i < n; ++i) { - listeners[i - k] = listeners[i]; - if (listeners[i] === listener) { - ++k; + if (name === 'load') { + var listeners = tameDocument.onLoadListeners___; + var k = 0; + for (var i = 0, n = listeners.length; i < n; ++i) { + listeners[i - k] = listeners[i]; + if (listeners[i] === listener) { + ++k; + } } + listeners.length -= k; + } else { + tameDocument.removeEventListener(name, listener, useCapture); } - listeners.length -= k; }), - dispathEvent: ___.markFuncFreeze(function (evt) { + dispatchEvent: ___.markFuncFreeze(function (evt) { // TODO(ihab.awad): Implement }) }, ___.markFuncFreeze(function (propertyName, value) {
