' +'' +'' +'' +'' +'' +'' +'' +'' +'' +'' +'')//-->
В этом материале рассмотрены технические аспекты работы расширения Календарь • RU, указаны отличия от оригинала и аналогов, приведены некоторые технические подробности по разработке.
В этой статье:
Основные технические отличия* расширения "Календарь • RU" от прототипа заключаются в следующем: * Указаны номера версий, с которой отдельные фичи введены, если не указано – есть во всех версиях.
Профессиональные праздники добавлены только для России, для других стран – только официальные праздники.
Гарантировано работает – смотрим номера версий браузеров в описаниях отдельных релизов аддона в "Истории версий". На более старых версиях проверяем самостоятельно (на Iron-17 уже проверялось – на нём не работает…:))
Автор в курсе, что по стандартам ISO разделение на недели должно происходить по четвергу, но с 1.1 красивше… :))
О функциональных отличиях расширения читаем в статье Календарь • RU : Нужен каждый день.
В коде используется только чистый JavaScript (ES5), неподдерживаемые в "старых" браузерах функции отсутствуют.
В интерфейсе применяются стили стандарта CSS2, неподдерживаемые в "старых" браузерах директивы отсутствуют.
В общем случае аддон работает только в момент вызова всплывающего (или откреплённого) окна и автоматически выгружается из памяти при его закрытии, не потребляет ресурсы браузера в неактивном состоянии. Также используется и функция быстрой выгрузки аддона из памяти после обновления данных для вывода на иконке расширения на тулбаре.
Единственным элементом интерфейса управления является кнопка расширения на тулбаре. Щелчок по этой кнопке вызывает всплывающее (или отдельное откреплённое) окно, содержащее все выводимые данные календаря и блок Настроек. Отдельной страницы Настроек, заданной в манифесте, нет (и не будет).
Для вызова функций расширения через кнопку значка на тулбаре применяется API chrome.browserAction.
Для хранения пользовательских настроек используется API chrome.storage. В текущей версии расширения в манифесте для него не требуются дополнительные разрешения, размер данных не превышает ограничения по умолчанию (5Mb).
Расширение "Календарь • RU" полностью русифицировано, для всех элементов интерфейса, сообщений и пунктов меню используется единственный язык – русский. Текстовые строки жёстко зашиты в код, другие языковые локализации не поддерживаются. Это сделано с целью упрощения кода расширения и для повышения его быстродействия в целом.
Аддон не имеет практических ограничений по версии браузера, используемые API могут работать в версиях 29+.
Исходный код НЕ обфусцирован, исключительно для удобства при возможных доработках и облегчения читаемости кода при его исследовании.