В рамках нашей школы по созданию расширений для Google Chrome пришло время второго урока. И тема сегодня это беглый обзор возможностей Chrome API. Или проще говоря, опишем то, на что способны воздействовать расширения в браузере. Кстати, перечитать первый урок по основам системы расширений вы можете здесь.
Закладки (bookmarks)
Ваши расширения могут совершенно спокойно взаимодействовать с закладками в браузере. Вы можете создавать их, удалять, работать с ними как посчитаете нужным. Отслеживать события связанные с их созданием пользователем и т.п.
Кнопки на панели расширений (Browser Actions)
Одна из самых популярных возможностей в системе дополнений для Хрома. Кнопка, которая появляется на панели расширений, позволяет не только открывать окна по нажатию на нее, но и выводить в иконке какую либо информацию. Например, количество непрочитанных писем и т.п.
Работа с контекстным меню (contextMenus)
Контекстное меню это меню, которое появляется при нажатии на правую кнопку мыши. В своем расширении вы можете создавать в этом меню новые пункты, по нажатию на которые будут выполняться нужные вам события.
Cookies
Работа с cookies позволяет получать, создавать или удалять "печеньки".
История (history)
Тут все просто. По аналогии с закладками расширения могут работать и с историей посещений.
Состояние браузера (idle)
Расширения могут получать статус активности браузера. К примеру, анализировать пользователь работает сейчас с браузером или отошел куда то.
Управлять дополнениями (Management)
Расширения могут управлять другими установленными расширениями и приложениями. Получать о них информацию или удалять.
Работа с адресной строкой (Omnibox)
Вопреки заголовку, работа с адресной строкой весьма ограничена. Вы можете задать ключевое слово, вводя которое в адресную строку пользователь сможет уже взаимодействовать с пользователем.
Иконка в адресной строке (Page Actions)
Вы можете создать иконку в адресной строке. И выполнять какие либо действия по ее нажатию. Либо через эту иконку уведомлять о чем то пользователей.
Настройка прокси (Proxy Settings)
Работать с настройками прокси в браузере еще одна из возможностей расширений.
Работа с вкладками (tabs)
Вот это уже интереснее. Вы можете получать информацию о вкладках, закрывать, открывать, перегружать, перемещать их. Отслеживать события, которые могут происходить с вкладками. И даже делать скриншот вкладки!
Речевой синтезатор (tts)
Относительно недавно у расширений появилась возможность произносить голосом любые текстовые фразы.
Работа с окнами (Windows)
По аналогии с вкладками вы можете работать и с окнами браузера.
Помимо описанных выше инструментов, которые зашиты в Google Chrome существует также возможность использовать и некоторые универсальные вещи...
Геолокация (Geolocation)
Вы можете работать с геолокацией. Получать информацию о местоположении пользователя.
LocalStorage
Возможность хранить данные на стороне пользователя в браузере.
Уведомления (Notifications)
Возможность создавать всплывающие окна уведомлений с нужной вам информацией.
Фоновые процессы (background)
Расширения могут висеть в фоне все время работы браузера и работать, не дожидаясь каких либо указаний от пользователей.
Content Scripts
Ваши расширения могут выполнять любые скрипты на любых внешних сайтах. Внедрять на них свои CSS стили.
Это достаточно обобщенная подборка того, что обычно могут делать расширения. О некоторых специфичных вещах мы пока что умолчали. Все эти возможности мы будет из урока в урок воспроизводить на отдельно созданных учебных расширениях. В нашем следующем уроке мы попробуем создать первое пробное расширение своими руками.
P.S. Кстати, не стоит пугаться, что расширения могут копаться в вашей истории и "печеньках". На каждый этот пункт им нужно специальное разрешение, которое видит пользователь при установке расширения.
P.S.S. Документацию по этим возможностям можно посмотреть здесь.