Список локальных каталогов с расширением chrome


Я пытаюсь создать расширение chrome, которое сканирует локальный каталог на наличие новых файлов ... Однако, если я добавлю файл: / / * разрешение на манифест, я могу получить доступ к внутреннему файловому браузеру chrome с помощью

xmlhttp.open("GET","file://C:/Users/username/Desktop/",false); xmlhttp.send(); console.log(xmlhttp.response);

Из ответа я мог извлечь URL-адреса файлов и использовать их в своем расширении.

Теперь мой вопрос: существуют ли другие подходы? Вышеописанный способ больше похож на обходной путь и легко ломается, если файловый браузер chrome изменен ...

1 6

1 ответ:

Всякий раз, когда мне приходилось что-то делать на локальной машине из расширения Chrome, я всегда создавал небольшую программу, которая принимает соединения через HTTP и выполняет работу как обычная программа, принимая команды с помощью JSON через POST. Это дает вам большую гибкость, так как это по существу позволяет вам написать расширение Chrome, которое может сделать все, что может сделать настольная программа.

Тем не менее, у этого есть большие недостатки, и вы должны делать это только в случае крайней необходимости. Для Пример:
    Вы не можете сделать это для всех операционных систем, если только не собираетесь написать агент для каждой ОС.
  • Расширение не может быть установлено с хостинга расширений Google.
  • Вы должны написать свою собственную программу установки, которая регистрирует расширение.
  • есть очень реальные соображения безопасности, чтобы беспокоиться об этом. Вы откроете веб-службу, которая выполняет команды. Будьте очень уверены, что вы не выставляете пользователь. В действительности, если вы создаете файловый браузер, вы, вероятно, подвергаете пользователя риску. Это будет зависеть от вас, чтобы исправить эту дыру в безопасности, как если бы вы создавали любой другой веб-сервис.