Alexandre
Alexandre

Reputation: 507

Google Chrome --allow-file-access-from-files disabled for Chrome Beta 8

I have been developing an AJAX application using jQuery and Microsoft Seadragon technology.
I need to have access to the html5 canvas function toDataURL.

With Google Chrome, the same origin rule applies to this function which means that a page run locally (with the file:/// in the URL) failed to satisfy the same origin rule and an exception is thrown.

With Chrome 7, starting the application with --allow-file-access-from-files option, allows to call canvas.toDataURL() from local files.

However, it seems that starting the Chrome Beta 8 with the same option (--allow-file-access-from-files) does not allow the call canvas.toDataURL() on the local file.

Does Chrome gave up on the --allow-file-access-from-files option or it has just been disabled since it is a Beta release and not a full release?

Thanks!

Upvotes: 27

Views: 93023

Answers (5)

Vanuan
Vanuan

Reputation: 33402

To summarize all answers so far.

Before running chrome, make sure there are no chrome processes running.

Windows

-allow-file-access-from-files

(with one dash)

Linux

--allow-file-access-from-files

(with two dashes)

Upvotes: 10

Ivo Wetzel
Ivo Wetzel

Reputation: 46735

Looking at the issues for this shows that the whole --allow-file-access-from-files thing was rushed.

  1. "Firefox does it.."
  2. "How can we do it?"
  3. some time passes
  4. "Here are the patches"
  5. "Passes! On trunk wonder what happens in the next dev release"
  6. "Ahhh it's broken" "Use the command line option" "ok"
  7. "We shipped!"
  8. "WTF guys? You broke all my stuff! Why didn't you tell us earlier?"
  9. silence

On to your Problem
Indeed it seems that this is something special to the beta, I'm using Chrome 8.0.552.5 dev here and --allow-file-access-from-files works like expected, I've also tested this with Chromium 9.0.592.0 (66889) were it also works as expected.

I suspect there have been some changes on the dev branch. Unfortunately, finding something on chromium's issue tracker is nearly impossible.

Upvotes: 46

Johnydep
Johnydep

Reputation: 6277

The trick that woked for me is that you have to give the absolute path of the file and not just file name in your HTML code. e.g file://... instead of direct name even though you are accessing the file in the same directory. It will work!

Upvotes: -1

CommissarXiii
CommissarXiii

Reputation: 87

I've found a way around the issue using a JavaScript/Flash approach. If flash is compiled in the Local Only security sandbox, it has full access to local files. Using ExternalInterface, JavaScript can request a Flash Application to load a file, and Flash can pass the result back to JavaScript.

You can find my implementation here: https://code.google.com/p/flash-loader/

Upvotes: 1

Guillaume86
Guillaume86

Reputation: 14400

Did you close all chrome instances before opening with the command line argument? You have to do that to make that parameter work.

Upvotes: 22

Related Questions