Export to GitHub

jquery-jstore - issue #37

Flash engine does not work in cross-domain scenario (notorious Location.toString error)


Posted on Jun 9, 2010 by Happy Dog

What steps will reproduce the problem?

  1. Include jStore script from 3rd party domain: <script type="text/javascript" src="<not-my-domain>/jquery.jstore.js"></script>
  2. Call jStore.init() with 'jStore.flavors.flash' param
  3. Engine is not initialized, neither jstore_ready nor jstore_error is triggered
  4. Firefox error console states: "Permission denied for <not-my-domain> to call method Location.toString on <my-domain>"

What is the expected output? What do you see instead?

Expected: jStore works, i.e. is able to get/set values on flash (or another) storage. Actual: unable to get/set values, no 'graceful degradation' to another available engine happens.

What version of the product are you using? On what operating system?

jStore 2.0 / Windows XP / Firefox 3.6.2

Please provide any additional information below.

The error is well-known Adobe issue as described here: http://bugs.adobe.com/jira/browse/FP-561 https://bugzilla.mozilla.org/show_bug.cgi?id=434522

But Adobe seems to have little interest in fixing this as they think it "Exposes no functional or security issues". Actually it happens so that it breaks jStore functionality completely and other parties in threads above report functional issues too.

The workaround for this issue from jStore developers is very much welcome. E.g. youtube videos seem to embed their flash objects through 'span' instead of 'iframe', which obviously work in cross-domain scenarios.

Status: New

Labels:
Type-Defect Priority-Medium