Возможно ли расширение Chrome для записи в файл в системном каталоге Chrome? - PullRequest
7 голосов
/ 03 декабря 2011

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

Мой план таков: я хочу взять текущую воспроизводимую дорожку в плеере Pandora и отправить информацию о дорожке источнику за пределами браузера (в моем случае, скрипту Python).

Получение самой информации не должно быть сложным; их новый интерфейс HTML5 делает эту часть очень простой. Проблема заключается в передаче этой информации, как только я ее получу. Я хотел бы избежать загрузки данных на веб-сервер, чтобы Python извлек их оттуда.

Очевидно, что Chrome не сделает очень легким для расширений отправку сообщений DBus или чего-либо еще, но возможно ли записать файл в системный каталог Chrome где-нибудь, и Python его заберет? Я совершенно нелеп, даже задавая такой вопрос?

EDIT: Я думал, что сообщу о том, что я на самом деле сделал для всех, кто столкнется с этим вопросом в будущем. Поскольку мне нужно было только это расширение для работы на одном компьютере (моем), я просто установил mod_python для Apache и заставил мое расширение отправлять свои данные прямо в мой скрипт Python, ожидающий на localhost. Преимущество этого заключается в том, что нет необходимости запрашивать URL или файл из Python, как я изначально предполагал. Это также позволяет избежать потенциальных угроз безопасности, связанных с NPAPI.

Ответы [ 2 ]

3 голосов
/ 03 декабря 2011

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

Однако, обратите внимание на предупреждение на странице, на которую я ссылался выше:

NPAPI - действительно большой молот, который должениспользуется только в том случае, если никакой другой подход не будет работать.

Код, выполняемый в плагине NPAPI, имеет полные права доступа текущего пользователя и не защищен от песочницы и не защищен от вредоносного ввода Google Chrome.Вы должны быть особенно осторожны при обработке входных данных из ненадежных источников, например, при работе со скриптами содержимого или XMLHttpRequest.

Из-за дополнительных угроз безопасности, которые NPAPI представляет для пользователей, расширения, которые используют его, требуют подтверждения вручную, прежде чем они будут принятыв Интернет-магазине Chrome.

0 голосов
/ 12 января 2014

Это старый вопрос, но вот еще один вариант:

Если вы пишете в localStorage со своего расширения, вы можете получить доступ к каталогу Chrome Local Storage, где каждому сайту и расширению удобно присваивать свой собственный файл. В Linux каталог находится в ~/.config/google-chrome/Default/Local Storage, а в Windows - %LocalAppData%\Google\Chrome\User Data\Default\Local Storage. У меня нет Mac, чтобы проверить, но его не должно быть трудно найти.

Данные хранятся как то, что выглядит как JSON внутри SQLite. Лично я не пытался превратить это во что-то полезное, но информация есть все. Я только что провел быструю проверку, и файл, кажется, обновляется, как только вы пишете в localStorage, так что вы можете установить наблюдатель файловой системы и получать уведомление в любое время, когда оно изменяется.

...