oyvindkinsey / easyXDM

A javascript library providing cross-browser, cross-site messaging/method invocation.
http://easyxdm.net
MIT License
2.37k stars 265 forks source link

"Security error: attempted to read protected variable: postMessage" in Opera Mobile #143

Open ghost opened 12 years ago

ghost commented 12 years ago

I'm using CORS endpoint bundled with easyXDM, which works perfectly... unless i try to open my page in Opera Mobile.

1) Browser:

User-Agent: Opera/9.80 (Android 2.3.6; Linux; Opera Mobi/ADR-1111101157; U; ru) Presto/2.9.201 Version/11.50

2) Console log:

com.foobar.ru - 12:07:15.487: easyXDM present on 'http://com.foobar.ru/static/com/xdm/cors/index.html?xdm_e=http%3A%2F%2Fquux.ru&xdm_c=default3291&xdm_p=1
easyXDM.debug.js:914
com.foobar.ru - 12:07:15.589: native JSON found
easyXDM.debug.js:914
com.foobar.ru - 12:07:15.816: easyXDM.Rpc: constructor
easyXDM.debug.js:914
com.foobar.ru - 12:07:15.816: {Private}: preparing transport stack
easyXDM.debug.js:914
com.foobar.ru - 12:07:15.816: {Private}: using parameters from query
easyXDM.debug.js:914
com.foobar.ru - 12:07:15.816: easyXDM.stack.PostMessageTransport: constructor
easyXDM.debug.js:914
com.foobar.ru - 12:07:15.816: easyXDM.stack.QueueBehavior: constructor
easyXDM.debug.js:914
com.foobar.ru - 12:07:15.817: easyXDM.stack.RpcBehavior: init
easyXDM.debug.js:959
com.foobar.ru - 12:07:15.818:{Private}: firing dom_onReady
easyXDM.debug.js:959
com.foobar.ru - 12:07:15.819:... deferred messages ...
easyXDM.debug.js:959
com.foobar.ru - 12:07:15.819:easyXDM.Rpc: constructor
easyXDM.debug.js:959
com.foobar.ru - 12:07:15.819:{Private}: preparing transport stack
easyXDM.debug.js:959
com.foobar.ru - 12:07:15.819:{Private}: using parameters from query
easyXDM.debug.js:959
com.foobar.ru - 12:07:15.819:easyXDM.stack.PostMessageTransport: constructor
easyXDM.debug.js:959
com.foobar.ru - 12:07:15.819:easyXDM.stack.QueueBehavior: constructor
easyXDM.debug.js:959
com.foobar.ru - 12:07:15.819:easyXDM.stack.RpcBehavior: init
easyXDM.debug.js:959
com.foobar.ru - 12:07:15.819:... end of deferred messages ...
easyXDM.debug.js:959
com.foobar.ru - 12:07:15.819:easyXDM.stack.PostMessageTransport: init
easyXDM.debug.js:959
com.foobar.ru - 12:07:15.819:{Private}: adding listener message
Uncaught exception: ReferenceError: Security error: attempted to read protected variable: postMessage

Error thrown at line 1870, column 16 in <anonymous function: onDOMReady>() in http://com.foobar.ru/static/com/xdm/easyXDM.debug.js:
    callerWindow = ("postMessage" in window.parent) ? window.parent : window.parent.document;
called via Function.prototype.call() from line 204, column 8 in <anonymous function>() in http://com.foobar.ru/static/com/xdm/easyXDM.debug.js:
    fn.call(scope);
called from line 154, column 8 in dom_onReady() in http://com.foobar.ru/static/com/xdm/easyXDM.debug.js:
    domReadyQueue[i]();
oyvindkinsey commented 12 years ago

Yeah... Opera is funny...

Feel free to experiment witht his piece of the code, I'm afraid I'm not able to prioritize it.

yvind Sean Kinsey oyvind@kinsey.no http://kinsey.no/blog/index.php/about/

2011/12/8 Eugene Chernikov < reply@reply.github.com

I'm using CORS endpoint bundled with easyXDM, which works perfectly... unless i try to open my page in Opera Mobile.

1) Browser:

User-Agent: Opera/9.80 (Android 2.3.6; Linux; Opera Mobi/ADR-1111101157; U; ru) Presto/2.9.201 Version/11.50

2) Console log:

com.foobar.ru - 12:07:15.487: easyXDM present on '
http://com.foobar.ru/static/com/xdm/cors/index.html?xdm_e=http%3A%2F%2Fquux.ru&xdm_c=default3291&xdm_p=1
easyXDM.debug.js:914
com.foobar.ru - 12:07:15.589: native JSON found
easyXDM.debug.js:914
com.foobar.ru - 12:07:15.816: easyXDM.Rpc: constructor
easyXDM.debug.js:914
com.foobar.ru - 12:07:15.816: {Private}: preparing transport stack
easyXDM.debug.js:914
com.foobar.ru - 12:07:15.816: {Private}: using parameters from query
easyXDM.debug.js:914
com.foobar.ru - 12:07:15.816: easyXDM.stack.PostMessageTransport:
constructor
easyXDM.debug.js:914
com.foobar.ru - 12:07:15.816: easyXDM.stack.QueueBehavior: constructor
easyXDM.debug.js:914
com.foobar.ru - 12:07:15.817: easyXDM.stack.RpcBehavior: init
easyXDM.debug.js:959
com.foobar.ru - 12:07:15.818:{Private}: firing dom_onReady
easyXDM.debug.js:959
com.foobar.ru - 12:07:15.819:... deferred messages ...
easyXDM.debug.js:959
com.foobar.ru - 12:07:15.819:easyXDM.Rpc: constructor
easyXDM.debug.js:959
com.foobar.ru - 12:07:15.819:{Private}: preparing transport stack
easyXDM.debug.js:959
com.foobar.ru - 12:07:15.819:{Private}: using parameters from query
easyXDM.debug.js:959
com.foobar.ru - 12:07:15.819:easyXDM.stack.PostMessageTransport:
constructor
easyXDM.debug.js:959
com.foobar.ru - 12:07:15.819:easyXDM.stack.QueueBehavior: constructor
easyXDM.debug.js:959
com.foobar.ru - 12:07:15.819:easyXDM.stack.RpcBehavior: init
easyXDM.debug.js:959
com.foobar.ru - 12:07:15.819:... end of deferred messages ...
easyXDM.debug.js:959
com.foobar.ru - 12:07:15.819:easyXDM.stack.PostMessageTransport: init
easyXDM.debug.js:959
com.foobar.ru - 12:07:15.819:{Private}: adding listener message
Uncaught exception: ReferenceError: Security error: attempted to read
protected variable: postMessage

Error thrown at line 1870, column 16 in <anonymous function: onDOMReady>()
in http://com.foobar.ru/static/com/xdm/easyXDM.debug.js:
   callerWindow = ("postMessage" in window.parent) ? window.parent :
window.parent.document;
called via Function.prototype.call() from line 204, column 8 in <anonymous
function>() in http://com.foobar.ru/static/com/xdm/easyXDM.debug.js:
   fn.call(scope);
called from line 154, column 8 in dom_onReady() in
http://com.foobar.ru/static/com/xdm/easyXDM.debug.js:
   domReadyQueue[i]();

Reply to this email directly or view it on GitHub: https://github.com/oyvindkinsey/easyXDM/issues/143

ghost commented 12 years ago

With which piece of code? :) Seems like github has omitted part of your response.

oyvindkinsey commented 12 years ago

I was replying from my iPhone, and the code referred to was the one singled out by Opera in the error message.

yvind Sean Kinsey oyvind@kinsey.no http://kinsey.no/blog/index.php/about/

2011/12/8 Eugene Chernikov < reply@reply.github.com

With which piece of code? :) Seems like github has omitted part of your response.


Reply to this email directly or view it on GitHub: https://github.com/oyvindkinsey/easyXDM/issues/143#issuecomment-3069829