Как стать автором
Обновить

Расширение, сворачивающее Chrome в трей

Время на прочтение2 мин
Количество просмотров8.3K
Выпустил в свет новую версию расширения (1.0.1.24), позволяющего сворачивать окна Google Chrome в трей. Постарался выполнить все пожелания и устранить все замечания, озвученные в предыдущем посте.



UPD
Расширение работает только с 4-й версией Google Chrome. Получить ее можно переключив канал для получения обновлений на Dev с помощью утилиты Google Chrome Channel Changer

Расширение для Google Chrome
Исходники проекта

Так же исходный код доступен через SVN

Новое
  • Добавлена страница с настройками расширения
  • Появилась возможность скрывать иконку, если нет ни одного свернутого окна
  • Добавлены настройки, позволяющие задать реакцию на нажатие клавиш мыши (левая, правая, двойной клик) по иконке в трее (контекстное меню, восстановить окна, создать новую закладку, создать новое окно)
  • Новые, опциональные, элементы контекстного меню — Новая закладка, Новое окно
  • Длина элемента контекстного меню ограничивается 48-ю символами

Исправлено
  • Устранена проблема, при которой иконка исчезала из трея, если Windows Explorer был перезапущен
  • Устранена проблема, при которой контекстное меню не исчезало после появления до тех пор, пока не был выбран какой-либо пункт меню

Хотел добавить в новой версии возможность отображения закладок в контекстном меню, но когда код уже был почти готов — выяснилось, что название закладок, на которых происходит загрузка страницы, в процессе вызова скрипта, определяется как undefined. Отправил информацию разработчикам, как только исправят — добавлю возможность выбора закладок.

Для разработчиков


NPAPI плагин был дополнен кодом, для взаимодействия с JScript на странице. Через JScript плагин получает уведомления о создании новых окон, закрытии окон, изменении настроек и т.д.

В процессе разработки был приятно удивлен, выходом нового билда Dev версии (4.0.223.9), в котором появилась кнопка Options, для расширений, использующих раздел options в манифесте. Оказалась как нельзя кстати.

Так же в новой версии заработало взаимодействие расширений друг с другом. Если вы хотите изменять иконку в трее из стороннего расширения вы можете добавить следующий код:

// Подключаемся к расширению
// первый параметр - идентификатор расширения
// второй параметр - имя порта, прослушивающего сообщения

var port = chrome.extension.connect("ppkfenalijoglfhgpchdegciehdlinkh", {name: 'minimize-to-tray'});
// Отправка сообщения, с указанием пути к иконке
// пустой param (param: '') - установить первоначальную иконку

port.postMessage({command: 'SetIcon', param: 'ErrorMsg.ico'});


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

Нужна помощь


Нужен человек, хорошо владеющим английским, для сопровождения страницы проекта на Google Code. Работы не много — перевести небольшую инструкцию (в процессе написания) и переодически переводить список изменений, при выпуске новой версии.

Как всегда с радостью выслушаю пожелания и замечания.
Теги:
Хабы:
Всего голосов 12: ↑5 и ↓7-2
Комментарии21

Публикации