it-roy-ru.com

Google Chrome - запрещен доступ к файлам из файлов для Chrome Beta 8

Я разрабатывал приложение AJAX с использованием технологий jQuery и Microsoft Seadragon.
Мне нужен доступ к функции html5 canvas toDataURL.

В Google Chrome к этой функции применяется то же правило Origin, что означает, что страница, запускаемая локально (с file:/// в URL), не удовлетворяет тому же правилу Origin и выдается исключение.

В Chrome 7 запуск приложения с параметром --allow-file-access-from-files позволяет вызывать canvas.toDataURL() из локальных файлов.

Однако, похоже, что запуск Chrome Beta 8 с той же опцией (--allow-file-access-from-files) не разрешает вызов canvas.toDataURL() для локального файла. 

Chrome отказался от опции --allow-file-access-from-files или его просто отключили, поскольку это бета-версия, а не полная версия?

Спасибо!

27
Alexandre

Глядя на проблемы для этого показывает, что вся --allow-file-access-from-files вещь была срочно отправлена.

  1. "Firefox делает это .."
  2. "Как мы можем это сделать?"
  3. проходит некоторое время
  4. «Вот такие патчи»
  5. "Проходит! На стволе удивляюсь, что произойдет в следующем выпуске dev"
  6. "Аааа, он сломан" "Используйте параметр командной строки" "ОК"
  7. "Мы отправили!"
  8. "WTF, ребята? Вы сломали все мои вещи! Почему вы не сказали нам раньше?"
  9. тишина

К вашей проблеме
Действительно, кажется, что это что-то особенное для бета-версии, я использую Chrome 8.0.552.5 dev здесь, и --allow-file-access-from-files работает, как и ожидалось, я также протестировал это с Chromium 9.0.592.0 (66889), где он также работает, как ожидалось.

Я подозреваю, что в ветке разработчика произошли некоторые изменения. К сожалению, найти что-то на трекере Chromium практически невозможно.

46
Ivo Wetzel

Вы закрыли все экземпляры Chrome перед открытием с аргументом командной строки? Вы должны сделать это, чтобы этот параметр работал.

22
Guillaume86

Подведем итоги всех ответов на данный момент.

Перед запуском chrome убедитесь, что не запущены процессы chrome.

Windows

-allow-file-access-from-files

(с одной чертой)

Linux

--allow-file-access-from-files

(с двумя штрихами)

10
Vanuan

Я нашел способ обойти проблему, используя подход JavaScript/Flash. Если flash скомпилирован в изолированной программной среде безопасности «Только локальный», он имеет полный доступ к локальным файлам. Используя ExternalInterface, JavaScript может запросить приложение Flash для загрузки файла, а Flash может передать результат обратно в JavaScript.

Вы можете найти мою реализацию здесь: https://code.google.com/p/flash-loader/

1
CommissarXiii