开发者

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

开发者 https://www.devze.com 2023-01-27 00:35 出处:网络
I have been developing an AJAX application using jQuery and Microsoft Seadragon technology. I need to have access to the html5 canvas function toDataURL.

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 thr开发者_JAVA百科own.

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!


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.


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


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)


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/


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!

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号