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) {


Reply via email to