GWT based Chrome extension

Доброго времени суток, однако прошел уже месяц с хвостиком с момента моего последнего опуса, но дабы не допустить возникновения паутины в собственном блоге хочу поделиться повествованием об освоении написания расширения для браузера Chrome.

Как обычно знакомство с чем-то новым и неизведанным является очень интересным и занимательным занятием, помимо этого еще и с присутствием “challenges” . Ближе к делу…

Итак в этот раз я взялся за написание плагина для Chrome. Я не буду описывать архитектуру API для написания расширений, т.к. заинтересовавшийся разработчик сможе ознакомиться с ней тут. Вкратце – плагин представляет собой файл-декларация плагина – manifest.json, background-html страницу (содержит общую логику расширения) и подключаемые js-файлы. Написание плагина на чистом JavaScript не представляет собой огромного интереса, в отличии от использования для этого GWT.

Как оказалось официальной поддержки Chrome extensions в GWT нет, но погуглив я наткнулся на кое-какую информацию по эьлму вопросу. В релиз GWT 2.0 включается расширение для Chrome Speed Tracer, которое написано с использованием GWT. Заложенные возможности к гибкому расширению с помошью GWT linker позволяют применять этот замечательный фреймворк очень широко.  Сделав чекаут проекта Speed Tracer я начал вникать в способ написания расширения. Как оказалось линкер в Speed Tracer не поддерживает ряд появившихся в новом API Chrome методов и типов, так мною были дописаны возможность подключать скрипты в background page, пости-инициализация подключаемых скриптов и немного доработан линкер до нужд моего расширения.

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

  • коммуникация между страницами и скриптами раширения – временно решена использованием паттерна Singleton;
  • логика перехвата событий должна находиться в подключаемых скриптах, т.к. они исполняются в контексте загруженной страницы.

На этом пока все, продолжение следует…

2 thoughts on “GWT based Chrome extension

  1. Согласен, что просто, но смысл в линкере – иметь возможность писать расширение, используя GWT и все его приемущества.
    P.S. мой екстеншен кое-чему уже научилься 😉

Leave a Reply

Your email address will not be published. Required fields are marked *