' +'' +'' +'' +'' +'' +'' +'' +'' +'' +'' +'')//-->
Актуализированный репринт авторской статьи с форума Ru-Board • [веб-архив] Дата публикации: 03.02.2014. Последнее изменение на форуме: 27.09.2015. ★ Материал репринта обновлён, дополнен и исправлен по состоянию на 07.02.2021.
NPAPI – Википедия Программный интерфейс подключаемых модулей Netscape (англ. Netscape Plugin Application Programming Interface, NPAPI) – кроссплатформенная архитектура разработки плагинов, поддерживаемая многими браузерами. PPAPI – Википедия Pepper API – кроссплатформенное свободное API для создания модулей для Native Client. Плагин Pepper API (англ. Pepper Plugin API, сокр. PPAPI) – кроссплатформенное API для защищённых технологией Native Client плагинов, основанное на NPAPI, но полностью переписанное. На данный момент используется в Chromium-подобных браузерах для запуска PPAPI-версии Adobe Flash и встроенной программы просмотра PDF-файлов. 12 августа 2009 на странице Google Code был представлен проект Pepper, связанный с разработкой плагина Pepper API, на которой было написано, что PPAPI – набор модификаций NPAPI для создания подобных плагинов более переносными и безопасными. Плагин был создан для лёгкой реализации запуска вне процесса. В дальнейшем целью проекта стало обеспечивание основы для создания полностью кроссплатформенных плагинов. Начиная с 13 мая 2010 года Chromium стал единственным браузером, поддерживающим новую модель плагинов. Mozilla Firefox не поддерживает Pepper, так как нет полной спецификации API за пределами её реализации в Chrome, которая была создана только для браузерного движка Blink. По состоянию на 2016 год Pepper поддерживается в Chrome, Chromium и браузерах на Blink, например – Opera.
NPAPI – Википедия
Программный интерфейс подключаемых модулей Netscape (англ. Netscape Plugin Application Programming Interface, NPAPI) – кроссплатформенная архитектура разработки плагинов, поддерживаемая многими браузерами.
PPAPI – Википедия
Pepper API – кроссплатформенное свободное API для создания модулей для Native Client. Плагин Pepper API (англ. Pepper Plugin API, сокр. PPAPI) – кроссплатформенное API для защищённых технологией Native Client плагинов, основанное на NPAPI, но полностью переписанное. На данный момент используется в Chromium-подобных браузерах для запуска PPAPI-версии Adobe Flash и встроенной программы просмотра PDF-файлов.
12 августа 2009 на странице Google Code был представлен проект Pepper, связанный с разработкой плагина Pepper API, на которой было написано, что PPAPI – набор модификаций NPAPI для создания подобных плагинов более переносными и безопасными. Плагин был создан для лёгкой реализации запуска вне процесса. В дальнейшем целью проекта стало обеспечивание основы для создания полностью кроссплатформенных плагинов.
Начиная с 13 мая 2010 года Chromium стал единственным браузером, поддерживающим новую модель плагинов. Mozilla Firefox не поддерживает Pepper, так как нет полной спецификации API за пределами её реализации в Chrome, которая была создана только для браузерного движка Blink. По состоянию на 2016 год Pepper поддерживается в Chrome, Chromium и браузерах на Blink, например – Opera.
Функционал некоторых расширений требует использование дополнительных плагинов (NPAPI), позволяющих решать задачи, которые невозможно реализовать на обычных JS. Такие плагины, как правило, пишутся разработчиком аддона именно под конкретное расширение и являются "локальными" – они "заточены" под определённый тип браузеров и не устанавливаются в систему (в отличие от общесистемных NP‑плагинов типа Adobe Flash, Java и др.).
До версии 31 включительно во всех версиях хром‑браузеров имелась поддержка этого типа плагинов и, соответственно, расширений на их основе. С января 2014 Google убрала поддержку таких плагинов в своём браузере* Chrome (что мы и видим, соответственно, начиная с версии 32). Что же касается плагинов PPAPI, наиболее известным является медиа‑плагин PepperFlash, распространяемый гуглом в "комплекте" со своим браузером.
* Уточнение: на текущий момент все новые версии Chromium-браузеров не работают с такими плагинами полноценно, хотя часть функционала иногда сохраняется. Но эта "часть" уже зависит от содержимого и функций конкретного плагина, грубо говоря – "лотерея", так как заранее неизвестно, что будет работать, а что – "отвалится" (из функций).
Тем не менее, в отдельных хромоклонах (в основном – китайских) сохраняется полноценная поддержка NP‑плагинов, что позволяет использовать в них большинство расширений с такими плагинами.
Отсюда ответ на вопрос "чем лично мне это грозит?" – в версиях гуглохрома 32+ расширения, применяющие функционал NPAPI, НЕ работают. В частности, отвалилась часть функций у известных расширений PigToolBox и Chrome Toolbox, не работает подавляющее большинство IETab'ов, нормально не работает* проигрывание видео через Adobe Flash. Со временем** подобные расширения будут просто выпилены из Google WebStore (новые не принимаются в "гуглозин" уже с сентября 2013).
* Уточнение: вернее сказать "проблематично работает", на текущий момент есть прямой запрет на использование Adobe Flash (несмотря на широкую распространённость этой технологии и использование её на множестве сайтов). Также нужно отметить, что проблемы при работе с этой версией флэша в хром‑браузерах часто возникали и раньше, до "эпохи полного отлома".
** С весны 2014, как говорится, "процесс пошёл" – примером может служить замена установщика расширения Chrome Toolbox на деинсталлятор. :/
…у "енд-юзера" примерно следующие:
…содержит ли расширение "неугодный" плагин: во избежание вопросов "вот тут рекомендуют, а у меня не ставится или не работает" – читаем внимательно описание на странице нужного вам расширения или скачиваем* установщик нужного вам аддона и самостоятельно изучаем содержимое CRX‑файла расширения перед установкой. Если в списке файлов присутствует хотя бы один *.dll, то с очень высокой вероятностью это и есть NPAPI‑плагин и такой аддон во всех новых версиях гугло‑хрома работать НЕ будет (более того – любой новый "хромоног" просто не даст поставить этот аддон**). Обновлённых же версий известных расширений, но уже с PPAPI‑плагинами (или его преемником*** NaCl), к сожалению, в массе не наблюдается…
* Можно вручную скачать расширение несколькими способами, распаковать и посмотреть содержимое.
** Есть, конечно, ещё и установка в режиме разработчика… …но увы – расширение и при этом всё равно полноценно не заработает.
*** Эта технология на текущий момент также считается "устаревшей" и практически не используется.
В версиях хром-браузеров 42+ поддержка NP-плагинов отключена по умолчанию, при попытке запуска даже Adobe Flash каждый раз выдаётся запрос на однократный запуск. Для отключения запроса и автоматического разрешения запуска таких плагинов можно применить ключ --enable-npapi или включить опцию chrome://flags/#enable-npapi.
С версии 45 поддержка NPAPI отключена полностью* и указанные ключ и флаг уже не работают (подробности). * В начальных билдах 45-й версии можно использовать ключ --enable-npapi-for-testing (в дальнейшем также удалён).
В общем и целом, во всех современных версиях "классических" браузеров на движке Chromium NPAPI плагины не поддерживаются от слова "совсем". Более того, с января 2021 года во всех таких браузерах полностью отключена поддержка последнего "могиканина", плагина Adobe Flash во всех его видах, включая PPAPI-версию (компания Adobe также прекратила подержку этого плагина).
На текущий момент, взамен отломанного простого и удобного функционала исполняемых плагинов, предлагаются отдельные решения (проще говоря – "костыли") на базе внешних модулей в виде различных узкоспециализированных "переходников", выпускаемых разработчиками под конкретные задачи.
Все эти решения не являются универсальными и не могут быть использованы многократно в разных расширениях по одной простой причине – все они нестандартны и чаще всего "заточены" под единственное браузерное дополнение. Положение осложняется ещё и тем, что в подобных случаях применяются самые различные методы построения, включая .NET и другие тяжеловесные фреймворки.
Во всей этой "смуте" есть и хорошая новость – несмотря на все запреты, даже в WebStore появляются отдельные расширения, разработчики которых сумели обойти все ограничения. Примером одного из первых решений такого рода может служить этот аддон (обсуждение – отсюда и далее, конечные варианты рабочих решений – тут).
Кроме того, сегодня есть и ещё один вариант использования "запрещённых" плагинов – в отдельных хромоклонах нормальная поддержка NPAPI сохраняется и в новых версиях, вплоть до 86 движка в китайском 360 Extreme Explorer. Да, придётся менять браузер, но если какой-то NPAPI плагин действительно необходим, это вполне оправданно.
В общем, не всё так уж плохо, при желании выход можно найти…