Урок №2 — Обзор возможностей системы расширений

В рамках нашей школы по созданию расширений для 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. Документацию по этим возможностям можно посмотреть здесь.

Другие новости

  • Kolyan01

    1-ый нах!!!

  • Mzxf

    На разрешения не смотрю, ставлю все подряд! Дайте больше уроков!

  • Mr Morfius

    Эти уроки именно то что мне нужно. Очень хочу сделать свой проект. На всех сайтах разрозненная информация. Тут все красиво и понятно. Продолжайте в том же духе. Для удобства можете с боку сайта там где меню сделать ссылку/раздел «для разработчиков», подменю «уроки расширений» .

  • John Migman

    Спасибо за отзыв. В меню вынесем. 

  • Аноним

    для разработчиков еще нужно упомянуть что межу страницами браузера и расширением можно взаимодейсивовать через windowDOM. Например таким образом можно вызывать из попуп окна функцию в фоновой странице и получить её результат и наоборот. по сути ьаким образом мы получаем сервер-клиент модель работы расширения, где браузер сервер а попуп окно клиен.

  • Вадим

     »получаем сервер-клиент модель работы расширения» — все время пользуюсь, но никогда не думал о такой интерпретации… Интересно.

  • Вадим

     Забыл добавить. «сервер-клиент модель»  - кстати говоря, в расширениях Opera это прописано в явном виде, через систему запросов!

  • Kolyan01

    Народ, может мне кто-нить прояснить: есть человек, утверждающий что, например, Винду, браузер ие9… НУЖНО часто переустанавливать. Якобы из-за того что они работают напрямую с железом и как-то что-то там накапливаются ошибки, которые плохо влияют на работоспособность… Один из веских аргументов был таков: Именно по это причине Хром и ФФ (и некоторые другие браузеры) обновляются так часто. Типа во время из обновления они как-бэ переустанавливаются… Короче есть кто знающий и понимающий в этом деле? Проясните, этот бред правда?

  • John Migman

    Если руки растут из правильного места, то винда и даже IE9 будет летать годами. 

  • Аноним

    Я подумал про хромось, по сути получается имеенно так.

    Про Оперу не знаю, но никакие запросы не замят DOMWindow, это просто, это удобно и не надо ничего придумывать.