Плагин собственного клиента, как включить в Chrome

Обновлено: 03.07.2024

Введите about:flags в адресной строке Chrome, прокрутите вниз до «Native Client», нажмите ссылку «Включить», прокрутите вниз до нижней части страницы и нажмите кнопку «Перезапустить сейчас» (все окна браузера будут начать сначала). Убедитесь, что подключаемый модуль Native Client включен в Google Chrome.

Как установить собственный клиент?

Чтобы установить собственный клиент Microsoft SQL Server:

  1. Войдите в систему с соответствующей локальной учетной записью, чтобы установить и запустить клиент Microsoft SQL Server.
  2. С носителя SQL Server Setup установите следующие общие компоненты:
  3. В диспетчере конфигурации SQL Server создайте новый псевдоним в конфигурации собственного клиента SQL (32-разрядная версия).

Как загрузить исправление для собственного клиента?

Скачивание и распаковка

  1. Загрузите ZIP-файл обновления SDK.
  2. Разархивируйте файл. В Mac/Linux выполните команду unzip nacl_sdk. zip в окне терминала. В Windows щелкните правой кнопкой мыши файл . zip и выберите «Извлечь все…». Откроется диалоговое окно; введите местоположение и нажмите «Извлечь».

Что такое собственный клиент в Chrome?

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

Как включить NaCl в Chrome?

Как включить собственный клиент в Google Chrome

  1. Загрузите Google Chrome, если он у вас еще не установлен.
  2. Подпишитесь на канал для разработчиков.
  3. Запустите Google Chrome из командной строки, добавив –enable-nacl.

Является ли Google Chrome клиентским приложением?

Компания Google реализовала проект Native Client с открытым исходным кодом в браузере Chrome для Windows, Mac, Linux и Chrome OS. Native Client Software Development Kit (SDK) — это проект с открытым исходным кодом, который позволяет создавать веб-приложения, использующие NaCl и работающие в Chrome на разных платформах.

Как узнать, установлен ли собственный клиент SQL?

Чтобы определить версию собственного клиента SQL Server, используйте один из следующих методов: Способ 1. В системе, где вы хотите найти версию собственного клиента, запустите администратор ODBC ( odbcad32.exe ), а затем проверьте в столбце Версия на вкладке Драйверы. В 64-разрядных системах также проверьте файл odbcad64.exe .

Для чего используется SQL Native Client?

Собственный клиент SQL Server можно использовать для создания новых приложений или улучшения существующих приложений, которым необходимо использовать преимущества функций, представленных в SQL Server 2005 (9. x), таких как множественные активные наборы результатов (MARS), определяемые пользователем данные. типы (UDT), уведомления о запросах, изоляция моментальных снимков и поддержка типов данных XML.

Как установить Open in Native Client в Windows?

Как установить собственный клиент? Откройте нативный клиент/релизы во вкладке браузера. Найдите последнюю выпущенную версию клиента для вашей ОС и скачайте ее. После завершения загрузки извлеките загруженный файл в локальный каталог.

Что такое собственный патч клиента?

Исправление для собственного клиента используется для подключения вашего браузера (Firefox, Chrome и Opera) к собственным приложениям на вашем компьютере (Windows, Linux и Mac).

Является ли Google Chrome клиентом?

Как вы активируете NaCl?

Как включить собственный клиент в Google Chrome?

Как включить собственный клиент в Google Chrome 1. Загрузите Google Chrome, если он у вас еще не установлен. 2 Подпишитесь на канал Dev. 3 Запустите Google Chrome из командной строки, добавив –enable-nacl. На Mac и Linux, если вы используете версию канала разработки… Подробнее

Где я могу загрузить обновление NaCl SDK?

Загрузите ZIP-файл обновления SDK. В Mac/Linux выполните команду unzip nacl_sdk.zip в окне терминала. В Windows щелкните правой кнопкой мыши ZIP-файл и выберите «Извлечь все…». Откроется диалоговое окно; введите местоположение и нажмите «Извлечь».

Может ли приложение Chrome встроить модуль NaCl?

Приложения Chrome могут встраивать в свои страницы модули NaCl, которые могут выполнять вычисления и взаимодействовать со страницей встраивания и системой (например, для связи с Javascript или рендеринга с помощью OpenGL) через API под названием Pepper.

Где я могу скачать Native Client SDK?

После установки Xcode перейдите в меню XCode, откройте диалоговое окно «Настройки», затем выберите «Загрузки и компоненты». Убедитесь, что инструменты командной строки установлены. В Windows Native Client SDK включает копию GNU Make. Native Client поддерживает несколько операционных систем, включая Windows, Linux, OSX и ChromeOS.

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

Введение

В этом документе описывается, как запускать приложения Native Client во время разработки.

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

Приложения Portable Native Client (PNaCl)

Запуск приложений PNaCl из открытого Интернета включен в Chrome версии 31 и выше; поэтому для локального запуска и тестирования таких приложений не требуется специальных условий. Приложение, использующее модуль PNaCl, можно протестировать так же, как и любое другое веб-приложение, состоящее только из HTML, CSS и JavaScript.

Чтобы лучше имитировать производственную среду, рекомендуется запустить локальный веб-сервер для обслуживания файлов приложения. NaCl SDK поставляется с простым встроенным локальным сервером, и процесс его использования для запуска приложений PNaCl описан в руководстве.

Нативные клиентские приложения и Интернет-магазин Chrome

Прежде чем читать о том, как запускать приложения Native Client, важно немного понять, как распространяются приложения Native Client. Как объясняется в разделе Распространение вашего приложения, в настоящее время приложения Native Client должны распространяться через Интернет-магазин Chrome (CWS). Приложения в CWS бывают одного из трех типов:

  • Размещенное приложение – это приложение, которое вы размещаете на выбранном вами сервере. Чтобы распространять приложение как размещенное приложение, вы загружаете метаданные приложения в CWS. Подробнее читайте на странице документации по приложению Chrome.
  • Упакованное приложение – это приложение, размещенное в CWS и загруженное на компьютер пользователя. Чтобы распространять приложение в виде упакованного приложения, вы загружаете все приложение, включая все активы и метаданные приложения, в CWS. Подробнее читайте на странице документации по приложению Chrome.
  • Расширение – это упакованное приложение с крошечным компонентом пользовательского интерфейса (расширения обычно используются для расширения функциональных возможностей браузера Chrome). Чтобы распространять приложение как расширение, вы загружаете все приложение, включая все активы и метаданные приложения, в CWS. Подробнее читайте на странице документации по расширениям Chrome.

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

Очевидно, что неудобно упаковывать и загружать файлы в Интернет-магазин Chrome каждый раз, когда вы хотите запустить новую сборку своего приложения, но есть четыре альтернативных метода, которые вы можете использовать для запуска приложения во время разработки. Эти методы перечислены в следующей таблице и подробно описаны ниже. Каждый метод имеет определенные требования (флаг NaCl, веб-сервер и/или метаданные CWS); они описаны в разделе Требования ниже.

<р>1. Локальный сервер

Запустите локальный сервер и просто укажите в браузере свое приложение на сервере.

<р>2. Упакованное приложение загружается как распакованное расширение

Загрузите упакованное приложение в Chrome как неупакованное расширение и запустите его без сервера. Распакованное расширение — это приложение, исходные файлы и файлы метаданных которого находятся в разархивированной папке на вашем компьютере для разработки. В файле манифеста CWS (описанном ниже) должно быть указано поле local_path.

<р>3. Размещенное приложение загружается как распакованное расширение

Загрузите размещенное приложение в Chrome как распакованное расширение и запустите его с сервера (который может быть локальным сервером). В файле манифеста CWS должно быть указано поле web_url.

<р>4. Приложение CWS с ненадежными тестировщиками

Стандартный метод распространения упакованного или размещенного приложения в CWS. Вы можете ограничить приложение доверенными тестировщиками. Для этого метода требуется сервер, если ваше приложение размещено на хосте.

Какой из вышеперечисленных методов вы используете для запуска своего приложения во время разработки, во многом зависит от личных предпочтений (т. е. что вы предпочитаете: запустить локальный сервер или создать метаданные CWS?). Как правило, когда у вас есть представление о том, как вы планируете распространять свое приложение, вы должны использовать соответствующий метод во время разработки. Выбор варианта распространения зависит от ряда факторов, таких как размер приложения, время запуска приложения, стоимость хостинга, автономная функциональность и т. д. (подробности см. в разделе Распространение приложения), но вы не необходимо принять решение о том, как распространять ваше приложение в самом начале.

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

Предпосылки

Версии для браузера и Pepper

Прежде чем запускать новую сборку приложения, убедитесь, что вы используете правильную версию Chrome. Каждая версия Chrome поддерживает соответствующую версию Pepper API. Вы (и ваши пользователи) должны использовать версию Chrome, которая равна или выше версии Pepper API, которую использует ваше приложение. Например, если вы скомпилировали свое приложение с использованием пакета pepper_37, ваше приложение использует API Pepper 37, и вы должны запускать приложение в Chrome 37 или более поздней версии. Чтобы узнать, какую версию Chrome вы используете, введите about:version в адресной строке Chrome.

Кэш Chrome

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

Требования

Флажок собственного клиента

Собственный клиент автоматически включается для приложений, установленных из Интернет-магазина Chrome. Чтобы включить Native Client для приложений, которые не установлены из Интернет-магазина Chrome, вы должны явным образом включить флаг Native Client в Chrome следующим образом:

  1. Введите about:flags в адресной строке Chrome.
  2. Прокрутите вниз до «Нативный клиент».
  3. Если в ссылке ниже «Собственный клиент» указано «Отключить», значит, собственный клиент уже включен, и вам больше ничего делать не нужно.
  4. Если в ссылке ниже «Собственный клиент» указано «Включить»:
    • Нажмите ссылку «Включить».
    • Нажмите кнопку «Перезапустить сейчас» в нижней части экрана. Собственный клиент не будет включен, пока вы не перезапустите браузер. При повторном запуске Chrome все окна браузера будут перезапущены.

Если вы включили флаг Native Client, но по-прежнему не можете запускать приложения из-за пределов Интернет-магазина Chrome, вам может потребоваться включить подключаемый модуль Native Client:

  1. Введите about:plugins в адресную строку Chrome.
  2. Прокрутите вниз до «Нативный клиент».
  3. Если на ссылке ниже «Собственный клиент» указано «Включить», щелкните ссылку, чтобы включить подключаемый модуль собственного клиента. Вам не нужно перезапускать Chrome после включения плагина Native Client.

Веб-сервер

В целях безопасности приложения Native Client должны поступать с сервера (вы не можете просто перетаскивать HTML-файлы в браузер). Native Client SDK поставляется с упрощенным веб-сервером Python, который вы можете запускать для локального обслуживания вашего приложения. Сервер можно вызвать из Makefile. Вот как запустить сервер:

Некоторым приложениям нужны специальные флаги для Chrome, и их нужно запускать с помощью команды make run. Дополнительные сведения см. в разделе Запуск примеров SDK.

Метаданные Интернет-магазина Chrome

Приложения, опубликованные в Интернет-магазине Chrome, должны сопровождаться метаданными CWS; в частности, файл манифеста Интернет-магазина Chrome с именем manifest.json и хотя бы один значок.

Ниже приведен пример файла манифеста CWS для размещенного приложения:

Для упакованного приложения можно опустить поле urls и заменить поле web_url полем local_path, как показано ниже:

Вы должны поместить файл manifest.json в тот же каталог, что и главная HTML-страница вашего приложения.

Если у вас нет значков для вашего приложения, вы можете использовать следующие значки в качестве заполнителей:

Поместите значки в тот же каталог, что и файл манифеста CWS. Для получения дополнительной информации о файлах манифеста CWS и значках приложений см.:

Метод 1: Локальный сервер

Чтобы запустить приложение с локального сервера:

Прием 2: Упакованное приложение загружается как неупакованное расширение

В целях разработки Chrome позволяет загружать упакованное приложение как неупакованное расширение. Чтобы загрузить и запустить упакованное приложение как неупакованное расширение:

  1. Создайте файл манифеста Интернет-магазина Chrome и один или несколько значков для своего приложения.
    • Чтобы создать эти файлы, следуйте приведенным выше инструкциям в разделе метаданных Интернет-магазина Chrome.
    • Обратите внимание, что файл манифеста CWS должен содержать поле local_path, а не поле web_url.
  2. Поместите файл манифеста CWS и значки приложений в тот же каталог, что и главная HTML-страница вашего приложения.
  3. Загрузите приложение как распакованное расширение в Chrome:
    • Откройте страницу управления расширениями в Chrome, нажав на значок меню и выбрав Инструменты > Расширения.
    • Установите флажок "Режим разработчика" и нажмите кнопку "Загрузить распакованное расширение":
    • В появившемся диалоговом окне выберите каталог приложения. Если вы не получили диалоговое окно с ошибкой, вы установили свое приложение в Chrome.
  4. Откройте новую вкладку в Chrome и нажмите ссылку "Приложения" внизу страницы, чтобы отобразить установленные приложения:
  5. Значок только что установленного приложения должен появиться на странице "Новая вкладка". Нажмите на значок, чтобы запустить приложение.

Дополнительную информацию о том, как создать метаданные CWS и загрузить приложение в Chrome (включая информацию об устранении неполадок), см. в руководстве по Интернет-магазину Chrome: Начало работы.

Прием 3. Размещенное приложение загружается как распакованное расширение

В целях разработки Chrome позволяет загружать размещенное приложение в виде неупакованного расширения. Чтобы загрузить и запустить размещенное приложение как распакованное расширение:

Дополнительную информацию о том, как создать метаданные CWS и загрузить приложение в Chrome (включая информацию об устранении неполадок), см. в руководстве по Интернет-магазину Chrome: Начало работы.

Прием 4. Приложение Chrome Web Store с доверенными тестировщиками

Когда вы будете готовы к более широкому тестированию своего приложения, вы можете загрузить его в Интернет-магазин Chrome и позволить доверенным тестировщикам запустить его. Вот как это сделать:

  1. Создайте метаданные Chrome Web Store, необходимые для публикации вашего приложения:
    • Сначала создайте файл манифеста Интернет-магазина Chrome и один или несколько значков для своего приложения, как описано выше в разделе Метаданные Интернет-магазина Chrome. Обратите внимание, что упакованные приложения должны иметь как минимум два значка (значок размером 16 x 16 и значок 128 x 128).
    • Перед публикацией приложения также необходимо создать следующие дополнительные ресурсы:
      • скриншот (размер должен быть 640 x 400 или 1280 x 800)
      • рекламное изображение под названием "маленькая плитка" (размер должен быть 440 x 280)
  2. Для упакованного приложения:
    • Создайте ZIP-файл с файлом манифеста CWS, значками приложений и всеми файлами приложений (.html, .nmf, .nexe, .css, .js, файлы изображений и т. д.)
  3. Для размещенного приложения:
    • Создайте ZIP-файл с файлом манифеста CWS и значками приложений.
    • Загрузить файлы приложения (.html, .nmf, .nexe, .css, .js, файлы изображений и т. д.) на сервер, на котором размещается приложение.
    • Используйте Инструменты Google для веб-мастеров, чтобы подтвердить право собственности на веб-сайт, на котором работает приложение.
  4. Войдите в панель управления разработчика Интернет-магазина Chrome.
    • При первом входе в систему нажмите кнопку "Добавить новый элемент", чтобы отобразить Соглашение с разработчиком Интернет-магазина Google Chrome. Просмотрите и примите соглашение, а затем вернитесь на панель инструментов разработчика.
  5. Нажмите «Изменить учетные записи тестировщиков» в нижней части панели инструментов разработчика.
  6. Введите серию адресов электронной почты тестировщиков (через запятую или пробел) и нажмите кнопку "Сохранить изменения".
  7. Нажмите кнопку "Добавить новый элемент", чтобы добавить свое приложение в Интернет-магазин Chrome.
  8. Нажмите кнопку "Выбрать файл" и выберите ZIP-файл, созданный ранее.
  9. Нажмите кнопку «Загрузить»; это загрузит ваш ZIP-файл и откроет страницу «Редактировать элемент».
  10. Отредактируйте следующие обязательные поля на странице «Редактировать элемент»:
    • Загрузить значок приложения.
    • Загрузить снимок экрана.
    • Загрузить небольшую плитку.
    • Выберите категорию для своего приложения (бухгалтерское приложение, экшн-игра и т. д.).
    • Выберите язык для своего приложения.
  11. Если вы являетесь владельцем или менеджером группы Google, вы можете выбрать эту группу в поле "Доверенные тестировщики".
    • Вы можете создать группу Google специально для своих тестировщиков. Когда вы добавляете группу в поле "Доверенные тестировщики", все участники группы смогут тестировать приложение, в дополнение к лицам, которых вы добавили в поле "Учетные записи доверенных тестировщиков" на панели разработчика.
  12. Нажмите кнопку "Опубликовать в тестовых аккаунтах" внизу страницы и нажмите "ОК".
  13. Открывается страница со списком вашего приложения в Интернет-магазине Chrome. Скопируйте URL-адрес и отправьте его своим доверенным тестерам.
    • Когда вы публикуете приложение для тестовых учетных записей, список CWS приложения виден только вам и людям, которые вошли в эти учетные записи. Ваше приложение не будет отображаться в результатах поиска, поэтому вам необходимо предоставить тестировщикам прямую ссылку на список CWS вашего приложения. Пользователи не смогут найти приложение с помощью поиска в CWS.

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

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

В этом документе приведены ответы на некоторые часто задаваемые вопросы о собственном клиенте (NaCl) и портативном собственном клиенте (PNaCl, произносится как «вершина»). Общий обзор Native Client см. в Техническом обзоре.

Если у вас есть вопросы, не описанные в этом FAQ:

  • Просмотрите примечания к выпуску.
  • Выполните поиск или спросите на форумах собственных клиентов.

Для чего хорош собственный клиент?

Зачем Google создал собственный клиент?

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

Удобство:

  • Разработчики могут использовать существующий код, написанный на C/C++ или других языках, в своих приложениях, не заставляя пользователей устанавливать подключаемый модуль.
  • Этот код может взаимодействовать с встраиваемой веб-страницей как часть веб-приложения HTML и JavaScript или может быть автономным и захватывающим.

Переносимость: приложения Native Client и Portable Native Client могут выполняться на:

  • Операционные системы Windows, Mac, Linux или ChromeOS.
  • Процессоры с архитектурой набора инструкций x86-32, x86-64 или ARM. В собственном клиенте также имеется экспериментальная поддержка MIPS.

Портативный собственный клиент еще больше расширяет возможности вышеизложенного:

Когда следует использовать Portable Native Client вместо Native Client?

См. NaCl и PNaCl. Вкратце: PNaCl работает на платформе Open Web, предоставляемой Chrome, тогда как NaCl работает только в Интернет-магазине Chrome.

Когда следует использовать Portable Native Client / Native Client?

Ниже приведены некоторые типичные варианты использования. Подробнее см. в Техническом обзоре.

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

Использование ресурсоемких приложений, включая потоки и SIMD, например:

  • Научные вычисления.
  • Обработка мультимедиа для веб-приложения.
  • Различные аспекты сетевых игр, включая физические движки и ИИ.

Portable Native Client и Native Client — это универсальные технологии, которые используются во многих других контекстах за пределами Chrome.

Насколько быстро код работает в Portable Native Client?

Быстро! Тесты SPEC2k (C, C++ и тесты с плавающей запятой) дают следующие накладные расходы для оптимизированного PNaCl по сравнению с обычным оптимизированным LLVM:

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

Обратите внимание, что PNaCl поддерживает функции повышения производительности, которые часто используются в нативном коде, такие как поточность и переносимые векторы SIMD.

Подробнее см.:

Если ваш код не работает так близко к естественной скорости, как вы ожидаете, сообщите нам!

Зачем использовать Portable Native Client вместо ?

Разные технологии имеют разные сильные и слабые стороны. В соответствующих контекстах Portable Native Client может быть быстрее, безопаснее и/или лучше совместим с операционными системами и архитектурами, чем другие технологии.

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

Если мне нужен прямой доступ к ОС, должен ли я использовать Native Client?

Нет — собственный клиент не предоставляет прямого доступа к ОС или устройствам и не обходит модель безопасности JavaScript иным образом. Дополнительные сведения см. в следующих разделах этого часто задаваемых вопросов.

Среды и инструменты разработки

Какую среду разработки и операционную систему для разработки вы рекомендуете?

Вы можете разрабатывать приложения для Windows, Mac или Linux, и итоговое приложение Native Client или Portable Native Client будет работать в браузере Google Chrome на всех этих платформах, а также в ChromeOS. Вы также можете разрабатывать на ChromeOS с помощью Crouton или нашей экспериментальной среды разработки, которая работает в NaCl, и мы работаем над самостоятельным размещением полной среды разработки на Portable Native Client.

Любая комбинация редактора и оболочки должна работать так же хорошо, как и такие IDE, как Eclipse, Visual Studio с надстройкой собственного клиента в Windows или Xcode в Mac OSX.

Я не знаком с собственными инструментами разработки, могу ли я использовать Native Client SDK?

Возможно, вам пригодятся наши Учебник и Инструкции по сборке. Вы можете просмотреть код и файлы Makefile для примеров SDK, чтобы понять, как эти примеры создаются и выполняются.

Вам нужно научиться пользоваться некоторыми инструментами (такими как GCC, LLVM, make, Eclipse, Visual Studio или Xcode), прежде чем вы сможете продвинуться далеко вперед с помощью SDK. Попробуйте найти введение в GCC.

Открытость, поддерживаемые архитектуры и языки

Открыт ли собственный клиент?Это стандарт?

Нативный клиент полностью открыт: формат исполняемого файла открыт, исходный код открыт. Сейчас проект Native Client находится на ранней стадии, поэтому преждевременно рассматривать Native Client для стандартизации.

Мы постоянно пытаемся документировать наш дизайн и реализацию и надеемся стандартизировать Portable Native Client, когда он наберет больше оборотов. Хорошим примером является наше справочное руководство по битовому коду PNaCl.

Как я могу внести свой вклад в Native Client?

Какие архитектуры набора инструкций поддерживаются?

Portable Native Client использует архитектурно-независимый формат (.pexe ), который в настоящее время можно преобразовать для выполнения на процессорах с архитектурами набора инструкций x86-32, x86-64 и ARM, а также с экспериментальной поддержкой MIPS. По мере появления новых архитектур и их популярности мы ожидаем, что Portable Native Client будет поддерживать их без перекомпиляции кода разработчиками.

В настоящее время Native Client может выполняться на тех же архитектурах, что и Portable Native Client, но поддерживается только в Интернет-магазине Chrome. Файлы .nexe собственного клиента зависят от архитектуры и не могут адаптироваться к новым архитектурам без перекомпиляции, поэтому мы считаем, что они лучше подходят для интернет-магазина, чем для открытого Интернета.

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

Должен ли я использовать C или C++? Я бы очень хотел использовать другой язык.

Инструментальная цепочка PNaCl построена на LLVM и поэтому может генерировать код на таких языках, как Rust, Go или Objective-C, но могут быть некоторые шероховатости.

Если вы заинтересованы в том, чтобы другие языки работали, свяжитесь с командой Native Client через список рассылки native-client-discuss и ознакомьтесь с идеями авторов.

Поддерживаете ли вы только Chrome? А как насчет других браузеров?

Мы стремимся поддерживать несколько браузеров. Однако ряд функций, которые мы считаем требованиями к системе производственного качества, обеспечивающей безопасность пользователя, сложно реализовать без помощи браузера. Конкретными примерами являются внепроцессная архитектура плагинов и соответствующие интерфейсы для интегрированной 3D-графики. Мы тесно сотрудничали с разработчиками Chromium, чтобы предоставить эти функции, и мы готовы сотрудничать с разработчиками из других браузеров.

В чем разница между NPAPI и Pepper?

Pepper (также известный как PPAPI) — это новый API, который позволяет модулям собственного клиента взаимодействовать с браузером. Pepper поддерживает различные функции, которые не имеют надежной поддержки в NPAPI, такие как обработка событий, внепроцессные плагины и асинхронные интерфейсы. Собственный клиент перешел с использования NPAPI на использование Pepper.

Является ли NPAPI частью Native Client SDK?

NPAPI не поддерживается Native Client SDK и устарел в Chrome.

Поддерживает ли собственный клиент векторные инструкции SIMD?

Портативный собственный клиент поддерживает переносимые векторы SIMD, как подробно описано в разделе Портативные векторы SIMD.

Собственный клиент поддерживает SSE, AVX1, FMA3 и AVX2 (кроме VGATHER) на x86 и NEON на ARM.

Могу ли я использовать Native Client для 3D-графики?

Да. Собственный клиент поддерживает OpenGL ES 2.0.

Чтобы предупредить пользователя о наборе 3D-функций его аппаратной платформы перед загрузкой большого приложения NaCl, см. раздел Проверка драйвера в Javascript.

Некоторые расширения GL доступны для приложений Native Client, см. файл GLES2. Этот файл является частью оболочки GL, поставляемой библиотекой ppapi_gles2, которую вы захотите включить в свой проект. В большинстве случаев расширения сопоставляются с расширениями, доступными на других платформах, или отличаются очень незначительно (если они отличаются, расширение обычно CHROMIUM или ANGLE вместо EXT).

Поддерживает ли собственный клиент параллелизм/параллелизм?

Нативный клиент и переносимый собственный клиент поддерживают pthreads, потоки C11/C++11 и низкоуровневые примитивы синхронизации (мьютекс, барьеры, атомарное чтение/изменение/запись, сравнение и обмен и т. д.), таким образом позволяя вашему приложению Native Client использовать несколько ядер ЦП. Обратите внимание, что это позволяет вам одновременно изменять структуры данных без необходимости их копирования, что часто является ограничением систем без общего доступа. Дополнительные сведения см. в разделах модель памяти и атомарность и потоки.

Собственный клиент не поддерживает HTML5 Web Workers напрямую, но может взаимодействовать с кодом JavaScript, который поддерживает.

Скоро

Имеют ли модули собственного клиента доступ к внешним устройствам?

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

В целом Pepper можно рассматривать как привязку C/C++ к возможностям HTML5. Цель состоит в том, чтобы Pepper и JavaScript развивались вместе и оставались на одном уровне в отношении функций и возможностей.

Безопасность и конфиденциальность

Что происходит с моими данными, когда я использую Native Client?

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

Дополнительную информацию о конфиденциальности и Chrome см. в политике конфиденциальности Google Chrome и Условиях использования Google Chrome.

Как Native Client предотвращает плохие вещи в изолированном программном коде?

Песочница собственного клиента работает путем проверки ненадежного кода (скомпилированного модуля собственного клиента) перед его запуском. Валидатор проверяет следующее:

  • Целостность данных. Загрузка или сохранение за пределами изолированной программной среды запрещены. В частности, это означает, что однажды загруженный в память двоичный файл недоступен для записи. Это обеспечивается механизмами защиты операционной системы. Хотя новые инструкции могут быть вставлены во время выполнения для поддержки таких вещей, как компиляторы JIT, такие инструкции будут подлежать проверке во время выполнения в соответствии со следующими ограничениями перед их выполнением.
  • Никаких небезопасных инструкций. Валидатор гарантирует, что приложение Native Client не содержит небезопасных инструкций. Примерами небезопасных инструкций являются syscall , int и lds .
  • Целостность потока управления: средство проверки гарантирует, что все прямые и косвенные переходы нацелены на безопасную инструкцию.

Прелесть изолированной программной среды собственного клиента заключается в том, что «безопасный» код сводится к нескольким простым правилам, которые можно проверить с помощью небольшого доверенного валидатора: компилятору нельзя доверять. То же самое относится и к Portable Native Client, где даже транслятор .pexe в .nexe, упрощенный бэкенд компилятора, не заслуживает доверия: он проверяется перед выполнением, как и его выходные данные.

В дополнение к статическому анализу ненадежного кода среда выполнения Native Client также включает внешнюю изолированную программную среду, которая выполняет системные вызовы. Дополнительные сведения об обеих песочницах см. в статье Собственный клиент: песочница для переносимого ненадежного кода x86 (PDF).

Как Google узнает, что меры безопасности в Native Client достаточны?

Компания Google предприняла несколько шагов, чтобы обеспечить работу безопасности Native Client, в том числе:

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

Google стремится сделать Native Client более безопасным, чем JavaScript и другие популярные браузерные технологии. Если у вас есть предложения по улучшению безопасности, сообщите об этом группе через список рассылки native-client-discuss.

Разработка

Как выполнить отладку?

Доступны инструкции по отладке примеров SDK с помощью GDB. Вы также можете отлаживать модули собственного клиента с помощью некоторых альтернативных подходов.

Как собрать x86-32, x86-64 или ARM .nexes?

По умолчанию приложения в папке /examples создают архитектурно-независимый файл .pexe для Portable Native Client. Чтобы создать файл .nexe для одной конкретной архитектуры с помощью цепочек инструментов Native Client или Portable Native Client, см. Инструкции по сборке.

Как мое веб-приложение может определить, какой .nexe загружать?

Вашему приложению не нужно принимать решение о загрузке x86-32, x86-64 или ARM .nexe явным образом — среда выполнения собственного клиента проверяет файл манифеста ( .nmf ), чтобы выбрать правильный файл .nexe для данного Пользователь. Вы можете сгенерировать файл манифеста с помощью скрипта Python, включенного в SDK (см. Makefile в любом из примеров SDK для иллюстрации того, как это сделать). Ваш файл HTML указывает имя файла манифеста в атрибуте src тега. Вы можете увидеть, как эти части сочетаются друг с другом, изучив примеры, включенные в SDK.

Можно ли создать модуль Native Client только с помощью простого C (не C++)?

Да. См. «Привет, мир!» в примере C в SDK в разделе examples/tutorial/using_ppapi_simple/ или примере Game of Life в разделе examples/demo/life/life.c .

Какие системные вызовы UNIX можно выполнять с помощью Native Client?

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

Доступна ли моя любимая сторонняя библиотека для собственного клиента?

Google перенесла несколько сторонних библиотек в Native Client; такие библиотеки доступны в проекте webports. Мы рекомендуем вам вносить библиотеки в веб-порты и/или размещать собственные портированные библиотеки, а также сообщать об этом команде на странице native-client-discuss, когда вы это сделаете. Вы также можете ознакомиться с идеями участников, чтобы найти идеи новых проектов для переноса.

Должны ли все файлы приложения обслуживаться из одного домена?

Файлы .nmf и .nexe или .pexe должны быть либо из того же источника, что и страница встраивания, либо из источника, правильно настроенного с помощью CORS.

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

Переносимость

Должен ли я делать что-то особенное, чтобы мое приложение работало в разных операционных системах?

Нет. Приложения Native Client и Portable Native Client работают без изменений во всех поддерживаемых операционных системах.

Однако для работы с различными архитектурами набора инструкций (например, x86-32, x86-64 или ARM) в настоящее время необходимо:

  • Используйте портативный собственный клиент.
  • Создайте и предоставьте отдельный файл .nexe для каждой архитектуры и сделайте их доступными в Интернет-магазине Chrome. См. раздел Целевые архитектуры, чтобы узнать, какие файлы .nexe будут работать на каких архитектурах.

Насколько легко перенести мой существующий собственный код в собственный клиент?

В большинстве случаев вам не придется много переписывать код. Инструменты для собственного клиента, такие как pnacl-clang++ или x86_64-nacl-g++, позаботятся о большинстве необходимых изменений. Возможно, вам потребуется внести некоторые изменения в вызовы операционной системы и взаимодействие с внешними устройствами для работы в Интернете. Перенос существующих библиотек Linux, как правило, не представляет сложности, а большие библиотеки часто не требуют изменения исходного кода.

Введите about:flags в адресной строке Chrome, прокрутите вниз до «Native Client», нажмите ссылку «Включить», прокрутите вниз до нижней части страницы и нажмите кнопку «Перезапустить сейчас» (все окна браузера будут начать сначала). Убедитесь, что подключаемый модуль Native Client включен в Google Chrome.

Что такое плагин Native Client в Chrome?

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

Является ли Google Chrome клиентским приложением?

Компания Google реализовала проект Native Client с открытым исходным кодом в браузере Chrome для Windows, Mac, Linux и Chrome OS. Native Client Software Development Kit (SDK) — это проект с открытым исходным кодом, который позволяет создавать веб-приложения, использующие NaCl и работающие в Chrome на разных платформах.

Что такое Chrome Native?

Native Client – это подключаемый модуль браузера, который позволяет веб-сайтам выполнять скомпилированный собственный код C и C++. NaCl работает на всех платформах, на которых работает Chrome, поэтому разработчики могут написать одну программу на C или C++, и она будет работать в любом браузере Chrome в Windows, Mac, Linux и Chrome OS.

Как избавиться от нативной версии Chrome?

Как управлять собственными уведомлениями Chrome

  1. Откройте настройки. Нажмите кнопку "Пуск", затем нажмите шестеренку настроек в правом нижнем углу над кнопкой питания.
  2. Нажмите "Система".
  3. Откройте собственные настройки уведомлений Google Chrome.
  4. Измените настройки уведомлений Chrome в Windows 10.

Что открыто в родном клиенте?

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

Как включить nacl в Chrome?

Как включить собственный клиент в Google Chrome

  1. Загрузите Google Chrome, если он у вас еще не установлен.
  2. Подпишитесь на канал для разработчиков.
  3. Запустите Google Chrome из командной строки, добавив –enable-nacl.

Считается ли браузер программным обеспечением?

Веб-браузер (обычно называемый браузером) — это программное приложение для поиска, представления и навигации по информационным ресурсам во Всемирной паутине (также известной как Интернет или Сеть). На вашем компьютере также могут быть установлены другие браузеры.

Как установить Google в Google Chrome?

  1. На телефоне или планшете Android откройте Google Chrome.
  2. Нажмите "Установить".
  3. Нажмите "Принять".
  4. Чтобы начать просмотр, перейдите на главную страницу или страницу всех приложений. Коснитесь приложения Chrome .

Как отключить встроенные уведомления?

Вы можете отключить push-уведомления на Android, выбрав «Настройки» > «Уведомления». Как и в iOS, в Android можно отключить push-уведомления для отдельных приложений или использовать режим "Не беспокоить".

Где хранятся настройки Chrome?

Индивидуальные настройки пользователя хранятся в файле Preferences в профиле пользователя. Этот файл настроек создается при первом использовании Chrome. По умолчанию этот файл находится в каталоге C:\Users\%UserName%\AppData\Local\Google\Chrome\User Data\Default .

ScummVM, работающий в Chrome Собственный клиент» width=

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

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

Как и сам Chrome, Native Client находится в изолированной программной среде — на самом деле это двойная изолированная программная среда! - и он использует модифицированную версию цепочки инструментов компилятора GCC, которая еще больше ограничивает приложения от незаконных и небезопасных вызовов. NaCl работает на всех платформах, на которых работает Chrome, поэтому разработчики могут написать одну программу на C или C++, и она будет работать в любом браузере Chrome в Windows, Mac, Linux и Chrome OS.

Таким образом, Native Client — это высокоскоростная альтернатива веб-приложениям, написанным на HTML, JavaScript и CSS. Действительно, в настоящее время вы можете скачать приложения Native Client только в Интернет-магазине Chrome (кроме ScummVM и Nethack — не так много приложений NaCl, которые вы можете попробовать). Однако Native Client — это проект с открытым исходным кодом, и другие браузеры, такие как Firefox и Internet Explorer, могли бы внедрить NaCl, если бы захотели, но шансы на это очень и очень малы.

Mozilla неоднократно заявляла, что Native Client — это отродье дьявола, а JavaScript — это путь вперед, а Microsoft после всего своего HTML5 Open Web Standards 4 Evarr! маркетинговый ход с IE9, конечно, не будет прыгать в постель с подключаемым модулем, который очень похож на оклеветанный ActiveX.

Для чего тогда нужен еще один плагин для браузера? На первый взгляд, Google признает, что JavaScript и HTML не обладают тем, что нужно для создания настоящих приложений и игр, и первый пункт на веб-сайте NaCl превозносит его достоинства как динамического, мультимедийного «бесплатного плагина». » плагин. Если вы пойдете немного дальше, NaCl почти наверняка станет способом переноса скомпилированных настольных приложений в Chrome OS, которая запускает только веб-приложения. В конечном счете, тем не менее, Google снова играет в игру «закрыто-открыто», где открытый исходный код и стандарты являются фантастическими, в то время как они помогают веб-гиганту в конечном счете — но если Mozilla и Microsoft начнут двигаться в направлении, которое не выгодно для Google , то появятся псевдорешения вроде Native Client.

Нативный клиент — это, безусловно, классная технология, но, к сожалению, она похожа на Flash, Java, Silverlight, Unity или любое количество подключаемых модулей браузера: она поддерживается не во всех браузерах и платформах в равной степени и отвлекает. разработчиков от работы с действительно открытыми технологиями, такими как JavaScript и HTML. Google может добавить NaCl в Chrome, Chrome OS, Android и Google TV, но HTML и JavaScript могут быть ориентированы на все эти платформы, а также на 100 других. Не соблазняйтесь обещаниями NaCl о более высокой производительности и теплых, мягких, скомпилированных библиотечных костылях: это не путь Open Web; это путь Google, и это две совершенно разные вещи.

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