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.