Шаг вправо, шаг влево – побег
Прыжок на месте – провокация
На каждый чих вашему расширению требуется разрешение. По умолчанию – нельзя практически ничего.
При установке расширения пользователь уведомляется о его аппетитах и может сделать осознанный выбор (хаха 3 раза), готов ли он предоставить требуемое. Если не готов, если расширение просит слишком много, а его автор или источник получения не внушает доверия, установку можно прервать. Кроме того, в любой момент на вкладке расширений можно проверить какие разрешения затребованы расширением и отключить его, если возникли какие-то подозрения.
На практике, большинство пользователей ставят расширения не читая списка его требований, а если вчитаться и задуматься о возможных последствиях, то придется отключить практически все, уж очень подозрительно они выглядят.
Знакомство со списком всех возможных разрешений полезно хотя бы тем, что он наглядно иллюстрирует потенциальные возможности – что вообще можно делать с помощью расширений
Нужно иметь ввиду, что некоторые возможности являются экспериментальными, их распространение через Google Store ограничено и в любой момент в API могут внести изменения или даже прекратить его поддержку.
Параметр | Описание |
[scheme]:[host]/* | Требуется чтобы взаимодействовать с кодом на страницах, чей URL совпадает с указанной маской. Например для кросс-сайтовых запросов |
activeTab | Позволяет расширению получить временный доступ к активной вкладке. Чтобы получить доступ пользователь должен явно активировать расширение, например путем нажатия его иконки на панели инструментов. |
alarms | Разрешает доступ к chrome.alarms API – создание разного рода “будильников”, напоминаний. |
background | Разрешает работу расширения в фоновом режиме, даже когда браузер не запущен |
bookmarks | Дает доступ к закладкам |
browsingData | Позволяет работать с chrome.browsingData API – автоматически удалять старые, ненужные данные. Полезность этого API для меня под большим вопросом |
clipboardRead | Позволяет получение данных из буфера обмена (paste) |
clipboardWrite | Позволяет записывать данные в буфер обмена (cut,copy) |
contentSettings | Разрешает работу с chrome.contentSettings API. С его помощью можно разрешать или запрещать использование cookies, JavaScript, and plug-ins на сайтах. |
contextMenus | Добавление своих элементов в контекстное меню |
cookies | Управление cookies |
debugger | Может быть полезно при отладке расширения на мобильных устройствах. Отладка осуществляется только при подключении через USB кабель |
declarativeContent | Разрешает использование chrome.declarativeContent API. Довольно экзотическая штука, которая показывает иконку Page Action в зависимости от контента страницы. Например можно задать правило, по которому иконка вашего расширения будет показана только для страниц на которых присутствует тег video. Экспериментальная возможность. |
declarativeWebRequest | Позволяет перехватывать, блокировать или изменять запросы “на лету”. Экспериментальная возможность. |
desktopCapture | Разрешает chrome.desktopCapture API. Позволяет делать снимок экрана, отдельного окна или вкладки. Экспериментальная возможность. |
dns | Разрешает chrome.dns API – возможность настолько экспериментальная что на сайте гугла нет описания |
downloads | Позволяет расширению работать с загрузками |
experimental | Разрешает работу с chrome.experimental.* API. Кроме установки этого разрешения вам потребуется специальная версия браузера, в которой разрешено использование этих специальных возможностей |
fileBrowserHandler | API для выбора файлов для загрузки, работает только на Chrome OS |
fontSettings | Разрешает манипуляции со шрифтами |
gcm | Разрешает использование Google Cloud Messaging for Android. Экспериментальная возможность |
geolocation | Разрешает работу с Geolocation API |
history | Доступ к истории посещений |
identity | Авторизация через OAuth2 |
idle | Возможность обнаружения перехода компьютера в ждущий режим. Например чтобы выполнять какие-то ресурсоемкие задачи пока им никто не пользуется |
idltest | Что-то экспериментальное и жутко секретное. А скорей всего умершее в экспериментальном статусе |
infobars | Позволяет добавить информационную панель под ярлычками вкладок. Экспериментальное |
location | Еще один вариант геолокации. Экспериментальный и завязанный на Chrome |
management | Разрешает использование API для управления приложениями и расширениями |
notifications | Разрешает работу с уведомлениями |
pageCapture | Позволяет сохранить страницу в одном файле формата MHTML |
power | Позволяет предотвратить переход системы в спящий режим |
privacy | Позволяет менять настройки приватности |
processes | Управление процессами браузера. Экспериментальная возможность. |
proxy | Управление настройками прокси |
pushMessaging | Позволяет использовать Google Cloud Messaging. |
sessions | Экспериментальная возможность. Только для разработчиков |
signedInDevices | Экспериментальная возможность. Только для разработчиков |
storage | Разрешает chrome.storage API – аналог localStorage но несколько больше возможностей |
system.cpu | Получение информации о процессоре и загрузке системы |
system.display | Получение информации о мониторе |
system.memory | Получение информации о памяти |
system.storage | Получение информации о накопителях и их подключении/отключении |
tabCapture | Взаимодействие с потоковыми данными (аудио, видео) на вкладках. |
tabs | Какая-то особо изощренная работа со вкладками. В чем именно она заключается понять не удалось |
topSites | Получение списка наиболее посещаемых пользователем сайтов. |
tts | Преобразование текста в речь. |
ttsEngine | Продвинутое преобразование текста в речь. |
unlimitedStorage | Дает неограниченный размер хранимых данных (обычное localStorage только 5Мб). С оговорками. |
webNavigation | Получение уведомлений о событиях связанных с загрузкой данных |
webRequest | Тоже самое что webNavigation, но на более более продвинутом уровне |
webRequestBlocking | Тоже самое что webRequest + возможность прерывать, блокировать и модифицировать запросы |
Пример
"permissions": [
"tabs",
"bookmarks",
"http://www.blogger.com/",
"http://*.google.com/",
"unlimitedStorage"
],
Комментариев нет:
Отправить комментарий