Шаг вправо, шаг влево – побег
Прыжок на месте – провокация
На каждый чих вашему расширению требуется разрешение. По умолчанию – нельзя практически ничего.
При установке расширения пользователь уведомляется о его аппетитах и может сделать осознанный выбор (хаха 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"
],
Комментариев нет:
Отправить комментарий