Revision: 4675
Author:   metaweta
Date:     Wed Dec  7 11:34:23 2011
Log:      Fixes plugin_dispatchEvent in ES5 mode.
http://codereview.appspot.com/5450114

Uncommented some code copied over from ES53 by Kevin,
changed it to set plugin_dispatchEvent in the div's window,
added a test.

R=jasvir

http://code.google.com/p/google-caja/source/detail?r=4675

Modified:
 /trunk/src/com/google/caja/plugin/caja.js
 /trunk/src/com/google/caja/plugin/domado.js
 /trunk/tests/com/google/caja/plugin/es53-test-domado-events-guest.html

=======================================
--- /trunk/src/com/google/caja/plugin/caja.js   Mon Nov  7 21:13:31 2011
+++ /trunk/src/com/google/caja/plugin/caja.js   Wed Dec  7 11:34:23 2011
@@ -476,13 +476,13 @@
               //  divWindow.___.tamingFrames = {};
               //}
               //divWindow.___.tamingFrames[imports.id___] = tamingWindow;
-              //guestWindow.plugin_dispatchEvent___ =
-              //    domado.plugin_dispatchEvent;
-              //divWindow.plugin_dispatchToHandler___ =
-              //    function (pluginId, handler, args) {
-              //      return divWindow.___.tamingFrames[pluginId].
- // plugin_dispatchToHandler___(pluginId, handler, args);
-              //    };
+              divWindow.plugin_dispatchEvent___ =
+                  domado.plugin_dispatchEvent;
+              divWindow.plugin_dispatchToHandler___ =
+                  function (pluginId, handler, args) {
+                    return divWindow.___.tamingFrames[pluginId].
+ plugin_dispatchToHandler___(pluginId, handler, args);
+                  };
//// TODO(felix8a): should be conditional on builderState.flash
               //var twc = tamingWindow.cajaFlash;
               //if (twc && twc.init) {
=======================================
--- /trunk/src/com/google/caja/plugin/domado.js Tue Nov  8 10:55:13 2011
+++ /trunk/src/com/google/caja/plugin/domado.js Wed Dec  7 11:34:23 2011
@@ -3998,7 +3998,7 @@
                      this.target.elements, name)) {
         return false;
       } else {
-        return ExpandoProxyHandler.prototype.delete.call(this, name);
+        return ExpandoProxyHandler.prototype['delete'].call(this, name);
       }
     });
     cajaVM.def(FormElementAndExpandoProxyHandler);
@@ -5579,7 +5579,7 @@
       case 'string':
         var fn = void 0;
         var tameWin = void 0;
-        fn = domicile.imports.window[handler];
+        fn = domicile.window[handler];
         handler = fn && typeof fn.call === 'function' ? fn : void 0;
         break;
       case 'function': case 'object': break;
=======================================
--- /trunk/tests/com/google/caja/plugin/es53-test-domado-events-guest.html Tue Sep 6 17:24:13 2011 +++ /trunk/tests/com/google/caja/plugin/es53-test-domado-events-guest.html Wed Dec 7 11:34:23 2011
@@ -16,6 +16,17 @@

 <div>Derived from domita_test_untrusted.html as of r4471</div>

+<p class="clickme testcontainer" id="test-function-calls-in-attributes">
+  <span onclick="doIt();">
+    Function calls in attributes should work.
+  </span>
+</p>
+<script type="text/javascript">
+ window.doIt = function doIt() { pass('test-function-calls-in-attributes'); }
+  jsunitRegister('testFunctionCallsInAttributes',
+                 function testFunctionCallsInAttributes() { });
+</script>
+
 <p class="manual testcontainer" id="test-related-target-mouse-container">
   <span id="test-related-target-mouse">
     Move mouse here to see event.relatedTarget.

Reply via email to