Native client что это за плагин в яндекс браузере

Обновлено: 07.07.2024

Наша жизнь все больше перемещается в Сеть. Браузер стал главной программой на ПК, а Гугл вовсю штампует ноутбуки с Chrome вместо полноценной ОС. Казалось бы, в этих условиях перспективы обычных, не веб-ориентированных языков программирования крайне сомнительны. И тем не менее нас, старых добрых хардкорных программистов на си приплюснутом, еще рано списывать на свалку истории — мы все еще получаем кучу денег :), потому что без нормального машинного кода до сих пор никто не обходится.

Потребность в запуске нативного кода в браузере появилась не на пустом месте. Как бы ни старались разработчики JavaScript и HTML 5 движков, производительность их творений не выдерживает конкуренции с обычным кодом на C или C++. Если нам нужно показать крутую графику или поразить окружающих высококачественным звуком, то типичными инструментами веб-разработчика подобное реализовать затруднительно. Именно это и стало одной из основных причин для появления технологии Native Client от Google.

Что такое Native Client

Ребята из Гугла начали свой нелегкий труд над NaCl в далеком 2008 году. Задачи, которые они ставили перед собой, были сложны и амбициозны. Первым делом надо было обеспечить легкую переносимость legacy кода в NaCl. Это была фактически первопричина всей этой затеи. Если у нас есть куча старого и не очень кода на плюсах, который работал сугубо на десктопах, и мы вдруг решили, что пора осваивать веб, то нам не надо учить новые языки программирования и технологии, а достаточно лишь портировать имеющийся код на Native Client платформу.

Но даже если мы и готовы переписать все с нуля на незнакомых нам языках, не факт, что у нас выйдет то, что мы ожидали. Показывать качественную 2D- и 3D-графику, использовать многопоточность, да и вообще быть ближе к железу у нас ну никак не выйдет. Это была вторая цель, которую преследовала Google. Кроме того, как я уже сказал, никто не отменял относительно низкую производительность скриптовых языков в браузере.

Ко всему прочему, умные парни из Google подумали и о безопасности пользователей. Весь нативный код выполняется в двойной (!) песочнице, что позволяет блондинкам и прочим продвинутым личностям не бояться забагованных приложений и атак злых вирусов.

Ну и на десерт у нас платформонезависимость. Да-да! Мы можем написать плюсовый код, и он будет работать на Windows, OS X и даже, не побоюсь этого слова, Linux. А вишенкой на этом десерте будет поддержка x86- и ARM-архитектур.

В 2011-м Гуглец включил поддержку NaCl в Chrome. Другие браузеры, к сожалению, пока не поддержали инициативу интернет-гиганта. Старожилам интернета в голову невольно могут прийти воспоминания об ActiveX, который и ныне здравствует (в кругу любителей IE), но, в отличие от технологии Майкрософт, Native Client распространяется с открытым исходным кодом под новой лицензией BSD. Да и над безопасностью в NaCl подумали лучше.

GameDev уже вовсю штампует игрушки для NaCl

Для чего можно использовать Native Client

На практике Native Client можно использовать в первую очередь для запуска игрушек в браузере. Собственно, первый опыт уже есть — под Google NaCl портировали Quake. Да, да, ту самую кваку 1996 года выпуска, в которой ты провел столько лет, разрубая жирных огров саперной лопаткой (если ты не знаешь, как зарубить лопатой вооруженного гранатометом и бензопилой огра, напиши мне) и разрывая в клочья зомби из рокетлаунчера.

Исполнение машинного кода в браузере отлично поможет разгрузить сервер. Например, если у нас есть онлайн-сервис для конвертации видео в разные форматы, то алгоритм работы с ним должен выглядеть примерно так: пользователь загружает видео на сервер, долго ждет, пока наш мощный CPU перелопатит файл, выбрасывая в атмосферу много калорий тепла, а потом счастливый юзер скачивает результат с нашего сервера. Но если мы перенесем конвертор с сервера на клиент, то мы сразу уберем нагрузку с нашего железа и нехило расчистим интернет-канал, который за «умеренную» плату предоставил нам хостер. Да и пользователь будет доволен — в среднем конвертация должна пройти быстрее, так как сотни мегабайт туда-обратно по сети не гоняются. А для юзеров с паранойей можно с гордостью заявить, что их драгоценные personal data целиком обрабатываются только на их ПК. Это, кстати, актуально и для корпоративного сектора.

Как это работает

Native Client — это общее название для набора разнообразных программных компонентов, которые работают вместе для обеспечения безопасного функционирования C++ кода в вебе. На высоком уровне NaCl состоит из тулчейна (компилятора, линкера и так далее) и рантайм-библиотек, которые встроены в браузер и позволяют нативному коду безопасно работать с нужными API.

Для переносимости приложений между разными архитектурами существует расширение Portable Native Client (PNaCl). Отличие его заключается в том, что при компиляции код транслируется в промежуточное представление, а уже после запуска на той или иной платформе браузер переводит это представление в машинный код.

Для обеспечения безопасности Гугл сделал две вещи. Первая — это специальный набор API, с которым может работать код, выполняющийся под NaCl. Нативный модуль не должен пытаться выйти за пределы разрешенного API, вмешиваться в работу стороннего кода или браузера.

Второй важный момент, обеспечивающий беззаботную жизнь для пользователей Native Client, — это специальный анализатор кода, который должен удостовериться, что приложение не пытается сделать ничего противоправного.

Как взаимодействуют между собой модуль NaCl и браузер

Кроме того, NaCl-модули всегда запускаются в процессах с ограниченными правами. Эти меры предосторожности позволяют говорить о двойной песочнице для нативного кода, работающего в браузере.

Пишем Hello NaCl

Теперь у нас есть представление о Native Client, и нужно пробовать написать что-нибудь полезное. или не очень. Мы будем делать Hello World, ну или Hello NaCl.

Для начала нужно скачать и установить Native Client SDK. Ссылку на страницу загрузки ты найдешь во врезке. Там же будет и инструкция по установке. Скажу лишь, что обязательно будет нужен Python 2.7 и make.

Вместе с SDK идет простой веб-сервер, который может хостить приложения на localhost. Самый простой путь запустить его — это выполнить следующие команды:
$ cd pepper_$(VERSION)/getting_started
$ make serve
SDK может содержать в себе несколько разных версий, правильную нужно подставить вместо $(VERSION). Также можно использовать любой другой веб-сервер. PNaCl включен по умолчанию в версии хрома 31 и старше. Но нужно следить, чтобы выбранная версия SDK поддерживалась установленной версией Chrome.

Великий и могучий Гугл любит преданных разработчиков и потому любезно предоставил пример с минимальным кодом для создания NaCl-модуля. Лежит этот код в папке pepper_$(VERSION)/getting_started/part1 и состоит из нескольких файлов. Первый — это index.html. В нем находится HTMLLayout и JS-код для взаимодействия с плюсовым модулем. Если внимательно присмотреться, то можно заметить файл с расширением nmf, а точнее, hello_tutorial.nmf. Это манифест, который указывает на нашу HTML, NaCl-модуль и служит вместилищем дополнительных настроек для тонкого тюнинга.

Официальная страница Native Client

Заключение

Гугл придумал полезную штуку. Жаль, что пока никто, кроме «корпорации добра», не поддержал Native Client платформу. Достаточно высокая производительность является преимуществом по сравнению с Java, апплеты которой также могут выполняться в браузере, а высокий уровень безопасности уделывает ActiveX от Microsoft. Будем ждать, пока Chrome захватит мир или другие разработчики браузеров внедрят в свои творения Native Client.


Плагин Widevine Content Decryption Module (Widevine CDM) добавлен в браузер для поддержки Encrypted Media Extensions (EME) API, который в свою очередь появился в спецификации HTML5 для работы с DRM (технические средства защиты авторских прав).


А теперь простыми словами.

Welcome to Native Client

Владельцы аудио- и видео-контента хотят транслировать его в сети средствами HTML5, но не хотят давать право его копировать. Для этого организация W3C добавила EME в спецификацию HTML5. А на стороне браузера поддержкой этого дела должен заниматься специальный плагин (в случае с Google Chrome, это Widevine CDM).

Другого мнения придерживается Brendan Eich, создатель языка Javascript и технический директор Mozilla.

По его словам, решение поддержать EME подрывает открытость Web и ущемляет права пользователей. А еще он считает, что EME открывает дорогу для появления бесконечного числа нестандартизированных CDM-плагинов, которые по сути являются аналогами ActiveX и создаются под конкретные ОС.

Кстати, Widevine CDM не является частью проекта Chromium, а представляет из себя такой же закрытый плагин Google, как и Flash (PPAPI) и PDF Viewer. Т.е. встраивается исключительно в Chrome. В мобильную версию Google Chrome плагин встроить планируют в 32 версии.

Строго говоря, Google не позиционировало свою технологию Native Client как платформу для Rich Internet Applications, но по формальным признакам она вполне вписывается в этот класс ПО.

В отличие от JavaFX или Silverlight, в этой технологии нет компиляции в байт-код и какой-либо виртуальной машины. Была создана среда выполнения, позволяющая запускать обычные, «родные» для этой платформы программы в безопасном для данной системы окружении.

Отключаем плагины и ускоряем Google Chrome

Разработчики идеально выдержали модель «песочницы».

Во избежание взаимодействия Native Client непосредственно операционной системой весь код исполняется в отдельном, изолированном контейнере. Это позволяет модулю использовать системные ресурсы, но в то же время ограждает ОС от возможного случайного или злонамеренного повреждения.

В целом Native Client (NaCL) состоит из контейнера, играющего роль песочницы, и среды исполнения (runtime) нативного кода. Третьим элементом выступает плагин для веб-браузера. Для коммуникации между браузером и NaCL-модулем предоставлены два варианта: simple RPC-интерфейс (SRPC) и давно известный Netscape Plugin Application Programming Interface (NPAPI).

Писать модули для Google Native Client предполагается на любом компилируемом на данной системе языке программирования.

Native Client распространяется под лицензией BSD, имеет реализации для различных браузеров и платформ.

Вам также могут быть интересны следующие статьи:


Для начала напомним, что такое обычный NaCl.

От браузера к ОС: что такое Native Client и чем он может быть полезен?

Можете, кстати, обратить внимание, что плагин NaCl встроен в браузер и отображается на странице chrome:plugins.


К сожалению, NaCl не дает возможность подготовить приложение, которое будет работать на любой платформе. В результате разработчики должны компилировать исполняемые nexe-модули под каждую архитектуру. Собрать по модулю на каждую платформу еще можно, но как их распространять? Особенно это актуально, если веб-приложения встроены в сайт, а не устанавливаются из того же Chrome Web Store.

PNaCl решает эту проблему и позволяет создавать действительно портативные и независимые от архитектур приложения. Как это происходит? Процесс компиляции разбивается на два этапа:

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

В результате первого этапа разработчик получает специальный pexe-модуль, который можно использовать в приложениях также, как и любые другие HTML, JS и CSS вставки. Этот же компонент можно распространять через сайт.

А вот второй этап уже происходит в браузере. Chrome сам преобразовывает байткод в нативный код, который будет актуален для конкретной платформы и ОС.

Чего не хватает веб-браузерам, не считая утопической стопроцентной совместимости? Увы, скоростей. Даже с учётом всех мыслимых инноваций и модификаций последних лет - революционных Javascript-движков, использования GPU, предварительного рендеринга страниц, новых протоколов (слышали про SPDY?) и прочего подобного - скорость исполнения веб-приложений на порядки медленней той, что обеспечивает любая нативная программа, выполняемая непосредственно микропроцессором. Вот здесь-то и вступает в игру NaCl.

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

Фокус объясняется просто: Native Client - это "песочница", внутри которой работают программы, написанные на C/C++ и других классических языках, компилируемых непосредственно в машинный код. Но замкнутые в своём участке памяти, NaCl-приложения общаются с внешним миром только через программный интерфейс, связывающий их с Javascript-движком браузера. Поэтому не имеет значения, в какой операционной системе идёт работа, важно лишь для какого процессора они скомпилированы (сейчас NaCl-программы могут быть в инструкциях x86 и ARM).

Native Client часто сравнивают с ActiveX, ставшей настоящим кошмаром IT. Но тот, кто знаком с новым проектом не понаслышке, утверждают, что правильной аналогией будет не ActiveX или Java, а скорее VMware в браузере: для NaCl нет нужды писать новые приложения - можно адаптировать уже существующие!

Native Client часто сравнивают с ActiveX, ставшей настоящим кошмаром IT. Но тот, кто знаком с новым проектом не понаслышке, утверждают, что правильной аналогией будет не ActiveX или Java, а скорее VMware в браузере: для NaCl нет нужды писать новые приложения - можно адаптировать уже существующие!

Поскольку речь идёт об исполнении непроверенного машинного кода, полученного извне, вопрос обеспечения безопасности выходит на первый план. Можно ли гарантировать, что NaCl-программа не навредит системе, где она исполняется (почистив жёсткий диск, украв ценную информацию и пр.)? Авторы уверены, что это возможно.

Native Client формирует три степени защиты. Во-первых, перед исполнением код подвергается анализу на предмет выявления потенциально опасных последовательностей. Во-вторых, программа изолирована от других приложений аппаратно, средствами микропроцессора. В-третьих, связь с окружающим пространством организована с помощью Javascript, а значит и воспользоваться NaCl сможет только теми ресурсами, которые доступны Javascript-программам. Наконец, исходные тексты опубликованы под свободной лицензией, что само по себе добавляет уверенности.

Native Client ценен не только собственными уникальными свойствами, но и наличием открытого, оформившегося API (Pepper), посредством которого он увязывается с элементами HTML5. Возможность гибко, стандартным образом вписать NaCl-программы в существующую веб-архитектуру, предположительно, даст толчок лавинообразному росту числа таких приложений. А простота переноса существующих наработок в среду Native Client (особенно легко портируются линуксовые программы, а системные библиотеки даже не требуют изменений в коде) позволит не изобретать велосипед.

Важность текущего момента в том, что эксперименты завершены и начата практическая стадия. Native Client незримо присутствует в Chrome уже на протяжении нескольких версий - в виде тестовой опции, активировать которую необходимо вручную. Начиная с версии 14, стабильный релиз которой ожидается в сентябре, NaCl-среда будет активирована по умолчанию, что сразу же расширит список её пользователей с узкого круга разработчиков до минимум нескольких миллионов рядовых сетян (Chrome сейчас третий по популярности браузер в мире).

Помимо прочего, Native Client стал ещё и бесспорно уникальной функцией браузера Chrome. В условиях жесточайшей конкуренции, когда наткнуться на оригинальную идею - счастье, этот факт трудно переоценить

Помимо прочего, Native Client стал ещё и бесспорно уникальной функцией браузера Chrome. В условиях жесточайшей конкуренции, когда наткнуться на оригинальную идею - счастье, этот факт трудно переоценить

Какими будут NaCl-программы? Теоретически, на их плечи лучше всего взвалить обязанности, для которых требуется обработка больших объёмов данных в кратчайшее время. Вот почему ожидается, что основными областями применения будут мультимедийные функции браузеров и игры (к примеру, Google реализовала так встроенный в Chrome PDF-вьюер).

Однако по факту самым востребованным свойством Native Client стала его независимость от операционных систем. NaCl-программа без модификаций и настройки работает в MS Windows, Mac OS X, Linux и Chrome OS. Правда, список приложений пока невелик (см. официальный сайт), но уже есть интересные сторонние разработки (например, NaClBox, позволяющий запускать DOS-игры в браузере).

Ближайшее будущее Native Client связывается с двумя тенденциями. Первую должны сформировать разработчики прикладного софта, которые с помощью NaCl могут сравнительно легко переносить имеющиеся наработки в Сеть и таким образом наделять их кроссплатформенностью. Подать пример собирается лично Google, где надеются со временем превратить сам браузер Chrome в приложение NaCl (а значит и уменьшить хлопоты по адаптации к разным ОС, и усилить защиту, поскольку браузер будет работать в закрытой "песочнице").

Другую тенденцию сформируют пользователи, требуя поддержки NaCl-приложений в браузерах, конкурирующих с Chrome. Поскольку исходники открыты, ничто кроме идеологических соображений не должно помешать проникновению Native Client в Firefox, Safari, Opera и Internet Explorer. Ожидается, что это произойдёт с участием создателей браузеров или без них (при помощи плагинов).

Наконец, в отдалённой перспективе Native Client может сыграть важную роль в становлении облачной Chrome OS - где отныне возможен запуск приложений, едва ли хоть в чём-то уступающих программам для классических операционных систем. И здесь скрыт самый жирный плюс этой оригинальной разработки. Да, сторонники Native Client, безусловно, большие оптимисты. И верить им или нет, решать вам. Но в любом случае новинку стоит оценить лично. Ведь если ожидания оправдаются, резко и необратимо изменятся не только браузеры, но и весь мир вычислительной техники: браузеры станут полным эквивалентом операционных систем и фундаментом для обновлённой софтверной индустрии

плагины Яндекс.Браузера

Модули расширяют функциональные границы обозревателей, в том числе и Yandex. По умолчанию многие из них активированы, однако бывают случаи, когда плагин отключается вследствие какого-либо сбоя, что сказывается на его работе. Рассмотрим, как включить плагин в Яндекс Браузере.

Кратко о плагинах

По-другому плагины ещё называют модулями. Это небольшие программы, которые, так же как и дополнения, встраиваются в браузер для расширения его функциональных возможностей. Отличие между ними в том, что плагины не имеют своего интерфейса.

Что именно они дают?

  • Возможность смотреть видео и слушать музыку.
  • Совершенствование работы веб-служб.
  • Просмотр файлов в формате PDF и многое другое.
Пользователь может обновить, удалить, отключить или включить плагины, предусмотренные обозревателем. В данном случае будут рассмотрены плагины в Яндекс Браузере.

Где найти модули?

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

Способ № 1

1.Перейти в Настройки через меню обозревателя (иконка с тремя горизонтальными линиями в правом верхнем углу). Дойти до конца страницы и открыть раздел «Показать дополнительные настройки», который будет подсвечен голубым цветом.

2. В блоке «Личные данные» щёлкнуть по первой кнопке «Настройки содержимого».

Настройки содержимого

3. Перейти в раздел «Плагины», а затем по ссылке «Управление отдельными плагинами».

Управление отдельными плагинами

Откроется новая вкладка, в которой вы увидите установленные плагины.

список плагинов

4. Чтобы узнать больше информации о модуле, кликните по кнопке «Подробнее».

данные плагины

Способ № 2

Чтобы быстро перейти на страницу, на которой можно посмотреть плагины, в строке обозревателя вводим адрес: browser://plugins. Таким вот образом можно сразу попасть в окно со списком плагинов в Яндекс Браузере.

адрес: browser://plugins

Когда вам потребуется определённый плагин для просмотра содержимого страницы или же обновление устаревшего модуля, обозреватель вас об этом сам оповестит, предложив тут же его скачать и установить.

Одним из главных плагинов считается Flash Player. Скачивать его нужно на официальном ресурсе, как и все другие программы. Система сама вас переведёт на безопасный сайт. Нужно только нажать на кнопку «Установить».

Если системе требуется обновить модуль, в верхней части экрана вы увидите оповещение:

обновление модуля

Нажмите на «Обновить модуль». Лучше сделать это как можно раньше, чтобы браузер смог дальше функционировать в прежнем режиме.

Включение и отключение

Что делать, если вдруг возникла острая необходимость включить определённые плагины в Яндексе? Можно ли, наоборот, отключить плагины, которые тормозят работу обозревателя? Исполнить всё это легко.

  1. Перейти в меню плагинов любым из способов, указанных выше.
  2. Кликнуть по «Включить», если плагин не работает, или «Отключить», если необходимо приостановить его работу.

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

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

Как удалить?

Вопрос должен звучать по-другому: можно ли удалить модуль? Такой возможности у пользователя нет. Удаление модулей из системы обозревателей – дело разработчиков. Происходит это, как правило, в связи с тем, что плагины устаревают. Вместо них появляется более современные решения. Например, NPAPI. Этот плагин уже не поддерживается. Сейчас вместо него используют его усовершенствованную версию – PPAPI.

Еще один пример – Unity Web Player. Этот модуль уже нельзя подключить к Яндекс Браузеру как дополнение или активировать в опциях как интегрированный модуль.

Плагины и блокировка рекламы

Реклама на сайтах мешает большинству пользователей. Какие есть дополнения для её блокировки?

Яндекс Браузер в прошлом году запустил новую тестовую функцию в версиях для Android. Каждый пользователь мобильного браузера найдёт в настройках строку "Скрыть мешающую рекламу".

меню

В Дополнениях Яндекс Браузера вы также найдёте расширение «Блокировка флеш-баннеров и видео». Настройка этих дополнений сводится к изменению списка фильтров, а также к его отключению и включению на определённых страницах.

Однако используйте какой-то один плагин, иначе программа будет зависать.

Обходим блокировку на сайтах с FriGate

Некоторые ресурсы могут быть недоступны пользователям по тем или иным причинам. В них мы углубляться не будем. Скажем лишь одно: блокировку можно легко обойти с уже встроенным в обновлённый Яндекс Браузер плагином по имени FriGate. Он использует прокси-сервер для доступа к запретным сайтам.

Открываем вкладку «Дополнения». Ищем расширение и ставим на положение «Вкл».

включение прокси

Ошибки в работе плагинов

Как мы уже подчеркивали, главным модулем в обозревателе является Flash Player. Без него не было бы проигрывания видео.

Каким бы надёжным не был Яндекс.Браузер, в его работе также возникают сбои. Одна из распространённых проблем – ошибка с флешем. Иногда при попытке запустить в браузере видео или игру, появляется серое окно с уведомлением, что не удалось загрузить плагин. Почему так происходит?

ошибка загрузка

Проблема, скорее всего, связана с тем, что в компьютере уже есть другой Flash Player (устаревшая версия, которая была установлена для работы других обозревателей). Происходит конфликт одновременно двух работающих плееров. Что предпринять в такой ситуации?

Проверьте, стоит ли у вас актуальная версия
1.Зайти в Меню и в выпадающем списке нажать на пункт «Дополнительно».

2.Далее, выбрать «О браузере».

3.Если во вкладке будет кнопка «Обновить», то кликаем по ней. Это означает, что у вас стоит неактуальная версия браузера. Отсюда могут, естественно, возникать проблемы и с другими модулями. Загружается обновление быстро и тут же устанавливается.

запуск обновления

4.Нажать на «Перезапустить».

перезапуск

статус текущей версии

Избавляемся от устаревшего плагина

Ели вы пользуетесь только Яндексом на своём ПК, вы вправе удалить плагин Adobe Flash Player, установленный ранее.

1.Запустить Панель управления через Пуск или иным образом.

2.Найти радел «Удаление программ».

Панель управления

3.Отыскать Adobe Flash Player и удалить его. Перезапустить браузер.

список ПО

Чистим кэш и историю обозревателя

Часто плагины для Яндекс Браузера не запускаются должным образом на сайте из-за переполненного кэша. Произвести чистку вы можете посредством специальных программ, например, CCleaner, или же через инструменты самого браузера. Рассмотрим второй вариант.

1.Зайти в Настройки браузера.

настройки

2.Дойти до конца страницы и нажать на кнопку «Показать дополнительные настройки».

3.Кликнуть по второй кнопке «Очистить историю загрузки».

очистка истории загрузки

4.Поставить параметр «За всё время».

5.Оставить все отмеченные пункты как есть, и нажать на «Очистить историю».

Если проблема продолжает беспокоить время от времени, то можете воспользоваться следующей уловкой: отключить встроенный модуль и установить плагин Adobe Flash Player из официального ресурса.

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

Читайте также: