When trying to read image data from a canvas which was painted an image upon beforehand, Google Chrome raises a cross origin exception (complaining about the canvas being \"
It's a new Chromium security policy in practice. You can't do anything except disabling this policy as stated above by epascarello. Star this bug, they were kind of wishing to loosen this rule.
Check this answer also.
Files loaded with file://
are always considered as coming from different domains, this is a feature you can't bypass.
From the HTML5 spec's definition of Origin :
If a Document was obtained in some other manner (e.g. a data: URL typed in by the user, a Document created using the createDocument() API, etc) The origin is a globally unique identifier assigned when the Document is created.
You can display but you can't analyze or change data read from another file if the loading protocol is file:
.
What I would probably do in your situation (if I understand it correctly from your comments) : I would write a tiny program, that could be released in the external storage media, which would both start an http server and launch a web browser. I would do it in Go (simple to make an http server in two or three lines, native compilation for linux, Mac and Windows, enabling you to provide all needed executables) but other languages can be used too.
Give them instructions for them to start up chrome with the flag --allow-file-access-from-files.
Other than that, they would need to run a local server instance to avoid the errors.