Программный интерфейс НПАПИ был разработан командой Netscape в 1995 году, с тех пор утекло много воды, хотя на протяжении 20 лет стандарт активно использовался.
Сегодня плагин морально устарел, из-за чего разработчики движка Chromium с 2015 года полностью прекратили работу с технологией. В Яндекс браузере NPAPI поддерживался ещё 1 год (до июля 2016 года), чтобы дать возможность разработчикам перейти на более современный PPAPI.
Сегодня стандарт не поддерживается ни одним распространённым браузером и плеером (Flash Player, Java).
Почему NPAPI заменили на PPAPI в Яндекс браузере
Сами разработчики обозревателя в своём официальном блоге заявили о продолжении работы с технологией после закрытия проекта со стороны ядра Chromium. Своими силами они встраивали NPAPI ещё на протяжении одного года, но в апреле 2016 года появилось второе заявление, в котором сообщается о завершении поддержки с июля.
Существует ряд серьёзных причин, которые заставили отказаться от НПАПИ в пользу ППАПИ:
- Давление со стороны других браузеров. Вслед за отказом поддержки Chromium и другие гиганты рынка приняли решение отказаться от стандарта;
- Сложность поддержки. Команде разработчиков Yandex обозревателя пришлось самостоятельно изменять ядро, что ведёт к лишним затратам времени;
- Все приложения массово стали отказываться от Unity Web Player, который являлся главной причиной использования NPAPI. Java самостоятельно отказались от устаревшего плагина от Netscape;
- Технология имеет уязвимости. По мере возрастающих возможностей злоумышленников данный интерфейс просто переставал соответствовать современных требованиям безопасности. Хранить в коде браузера потенциально уязвимый и опасный стандарт никто не хочет;
- Проблемы со стабильностью. Многие пользователи замечали зависания страницы веб-обозревателя или самого ПК во время игры. Иногда неисправности проявлялись нарушением обработки картинки;
- Низкая скорость работы. Игры совершенствуются, а вместе с этим повышается их объём и необходимые ресурсы для обработки данных. Через НПАПИ сложно обрабатывать большие потоки данных, а эффективность использования ресурсов оставляла желать лучшего;
- Занимает дополнительные ресурсы. Конечно, разработчики могли оставить поддержку обоих программных интерфейсов, но это потеряло смысл. В Яндекс браузере проанализировали использование технологии, и сказали об этом так: «сайты перестали даже пытаться использовать этот плагин».
Зачем нужно запустить NPAPI плагин от Netscape
Единственная существующая причина – только стандарт НПАПИ в Яндекс браузере взаимодействует с Unity Web Player, с выходом PPAPI работа над проигрывателем была прекращена.
Если разработчики приложения не успели своевременно перейти на Adobe Flash Player или другие современные аналоги, в Yandex browser не будет возможности запустить проигрыватель, по крайней мере без дополнительных действий.
Стандарт также использовался для визуализации анимации, реализации видеопроигрывателей и обработки PDF-файлов, но все перечисленные функции перенял приемник — PPAPI.
Если требуется поддержка старого плагина по одной из только что описанных причин, лучше использовать современный программный интерфейс. Его не нужно загружать отдельно, так как обозреватель имеет встроенную поддержку плагина.
Устанавливая Adobe Flash Player, проигрыватель уже поставляется с PPAPI.
Можно ли включить NPAPI в Yandex обозревателе
Запустить обработку устаревшего стандарта можно лишь одним способом – загрузить браузер, который содержит этот плагин. Активировать взаимодействие с НПАПИ не нужно, кроме тех обозревателей, где есть оба встроенных стандарта, так как автоматически предпочтение всегда отдаётся ППАПИ.
Самая сложная задача – найти сборку браузера, которая способна работать с плагином, так как на сайте разработчика нет старых версий обозревателя.
В сети часто распространяются вирусы под видом старых версий браузера, все элементы лучше предварительно проверять антивирусом. Нам потребуется версия до июня 2016 года, то есть с идентификатором 16.6 или меньше, в 16.7 уже нет поддержки NPAPI.
Мы прилагаем нужную версию браузера, если плагин не заработал, можно найти обозреватель самостоятельно.
Единственный способ включить поддержку NPAPI в Яндекс браузере:
-
- Скачиваем установочный файл (ссылка выше). Чтобы найти Яндекс обозреватель самостоятельно, который имеет НПАПИ плагин, рекомендуем использовать поисковые запросы вроде «скачать Яндекс браузер 6». Также подойдут версии 16.3, 16.2 или старая – 15.12.
- Удаляем текущую версию браузера. Действие важно для установки старого обозревателя в систему, иначе инсталлятор покажет, что в Windows есть новая версия программы. Шаг можно пропустить при использовании портативной версии, она становится в систему параллельно с новым Яндекс браузером.
- Нажимаем на Пуск, в строку поиска вводим «Программы и компоненты» и переходим по ссылке на элемент «Панели управления» (в Win 7).
- Находим элемент Yandex или на русском и жмём «Удалить».
- Выделяем флажок в окне с предложением удалить все пользовательские данные о работе программы.
- Нажимаем на Пуск, в строку поиска вводим «Программы и компоненты» и переходим по ссылке на элемент «Панели управления» (в Win 7).
- Отключаем подключение к сети, иначе во время инсталляции произойдёт обновление обозревателя и всё окажется бесполезным. (Также, чтобы наверняка защититься от обновления браузера, следует выполнить пункт «Как заблокировать обновления», представленный вот в этой статье)
- Делаем клик правой кнопкой мыши (ПКМ) по подключению и выбираем «Центр управления сетями…».
- Переходим в раздел «Изменение параметров адаптера».
- Нажимаем ПКМ по активному подключению и выбираем «Отключить».
- Делаем клик правой кнопкой мыши (ПКМ) по подключению и выбираем «Центр управления сетями…».
- Запускаем инсталляционный файл. По ходу процесса инсталляции подтверждаем соглашение, выбираем базовые настройки и другие параметры по необходимости.
- Открываем только что установленный браузер. Если использовали приложенный файл, следует открывать непривычный файл «browser.exe», а ярлык «Выйти в Интернет».
- Включение плагина. Действие не всем пригодится, так как не во всех старых версиях браузера есть возможность самостоятельно включать и отключать плагин NPAPI (по умолчанию плагин в старых версиях браузера активен и отключить его нет возможности), но все равно стоит проверить. Для этого переходим по ссылке browser://flags/#enable-npapi. Возле плагина NPAPI устанавливаем флажок «Запускать всегда».
- Включаем интернет, делаем то же, что и в третьем пункте, только выбираем вместо опции «Отключить» параметр «Включить».
Важное примечание! Нельзя заходить и проверять версию браузера, так как он может автоматически обновиться. Не рекомендуем вовсе заходить на страницу «О браузере».
Включить поддержку NPAPI в новом Яндекс браузере вместо PPAPI не представляется возможным. Единственный способ запустить игру на Unity Web Player – скачать версию обозревателя, которая взаимодействует с этим плагином (до 16.6). Сегодня плагин НПАПИ полезен исключительно ценителям браузерных игр, со всеми другими задачами справляется новый программный интерфейс ППАПИ.
Источник: https://GuideComp.ru/stoit-li-vklyuchat-podderzhku-npapi-v-yandex-brauzere-ili-perejti-na-ppapi.html
Как включить технологии Java и JavaScript в Яндекс.Браузере
В браузерах на движке Chromium поддержка Джава официально прекращена с 2016 года в связи с тем, что это устаревшая и уязвимая технология. Почти все вебмастера перевели свои сайты на другие технологии.
И теперь для запуска игр или сервисов не нужно скачивать и устанавливать дополнительное ПО. Но всё же ещё остались ресурсы, где требуется технология для запуска онлайн-игр, видео или сервисов.
В связи с этим у пользователей возникает вопрос, как включить Java в Яндекс.Браузере.
Содержание
- Инструкция
- Включение Джава
- Включение JavaScript
Инструкция
В последних сборках Яндекс.Браузера технология NPAPI полностью исключена из кода, и включить плагин Джава уже невозможно. В случае если у вас устаревшая версия Яндекс.Браузера, в которой всё ещё осталась поддержка Netscape Plugin Application Programming Interface (NPAPI) Java plug-in можно включить в настройках плагинов. Но для этого нужно скачать последнюю версию самой Джава:
- Отправляемся на официальный сайт Java.
- Кликаем по красной кнопке «Загрузить…».
- Далее жмём «Согласиться и начать…».
- После скачивания запускаем полученный файл.
- Следуем подсказкам мастера установки. Инсталлятор на английском языке, но в нём несложно разобраться. Кликаем сначала Install, затем Next, и в конце Close.
Так как включить Джава в последних сборках Яндекс.Браузера теперь нельзя, но вам нужно, чтобы обозреватель запускал апплеты, придётся поискать старую версию обозревателя, например для Windows XP.
Включение Джава
Далее нужно включить функцию на странице плагинов:
- Копируем ссылку browser://plugins/ и вставляем в адресную строку обозревателя.
- Нажимаем кнопку Enter.
- Если в списке есть Java, кликаем «Включить» и отмечаем пункт «Запускать всегда».
Если данного пункта в списке плагинов нет, значит у вас установлена последняя версия обозревателя, не поддерживающая Java.
Включение JavaScript
Язык программирования JavaScript используется практически на всех интернет-страницах. Делает их интерактивными.
Без JS пользователи не могли бы взаимодействовать с формами обратной связи, нажимать на кнопки, общаться на форумах и регистрироваться в личных кабинетах. По умолчанию поддержка Джава Скрипт включена в Яндекс.Браузере.
Но из-за вредоносной активности или вы сами случайно отключили её в настройках скрипты на сайтах работать не будут. Вернуть все можно так:
- Переходим в «Настройки» из основного меню обозревателя.
- Прокручиваем страницу до раздела «Сайты» и жмём «Расширенные настройки сайтов».
- В конце списка пункт JavaScript — переключаем маркер в положение «Разрешен».
- Там же можно задать исключения для определенных сайтов.
Источник: https://yanbrowser.ru/faq/how-to-enable-java-in-yandex-browser
Yandex plugins
Яндекс.Браузер изначально поставляется с несколькими плагинами в комплекте. Время от времени этот комплект может меняться по усмотрению разработчиков. Как правило, это плагины первой необходимости, но при желании можно установить дополнительные. О том, как включить плагины в Яндекс.Браузере и пойдет речь в данной статье.
Для того, чтобы перейти на панель управления плагинами, установленными в браузер, необходимо зайти в раздел «дополнения». Перейти в него можно либо на вкладке «табло», либо через основное меню. Перед вами откроется список плагинов, краткое описание и кнопка включения/отключения.
Если по каким-то причинам у вас не работает Flash плагин, то необходимо в адресной строке браузера ввести следующий адрес browser://plugins/ и нажать клавишу Enter. Перед вами откроется небольшой список системных дополнений.
В пункте Adobe Flash Player следует нажать на кнопку «отключить», а после «включить» и перезапустить браузер. Предварительно нужно установить самую свежую версию Adobe Flash Player, загрузить его можно на официальном сайте: adobe.com.
Не забудьте снять галочки напротив ненужных пунктов.
Если у вас Ubuntu Linux или подобный дистрибутив, то для того, чтобы запустить Flash в браузерах на базе движка Chromium, необходимо выполнить всего-лишь две команды в терминале. Запускаем терминал (горячие клавиши ctrl + alt + t) и по-очереди вводим две команды.
- Сначала: sudo apt-get install pepperflashplugin-nonfree
- Затем: sudo update-pepperflashplugin-nonfree —install (перед install двойной знак минус)
Если во время установки у вас был открыт браузер, его его следует перезапустить. Очень много расширений для Яндекс.Браузера вы можете найти по ссылке: addons.opera.com
www.ekant.ru
Все, что нужно знать о NPAPI в Яндекс браузере
Браузер от компании Яндекс разработан по технологии Хромиум, с единым программным интерфейсом типа Netscape Navigator (NPAPI). Но сегодня эта технология устаревает, и все больше современных браузеров переходят на новые плагины, которые обеспечивают более надежную безопасность пользователя в сети интернет.
Конечно, безопасность – важный аргумент, поэтому не всех web страницах присутствуют безопасные плееры, воспроизводящие контент, но все-таки они есть, и Яндекс оповестил своих пользователей, что он будет поддерживать эту технологию, пока все владельцы сайтов не перейдут на более высокий уровень безопасности своих пользователей.
Кроме всего прочего, технология и плагины NPAPI уже недостаточно скоростная и стабильная, как это необходимо в условиях сегодняшнего дня.
Включить плагин в Яндекс браузере
- Перейдите на страницу по ссылке.
- Загрузите расширение в свой браузер Яндекс.
- После установки нажмите на подсвеченную кнопку «включить».
- Перезапустите интернет обозреватель.
- Получите доступ к открытым (незащищенным) страницам Медео контента.
Почему некоторое видео невозможно просмотреть?
Политика Яндекс браузера относительно конфиденциальности весьма строгая, и если на сайте используется устаревшая технология, то пользователя могут и не допустить к просмотру контента.
Но в любом случае вы увидите предупреждение об опасности, которое содержится на web странице, и в этом случае пользователю предоставляется выбор – запустить или нет плагин NPAPI. Все зависит только от желания пользователя прослушать или просмотреть материал устаревшей технологии NPAPI, не обеспечивающей полной защищенности во время интернет серфинга.
Немного о плагине Unity
Эта технология используется в большинстве онлайн игр в социальных сетях, или web приложениях, и чтобы все открывалось и запускалось, необходим плагин Unity Web Player, работающий под управлением интерфейеса NPAPI. И хотя этот интерфейс признан устаревшим, но программисты компании Яндекс будут поддерживать его, пока последний экземпляр не исчезнет из всемирной паутины.
После перехода на страницу с подобным содержанием, нужно только кликнуть на предложение об установке, и плагин запустится на странице, а вы сможете наслаждаться игрой в социальных сетях.
brauzergid.ru
Всем привет. В сегодняшней статье, разберём вопросы касающиеся плагинов в Яндекс браузере. А именно: что такое плагин и для чего он нужен, как открыть плагин и как установить плагин в Яндекс браузере.
Что такое плагин в Яндекс браузере и для чего он нужен
Плагин это дополнение к браузеру в виде отдельного модуля, работающего совместно с браузером. Задачей плагина, является расширение функционала браузера.
- Простыми словами, это специальные программы выполняющие определённые функции в браузере, например воспроизведение видео.
- В отличие от расширений, они не имеют внешнего интерфейса.
- Как открыть плагины в Яндекс браузере
- Для того чтобы открыть плагины в Яндекс браузере, необходимо ввести в адресную строку browser://plugins после нажать Enter на клавиатуре.
Теперь вы знаете где находятся плагины в Яндекс браузере.
Как установить плагин в браузере Яндекс
Прямой установки плагинов в браузере Яндекс не предусмотрено, так как он изначально, имеет все необходимые для работы плагины. При необходимости подключения какого то нового плагина, браузер автоматически предложит установку.
tvojblog.ru
Добавление новых плагинов
Источник: https://seoblog.life/uchebnik/vordpress/yandex-plugins.html
Можно ли включить NPAPI в Яндекс.Браузере?
Существует довольно много различных дополнений, предназначенных для популярного среди русскоязычных пользователей браузера яндекс.
Поскольку многие сайты в прошлом использовали технологию Java NPAPI, позволяющую создавать разного рода контент, вроде плееров веб-содержимого, приложений и разного рода дополнений для браузеров, современные программы для веб-серфинга поддерживали данную технологию.
Серьезные перемены
Однако, для многих пользователей стало настоящей неожиданностью, когда разработчики программы заявили, что npapi яндекс браузер включить не представляется возможным. Подобное заявление представители Яндекса сделали в 2016 году, объяснив свое решение целом рядом факторов, делающих использование данной технологии нерациональным и даже опасным для безопасности компьютеров.
Среди причин, которые привели к столь серьезным последствиям, надлежит упомянуть:
- Низкую скорость работы, в сравнении с более современными технологиями;
- Огромное количество уязвимостей, с помощью которых злоумышленники могли легко взломать систему безопасности компьютеров и получить доступ к данным пользователей;
- Туманные перспективы развития и существенные ограничения этого программного движка.
Поскольку данные поводы нельзя оставлять без внимания, подобное решение компании Яндекс вполне разумно. Ведь большинство пользователей перешли на более современные технологии создания и воспроизведения интернет-контента, к которым и относится прежде всего, HTML-5.
HTML-5 и Яндекс.Браузер
Одной из наиболее продвинутых технологий, пришедших на замену устаревшему npapi, является HTML-5. Её популярность объясняется как высокой производительностью, так и заметно улучшенной в сравнении с устаревшим аналогом безопасностью.
Поскольку появление все новых вредоносных программ идет нарастающими темпами, а многие серьезные компании становятся жертвами хакерских атак, довод безопасности стал решающим и подтолкнул владельцев сайтов к поголовному переходу на новую технологию.
ВАЖНО! Тем не менее, существует ряд интернет-ресурсов, использующих старую технологию. В этом случае, следует отметить, что яндекс браузер подобный контент воспроизвести не сможет.
Это связано с тем, что как-либо запустить нужный плагин просто не представляется возможным в данной программе, ввиду чего, следует присмотреться к менее инновационным браузерам, еще не решившим полностью отказаться от этой технологии. К числу таких программ, можно отнести Internet Explorer, а также Safari.
Источник: https://userologia.ru/mozhno-li-vklyuchit-npapi-v-yandeks-brauzere.html
Проигрывание видео в браузере — Браузер. Помощь
Просмотр
Яндекс.Браузер умеет открывать видеофайлы со следующими расширениями: mp4, flv, swf, avi, webm, mpg, ogv, x-m4v, wmv, m4v.
Видеофайлы с расширениями mov и quicktime не поддерживаются.
Ограничение. Автоматический вынос видео включается, если вы запустили видео сами или оно играет со звуком. Автоматический вынос видео не включается в режиме Инкогнито. Автоматический вынос видео в отдельное окно
По умолчанию видео выносится в отдельное окно автоматически, когда вы переключаетесь на другую вкладку или программу. Если этого не случилось:
- Откройте видео в браузере.
- Наведите указатель мыши на верхнюю часть видеоплеера и нажмите значок .
Совет. Вы можете поменять расположение значка, перетащив его мышью в нужное место видеоплеера. Если вы хотите отключить автоматический вынос видео, в правом нижнем углу видеоплеера нажмите . Управление воспроизведением видео
Для быстрого управления используйте горячие клавиши.
Поставить на паузу / снять с паузы | Space |
Перемотать на 5 секунд вперед | → |
Перемотать на 5 секунд назад | ← |
Вы также можете замедлить или ускорить воспроизведение видео. Для этого нажмите и выберите из списка нужное значение.
Настройки выноса видео
Вы можете отключить кнопку выноса видео или автоматический вынос видео в настройках:
- В блоке Просмотр видео поверх других вкладок и программ отключите опцию Показывать на видеороликах кнопку для выноса видео или Автоматически открывать видео в отдельном окне.
Если владелец сайта запретил открывать файл в Яндекс.Браузере, файл загружается на компьютер пользователя. Чтобы открыть его в браузере, перетащите в окно браузера значок загруженного файла, появившийся справа от Умной строки, или нажмите клавиши Ctrl + O и выберите нужный файл в папке Загрузки.
Проверьте настройки, попробуйте отключить режим Турбо, блокировку flash-данных, включить или отключить аппаратное ускорение.
Проверьте настройки
Проверьте, не запрещено ли в настройках проигрывание Flash.
- Прокрутите страницу вниз и нажмите Расширенные настройки сайтов.
- В блоке Flash включите опцию Разрешен только для важного содержимого страницы.
- Нажмите Настройки сайтов.
- Перейдите на вкладку Запрещен.
- Проверьте, нет ли в списке сайта, на котором не воспроизводится аудио.
Отключите режим Турбо
Иногда проигрыванию аудио или видео мешает режим Турбо. Чтобы его отключить:
- Перейдите в блок Удобные инструменты.
Отключите блокировку flash-данных
Возможно, в браузере включено расширение, которое блокирует flash-баннеры и ролики. Чтобы отключить его:
- Отключите на время все расширения: .
- Если проблема исчезла, в блоке Безопасность в сети отключите расширение Блокировка флеш-данных.
Включите или отключите аппаратное ускорение
Попробуйте включить или отключить аппаратное ускорение:
- Если в блоке Производительность включена опция Использовать аппаратное ускорение, если возможно, отключите ее. Если опция Использовать аппаратное ускорение, если возможно отключена, включите ее.
- Перезапустите браузер, чтобы изменения вступили в силу.
Если проблема осталась, напишите в службу поддержки через форму обратной связи.
Если в браузере вместо видео отображается черный экран или дрожит изображение в онлайн-играх, видео постоянно тормозит, останавливается при нажатии на паузу или переходе в полноэкранный режим, попробуйте решить проблему одним из способов.
Измените настройку аппаратного ускорения
Попробуйте включить или отключить аппаратное ускорение:
- Если в блоке Производительность включена опция Использовать аппаратное ускорение, если возможно, отключите ее. Если опция Использовать аппаратное ускорение, если возможно отключена, включите ее.
- Перезапустите браузер, чтобы изменения вступили в силу.
Обновите драйверы вашей видеокарты
- Откройте папку Видеоадаптеры. Появится список видеокарт.
- Правой кнопкой мыши нажмите на названии вашей видеокарты.
- В контекстном меню выберите Обновить драйверы.
Если проблема осталась, напишите в службу поддержки через форму обратной связи. В письме укажите, что драйверы обновлены.
Если под Умной строкой появляется сообщение «Модуль Adobe Flash Player заблокирован, так как он устарел», обновите Flash Player. Для этого:
- Укажите вашу операционную систему.
- Выберите версию для Chromium с типом PPAPI.
- Следуйте дальнейшим шагам установки.
- Если возникли проблемы с установкой плеера, напишите в службу поддержки через форму обратной связи.
Яндекс.Браузер больше не поддерживает модуль NPAPI, на основе которого сделан Unity Web Player. Эта технология устарела, компания Unity также перестала поддерживать этот модуль. Подробнее об этом вы можете узнать в Блоге Яндекс.Браузера.
Установите новую, более безопасную версию Adobe Flash Player c поддержкой PPAPI.
Была ли статья полезна?
Предыдущая
Режим чтения
Следующая
Прослушивание аудио
Источник: https://yandex.kz/support/browser/working-with-files/video.html
Создание плагина для браузера с помощью NPAPI
NPAPI это набор API, позволяющий создавать плагины для Firefox, Chrome, Safari, Opera. В этой статье я хочу дать первоначальные сведения о создании плагина на базе NPAPI.
Будет приведен пример плагина под Windows, но и разработчикам на Mac и Unix статья будет полезной, т.к. описывает общий подход к созданию плагинов, использующих NPAPI.
NPAPI плагин это модуль, который «цепляется» к браузеру и отвечает за обработку определенного content type (например application/x-shockwave-flash).
О том как появился и менялся NPAPI вы можете прочитать на странице в Wikipedia
Полное описание API можно получить на странице Gecko_Plugin_API_Reference Для начала необходимо скачать XULRunner в состав которого входят заголовочные файлы, необходимые для создания плагина (includeplugin). Если вы работаете в Visual Studio — не забудьте добавить путь к файлам Include в VC++ Directories (пункт меню Tools -> Options -> Projects and Solutions -> VC++ Directories). Плагин представляет из себя модуль, экспортирующий следующие функции:
NP_GetEntryPoints – вызывается при загрузке плагина. С помощью данной функции браузер получает указатели на другие функции, содержащиеся в плагине, необходимые браузеру для работы с плагином.
NP_Initialize – вызывается при инициализации плагина. При вызове браузер передает указатели на свои функции, которые могут понадобиться плагину. NP_Shutdown – вызывается при завершении работы плагина.
Порядок вызова NP_GetEntryPoints и NP_Initialize может меняться в зависимости от браузера. В часности Chrome сначала вызывает NP_GetEntryPoints, затем NP_Initialize.
Давайте рассмотрим эти функции более продобно.
NP_GetEntryPoints
Прототип:
NPError WINAPI NP_GetEntryPoints(NPPluginFuncs* pFuncs)
В качестве аргументов передается указатель на структуру NPPluginFuncs typedef struct _NPPluginFuncs { // Размер структуры uint16_t size;
- // Версия
- // Вызывается при создании нового экземпляра плагина
- // Вызывается при удалении экземпляра плагина
- // Вызывается когда браузер хочет сообщить плагину о том, // что окно (в котором находится объект, созданный плагином) создано,
- // закрыто, изменило позицию или размер.
- // Вызывается для уведомления плагина о создании нового потока данных.
- // Вызывается для уведомления плагина о закрытии или удалении потока данных.
- // Вызывается для того, чтобы сообщить плагину полный путь // к локальному файлу связанного с потоком данных.
- // Вызывается для определения максимального размера данных, // которые готов обработать плагин.
- // Вызывается для передачи данных плагину.
- // Вызывается когда пользователь запрашивает печать страницы, // содержащей плагин.
- // Вызывается для обработки событий.
- // Вызывается после завершения URL запроса.
- // Устаревшее, более не используется.
- // Вызывается для запроса от плагина различной информации.
- // Вызывается для передачи плагину различной информации.
uint16_t version; NPP_NewProcPtr newp; NPP_DestroyProcPtr destroy; NPP_SetWindowProcPtr setwindow; NPP_NewStreamProcPtr newstream; NPP_DestroyStreamProcPtr destroystream; NPP_StreamAsFileProcPtr asfile; NPP_WriteReadyProcPtr writeready; NPP_WriteProcPtr write; NPP_PrintProcPtr print; NPP_HandleEventProcPtr event; NPP_URLNotifyProcPtr urlnotify; void* javaClass; NPP_GetValueProcPtr getvalue;
NPP_SetValueProcPtr setvalue;
} NPPluginFuncs; Структура помимо размера (uint16_t size) и версии (uint16_t version) содержит указатели на функции, реализованные плагином. Немного забегая вперед скажу, что NPP_ это префикс функций реализуемых плагином, дальше мы встретим функии начинающиеся с NPN_ — эти функции реализуются браузером. Вроде бы мелочь, но данное знание помогает лучше понять жизненный цикл плагина.
Не все из выше перечисленных функций могут использоваться плагином, я не нашел нигде информации о том, корректно ли присваивать не используемым функциям NULL, поэтому создал функции-заглушки, которые ничего не делают, а только возвращают значение означающее успешность вызова NPERR_NO_ERROR. Например для NPP_DestroyStreamProcPtr:
static NPError StubDestroyStream(NPP instance, NPStream *stream, NPReason reason)
{
return NPERR_NO_ERROR;
} NP_Initialize
Прототип для Windows:
NPError WINAPI NP_Initialize(NPNetscapeFuncs *aNPNFuncs)
Прототип для Unix: NPError NP_Initialize(NPNetscapeFuncs *aNPNFuncs, NPPluginFuncs *aNPPFuncs)
Вызывается при инициализации плагина. Функция должна вызываться браузером только один раз, до создания первого экземпляра плагина.
В качестве аргументов передается указатель на структуру NPNetscapeFuncs
typedef struct _NPNetscapeFuncs { // Размер структуры uint16_t size;
- // Версия
- // Выполнение GET запроса
- // Выполнение POST запроса
- // Получение блока данных из потока
- // Создание нового потока данных
- // Запись данных в поток
- // Удаление и закрытия потока данных
- // Отображение сообщения в строке состояния браузера
- // Получение строки «user agent»
- // Выделение памяти в адресном пространстве браузера
- // Освобождение памяти в адресном пространстве браузера
- // Освобождение указанного диапазона памяти
- // Перезагрузка всех плагинов
- // Создание нового GET запроса с возможностью получать уведомления о ходе его выполнения
- // Создание нового POST запроса с возможностью получать уведомления о ходе его выполнения
- // Запрос информации от браузера
- // Передача информации браузеру
- // Запрос на повторную отрисовку области рисования
- // Запрос на повторную отрисовку указанной области
- // Отправка сообщения на отрисовку плагину, не имеющему окна
- // Создание идентификатора из строки
- // Создание массива идентификаторов из массива строк
- // Создание идентификатора из числа
- // Проверка явялется ли идентификатор строкой
- // Преобразование идентификатора в строку
- // Преобразование идентификатора в число
- // Создание нового объекта
- // Уменьшение на единицу количества ссылок на объект
- // Освобождение объекта
- // Вызов метода указанного объекта
- // Вызов метода по умолчанию для указанного объекта
- // Выполнение скрипта в контексте указанного объекта
- // Получение свойства указанного объекта
- // Задание значения для свойства указанного объекта
- // Удаление свойства
- // Определение наличия свойства
- // Определение наличия метода
- // Освобождение памяти, выделенной под значение NPVariant
- // С помощью данной функции плагин может уведомить браузер об ошибке
- // Получение списка имен свойств и методов указанного объекта
- // Асинхронный вызов указанной функции в контексте потока плагина
- // Создание нового объекта
uint16_t version; NPN_GetURLProcPtr geturl; NPN_PostURLProcPtr posturl; NPN_RequestReadProcPtr requestread; NPN_NewStreamProcPtr newstream; NPN_WriteProcPtr write; NPN_DestroyStreamProcPtr destroystream; NPN_StatusProcPtr status; NPN_UserAgentProcPtr uagent; NPN_MemAllocProcPtr memalloc; NPN_MemFreeProcPtr memfree; NPN_MemFlushProcPtr memflush; NPN_ReloadPluginsProcPtr reloadplugins; NPN_GetJavaEnvProcPtr getJavaEnv; NPN_GetJavaPeerProcPtr getJavaPeer; NPN_GetURLNotifyProcPtr geturlnotify; NPN_PostURLNotifyProcPtr posturlnotify; NPN_GetValueProcPtr getvalue; NPN_SetValueProcPtr setvalue; NPN_InvalidateRectProcPtr invalidaterect; NPN_InvalidateRegionProcPtr invalidateregion; NPN_ForceRedrawProcPtr forceredraw; NPN_GetStringIdentifierProcPtr getstringidentifier; NPN_GetStringIdentifiersProcPtr getstringidentifiers; NPN_GetIntIdentifierProcPtr getintidentifier; NPN_IdentifierIsStringProcPtr identifierisstring; NPN_UTF8FromIdentifierProcPtr utf8fromidentifier; NPN_IntFromIdentifierProcPtr intfromidentifier; NPN_CreateObjectProcPtr createobject; NPN_RetainObjectProcPtr retainobject; NPN_ReleaseObjectProcPtr releaseobject; NPN_InvokeProcPtr invoke; NPN_InvokeDefaultProcPtr invokeDefault; NPN_EvaluateProcPtr evaluate; NPN_GetPropertyProcPtr getproperty; NPN_SetPropertyProcPtr setproperty; NPN_RemovePropertyProcPtr removeproperty; NPN_HasPropertyProcPtr hasproperty; NPN_HasMethodProcPtr hasmethod; NPN_ReleaseVariantValueProcPtr releasevariantvalue; NPN_SetExceptionProcPtr setexception; NPN_PushPopupsEnabledStateProcPtr pushpopupsenabledstate; NPN_PopPopupsEnabledStateProcPtr poppopupsenabledstate; NPN_EnumerateProcPtr enumerate; NPN_PluginThreadAsyncCallProcPtr pluginthreadasynccall;
NPN_ConstructProcPtr construct;
NPN_GetValueForURLPtr getvalueforurl;
NPN_SetValueForURLPtr setvalueforurl;
NPN_GetAuthenticationInfoPtr getauthenticationinfo;
} NPNetscapeFuncs; NP_Shutdown
Прототип для Windows:
void WINAPI NP_Shutdown(void);
Прототип для Unix: void NP_Shutdown(void);
Вызывается при выгрузке плагина. В данной функции плагин должен освободить выделенную память, разрушить созданные объекты и т.д. Данная функция вызывается последней, уже после того как будут удалены все экземпляры плагина.
Для создания плагина необходимо создать DLL, реализовать перечисленные экспортируемые функции и можно начинать эксперементировать. Одно важное замечание — плагин не будет загружаться браузером, если в его информации о версии отсутствует строка MIMEType, определяющая content type, обрабатываемый плагином. В файле ресурсов она выглядит так:
Источник: https://habr.com/post/73003/