Объявления о прекращении поддержки (P)NaCl
Учитывая динамику кросс-браузерной поддержки WebAssembly, мы планируем сосредоточить усилия на собственном коде на WebAssembly в будущем и планируем прекратить поддержку PNaCl в четвертом квартале 2019 года (за исключением приложений Chrome). Мы считаем, что динамичная экосистема вокруг WebAssembly делает его более подходящим для новых и существующих высокопроизводительных веб-приложений, и что использование PNaCl достаточно мало, чтобы гарантировать его устаревание.
Начиная с Chrome 76, PNaCl в открытой сети был перенесен в рамках пробной версии Origin , которая представляет собой механизм, позволяющий веб-разработчикам зарегистрироваться и получить доступ к функции, которая не включена по умолчанию. Обычно это новая предлагаемая функция, но в данном случае она устарела. Разработчик может зарегистрироваться в пробной консоли Origin и получить токен, который можно встроить в страницу и активировать эту функцию без необходимости использования пользователем флага. (Более подробную информацию см. в связанном руководстве). Планируется, что пробная версия продлится до Chrome 78 примерно до декабря 2019 года. Это изменение не влияет на NaCl или PNaCl в приложениях или расширениях Chrome, а флаг «enable-nacl» в chrome://flags также можно использовать для включить PNaCl локально для тестирования (этот флаг также сохраняет свою текущую функцию включения «родного» NaCl, отличного от PNaCl, на любой странице).
Мы также недавно объявили о прекращении поддержки приложений Chrome за пределами ChromeOS в первом квартале 2018 года.
Для большинства случаев использования (P)NaCl мы рекомендуем перейти с NaCl SDK на Emscripten . Миграция, скорее всего, будет достаточно простой, если ваше приложение переносимо на Linux, использует API SDL или POSIX. Хотя прямая поддержка API-интерфейсов NaCl/Pepper недоступна, мы попытались перечислить эквиваленты веб-API. В случае более сложных случаев переноса обращайтесь по адресу Native-Client-Discuss @ googlegroups . ком
Миграция API
Здесь мы изложили статус заменителей веб-платформ для каждого API, подверженного воздействию (P)NaCl. Кроме того, в таблице перечислены библиотеки или опции Emscripten, предлагающие ближайшую замену.
Мы планируем добавить поддержку потоков общей памяти в WebAssembly в 2017 году, поскольку потоки имеют решающее значение для соответствия наиболее интересным вариантам использования (P)NaCl. Элементы миграции, предполагающие поддержку будущих потоков, отмечены ниже. Если управление потоком вашего приложения в значительной степени зависит от блокирующих API, вы также можете обнаружить, что для удобного портирования требуется поддержка потоков.
Хотя мы постарались быть точными в этой таблице, нет никаких сомнений в том, что в ней есть ошибки или упущения. Если вы столкнулись с такой проблемой, свяжитесь с нами по адресу Native-Client-Discuss @ googlegroups . ком
ППАПИ
ППБ_Аудио
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
Создавать | х | SDL (частичный) | GAP (частичный) — AudioWorkletNode ПРИМЕРНО эквивалент | AudioWorkletSpec готов, но AudioDeviceClient может лучше подойти для этого API. AudioDeviceClient все еще определяется сообществом. Возможно, ворлет не является грубым эквивалентом этого API. |
Получить текущую конфигурацию | | СДЛ | AudioContext.* (возвращает переданные настройки) | |
НачатьВоспроизведение | | СДЛ | AudioBufferSourceNode.start | |
ОстановитьВоспроизведение | | СДЛ | AudioBufferSourceNode.stop | |
PPB_AudioBuffer
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
Получить временную метку | | СДЛ | AudioBufferSourceNode.start (параметр) | Передается каждый раз вместо прикрепления к буферу. |
Установить временную метку | | СДЛ | AudioBufferSourceNode.start (параметр) | |
GetSampleRate | | СДЛ | AudioBuffer.sampleRate | |
GetSampleSize | | ЗАЗОР | GAP — WebAudio использует только 32-битное число с плавающей точкой, PPAPI — 16-битное целое. | PPAPI теоретически поддерживает несколько размеров выборки. На практике он поддерживает только 16-битные сэмплы. К сожалению, разработчики запросили 16-битные размеры выборки, чтобы сэкономить на использовании памяти. В следующей версии спецификации Web Audio будет реализована поддержка 16-битных сэмплов. Оптимизацию AudioBuffer можно реализовать аналогично Firefox, используя 16-битный буфер для звука, поступающего из decodeAudioData. |
GetNumberOfChannels | | СДЛ | AudioBuffer.numberOfChannels | |
GetDataBuffer | | СДЛ | AudioBuffer.getChannelData | |
GetBufferSize | | СДЛ | AudioBuffer.length | |
ППБ_АудиоКонфиг
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
СоздатьStereo16Bit | | ЗАЗОР | GAP — поддерживаются только 32-битные образцы с плавающей запятой. | В следующей версии спецификации Web Audio будет реализована поддержка 16-битных сэмплов. |
GetSampleRate | | СДЛ | AudioContext.sampleRate | |
GetSampleFrameCount | | СДЛ | AudioBuffer.length | |
РекомендоватьSampleRate | | СДЛ | AudioContext.sampleRate (из конструкции по умолчанию) | AudioContext будет иметь предпочтительную частоту дискретизации, которая по умолчанию соответствует фактической частоте дискретизации аппаратного аудиоустройства. |
РекомендоватьSampleFrameCount | | ЗАЗОР | GAP — будет обрабатываться с помощью запланированного AudioDeviceClient. | Существует открытый вопрос о разрешении размера, указываемого пользователем, но он все еще определяется. Вероятно, лучше всего это сделать с помощью AudioDeviceClient, который может сказать вам, какой размер будет подходящим для данного оборудования. |
ППБ_Консоль
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
Бревно | | время работы | console.log/warn/error/... | |
Журнал с источником | | ЗАЗОР | ЗАЗОР | Консольный API считается достаточно полной заменой, если только разработчиками не предложены конкретные варианты использования функций, предоставляемых LogWithSource. Карты исходного кода DevTools можно использовать для отладки транспилированного JavaScript на исходном исходном языке. |
PPB_Core
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
getTime | | время работы | новая дата().getTime() | |
getTimeTicks | | время работы | новая дата().getTime() | |
IsMainThread | | ЗАЗОР | окно.документ !== не определено | |
CallOnMainThread | | ЗАЗОР | Worker.postMessage + Atomics.wait | Можно построить эквивалентную синхронизацию. |
PPB_FileIO
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
Создавать | | ФС (частичный) | окно.chooseFileSystemEntries() | Create и open используются по-разному, но части имеют одинаковую силу. |
Открыть | | ФС (частичный) | окно.chooseFileSystemEntries() | |
Запрос | | ФС (частичный) | Blob.size, FileSystemHandle.getFile(), FileSystemHandle.getDirectory(), File.lastModified | GAP (частичный) — Blob.type также можно использовать для проверки типа MIME. Тип файловой системы, время создания и время последнего доступа не могут быть определены с помощью Native File System API. |
Трогать | | ФС (частичный) | FileSystemDirectoryHandle.getFile("имя", {create: true}) | |
Читать | | ФС (частичный) | Blob.slice().arrayBuffer() | |
Писать | | ФС (частичный) | ФайлСистемаWriter.write() | |
SetLength | | ФС (частичный) | FileSystemWriter.truncate() | |
Румянец | | ГАП (частичный) | GAP (частичный) — файлы сбрасываются при вызове FileSystemWrite.close(). | Это задумано намеренно, поскольку файлы API собственной файловой системы доступны ОС, поэтому перед отображением данных в ОС необходимо выполнить проверку безопасного просмотра. |
Закрывать | | ФС (частичный) | ФайлСистемВритер.закрыть() | Не отменяет ожидающие операции, но сбрасывает все записанные на данный момент данные на диск. |
ReadToArray | | ЗАЗОР | Blob.slice().arrayBuffer() или Blob.arrayBuffer() | Позволяет параллельное чтение нескольких поддиапазонов. |
PPB_FileRef
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
Создавать | | ФС (частичный) | FileSystemDirectoryHandle.getFile("имя", {create: true}) | |
GetFileSystemType | | ФС (частичный) | ФайловаяСистема.тип | |
Получить имя | | ФС (частичный) | Имя файла | |
GetPath | | ФС (частичный) | GAP (частичный) — с помощью API собственной файловой системы относительный путь к файлу можно определить по ссылке на каталог, содержащий файл, с помощью FileSystemHandle.resolve(FileSystemHandle). | Абсолютный путь к файлу определить невозможно, и пользователю необходимо предоставить разрешение на доступ к каталогу, содержащему файл. |
GetParent | | ФС (частичный) | GAP (частичный) — с помощью API собственной файловой системы относительный путь к файлу можно определить по ссылке на каталог, содержащий файл, с помощью FileSystemHandle.resolve(FileSystemHandle). | Пользователь должен предоставить разрешение на доступ к каталогу, содержащему файл. |
MakeDirectory | | ФС (частичный) | FileSystemHandle.getDirectory(..., {createIfNotExists: true}) | |
Трогать | | ФС (частичный) | FileSystemDirectoryHandle.getFile("имя", {create: true}) | Время изменения можно изменить, написав. |
Удалить | | ФС (частичный) | FileSystemDirectoryHandle.removeEntry() | В отличие от PPAPI, каталоги не обязательно должны быть пустыми. |
Переименовать | | ФС (частичный) | GAP (частичный) — с помощью Native File System API файл можно записать с новым именем, используя комбинацию FileSystemFileHandle.getFile() для нового имени и FileSystemFileHandle.createWriter().write() с содержимым старого. файл. Затем FileSystemDirectoryHandle.removeEntry(), чтобы удалить старый файл. | В API собственной файловой системы не существует прямого API, который мог бы сделать это за один шаг. |
Запрос | | ГАП (частичный) | Blob.size, FileSystemHandle.getFile(), FileSystemHandle.getDirectory(), File.lastModified | GAP (частичный) — Blob.type также можно использовать для проверки типа MIME. Тип файловой системы, время создания и время последнего доступа не могут быть определены с помощью API Native File System. |
ReadDirectoryEntries | | ФС (частичный) | FileSystemDirectoryHandle.getEntries() | |
PPB_FileSystem
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
Создавать | | ФС (частичный) | окно.requestFileSystem | JS API делает и то, и другое за один шаг |
Открыть | | ЗАЗОР | окно.requestFileSystem | JS API делает и то, и другое за один шаг |
GetType | | ЗАЗОР | ФайловаяСистема.тип | |
ППБ_Полный экран
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
IsFullScreen | | html5.h | Документ.fullscreenEnabled | |
Установить полноэкранный режим | | html5.h | Document.requestFullscreen | |
GetScreenSize | | html5.h | Document.exitFullscreen | |
PPB_Геймпад
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
Образец | | СДЛ | Геймпад.* | Объект Gamepad предоставляет метку времени относительно NavigationStart. Он обновляется при получении данных от оборудования https://www.w3.org/TR/gamepad/#gamepad-interface |
ППБ_Graphics2D
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
Создавать | | СДЛ | Canvas.getContext('2d') | |
Описывать | | СДЛ | Canvas.clientWidth + Canvas.clientHeight | |
PaintImageData | | СДЛ | CanvasRenderingContext2D.putImageData | |
Прокрутка | | ЗАЗОР | CanvasRenderingContext2D.scrollIntoView, CanvasRenderingContext2D.drawImage | GAP (частичный) — может быть реализован путем рисования холста на самом себе со смещением, используя drawImage, а затем заполняя остальное. |
ЗаменитьСодержимое | | СДЛ | CanvasRenderingContext2D.drawImage | |
Румянец | | ЗАЗОР | Нет прямого эквивалента | GAP (частичный) — в конце кода отрисовки всегда имеется неявный сброс; это вряд ли изменится. Однако комбинация OffscreenCanvas и ImageBitmapRenderingContext обеспечивает аналогичную функциональность. |
SetScale | | СДЛ | CanvasRenderingContext2D.scale | |
GetScale | | СДЛ | CanvasRenderingContext2D.currentTransform | |
SetLayerTransform | | СДЛ | CanvasRenderingContext2D.setTransform CanvasRenderingContext2D.scale CanvasRenderingContext2D.translate | |
ППБ_Графика3D
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
GetAttribMaxValue | | OpenGL ES 3.0 | ВебГЛ 2.0 | GAP (частичный) — WebGL 2.0 и версия OpenGL ES 3.0 от Emscripten поддерживают определяемые пользователем кадровые буферы с мультисэмплированием, в которых можно установить все параметры, настраиваемые через PPAPI. |
Создавать | | СДЛ | Холст.getContext | |
GetAttribs | | СДЛ | WebGLRenderingContext.getContextAttributes | |
SetAttribs | | СДЛ | Canvas.getContext(.., ОПЦИИ) | |
Получить ошибку | | СДЛ | WebGLRenderingContext.getError | |
Изменение размера буферов | | СДЛ | Холст.ширина = ш; Холст.высота = ч; | |
SwapBuffers | | ЗАЗОР | Нет прямого эквивалента | GAP (частичный) — в конце кода отрисовки всегда имеется неявный сброс; это вряд ли изменится. Однако комбинация OffscreenCanvas и ImageBitmapRenderingContext обеспечивает аналогичную функциональность. |
PPB_ImageData
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
GetNativeImageDataFormat | | СДЛ | ImageData требует порядка RGBA | |
Исимажедатаформатподдерживаемый | | СДЛ | ImageData требует порядка RGBA | |
Создавать | | СДЛ | CanvasRenderingContext2d.createImageData | |
Описывать | | СДЛ | ImageData никогда не делает шага вперед | |
Карта | | СДЛ | ImageData.data | |
Отменить карту | | СДЛ | ImageData.data | |
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
ЗапросИнпутЕвентс | | СДЛ | Нет прямого эквивалента | Отсутствие этой функции, вероятно, менее актуально, поскольку JS/Wasm работает в основном потоке и может дешевле фильтровать события, не подвергаясь перекрестному обмену процессами. |
RequestFilteringInputEvents | | СДЛ | мышь* клавиша* колесо* сенсорный* композиция* События | |
| | СДЛ | Элемент.addEventListener | |
ClearInputEventRequest | | СДЛ | Element.removeEventListener | |
GetType | | СДЛ | Потомки класса событий | |
GetTimeStamp | | СДЛ | Event.timeStamp | |
Получить модификаторы | | СДЛ | *Event.altKey/shiftKey/metaKey/ctrlKey | |
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
Создавать | | СДЛ | MouseEvent | |
GetButton | | СДЛ | MouseEvent.button | |
GetPosition | | СДЛ | MouseEvent.client*/page*/offset* | |
GetClickCount | | СДЛ | События dblclick» и «mousedown» | |
GetMovement | | СДЛ | MouseEvent.movement* | |
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
Создавать | | СДЛ | КолесоСобытие | |
GetDelta | | СДЛ | WheelEvent.delta* | |
GetTicks | | ЗАЗОР | GAP - deltaMode вроде как содержит эту информацию, но не полностью. | Обсуждается реализация API WheelEvent.deltaMode: https://github.com/w3c/uievents/issues/181#issuecomment-537811017. |
GetScrollByPage | | ЗАЗОР | GAP - deltaMode вроде как содержит эту информацию, но не полностью. | Обсуждается реализация API WheelEvent.deltaMode: https://github.com/w3c/uievents/issues/181#issuecomment-537811017. |
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
Создавать | | СДЛ | KeyboardEvent | |
GetKeyCode | | СДЛ | KeyboardEvent.keyCode | |
GetCharacterText | | СДЛ | KeyboardEvent.key | |
Получить код | | СДЛ | KeyboardEvent.code | |
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
Создавать | | СДЛ | TouchEvent | |
Добавитьтачпоинт | | СДЛ | TouchEvent.touches.push | |
GetTouchCount | | СДЛ | TouchEvent.touches.length | |
GetTouchByIndex | | СДЛ | TouchEvent.touches[я] | |
GetTouchById | | СДЛ | Touch.indentifer (чтобы разобраться в этом самостоятельно) | |
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
Создавать | | ЗАЗОР | КомпозицияСобытие | |
Получитьтекст | | ЗАЗОР | КомпозицияEvent.data | |
GetSegmentNumber | | ЗАЗОР | GAP – прямого эквивалента нет. | Эти данные потенциально можно получить из CompositionEvent.data. |
GetSegmentOffset | | ЗАЗОР | GAP – прямого эквивалента нет. | |
GetTargetSegment | | ЗАЗОР | GAP – прямого эквивалента нет. | |
GetSelection | | ЗАЗОР | GAP – прямого эквивалента нет. | |
PPB_экземпляр
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
BindГрафика | | СДЛ | Canvas.getContext (спорно, поскольку привязка выполняется автоматически). | |
IsFullFrame | | ЗАЗОР | GAP — нет эквивалента обработчикам типов mime. | Приложения NaCl можно зарегистрировать для обработки определенного типа mime и владения всем документом. |
DidCreate | | Н/Д | <Элемент>[ключ] | Общий доступ к DOM позволяет извлекать атрибуты тегов. |
ДидУничтожить | | Н/Д | Н/Д | Не срабатывает для NaCl |
DidChangeView | | Н/Д | Событие изменения размера элемента | |
DidChangeFocus | | Н/Д | Элемент «фокус», «фокус», «фокус» События | |
РучкаДокументЗагрузка | | Н/Д | GAP – невозможно зарегистрироваться в качестве обработчика типа mime | Модули NaCl через приложения + запись манифеста можно настроить для обработки определенных типов mime. |
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
Настроить | | ЗАЗОР | getUserMedia() | Ограничения getUserMedia() могут предоставлять значения конфигурации для использования в MediaStreamTrack. |
GetAttrib | | ЗАЗОР | MediaStreamTrack.getSettings() | |
GetId | | ЗАЗОР | МедиаСтримТрек.ид | |
Завершилось | | ЗАЗОР | MediaStreamTrack.readyState | |
GetBuffer | | ЗАЗОР | ГАП – нет эквивалента | |
RecycleBuffer | | ЗАЗОР | ГАП – нет эквивалента | |
Закрывать | | ЗАЗОР | МедиаСтримТрек.стоп() | |
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
Создавать | | ЗАЗОР | Захват холста | Canvas Capture предоставляет возможность программно вводить видеокадры. |
Настроить | | ЗАЗОР | applyConstraints(), getUserMedia() | GAP (частичный) — объем конфигураций, доступных в веб-API, может отличаться от PPAPI. |
GetAttrib | | ЗАЗОР | MediaStreamSettings.ширина | |
| | ЗАЗОР | MediaStreamSettings.height | |
| | ЗАЗОР | GAP – нет эквивалента PP_MEDIASTREAMVIDEOTRACK_ATTRIB_BUFFERED_FRAMES | MediaStream не может быть предварительно загружен, поэтому он никогда не будет буферизоваться: https://www.w3.org/TR/mediacapture-streams/#mediastreams-in-media-elements |
| | ЗАЗОР | GAP – нет эквивалента PP_MEDIASTREAMVIDEOTRACK_ATTRIB_FORMAT | |
GetId | | ЗАЗОР | МедиаСтримТрек.ид | |
Завершилось | | ЗАЗОР | MediaStreamTrack.readyState | |
GetFrame | | ЗАЗОР | ГАП – нет эквивалента | |
RecycleFrame | | ЗАЗОР | ГАП – нет эквивалента | |
Закрывать | | ЗАЗОР | МедиаСтримТрек.стоп() | |
GetEmptyFrame | | ЗАЗОР | ГАП – нет эквивалента | |
PutFrame | | ЗАЗОР | ГАП – нет эквивалента | |
PPB_MessageLoop
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
Создавать | | Н/Д | В основном это спорный вопрос, работники получают неявный цикл событий. | |
GetForMainThread | | Н/Д | В основном это спорный вопрос, работники получают неявный цикл событий. | |
Получить текущий | | Н/Д | В основном это спорный вопрос, работники получают неявный цикл событий. | |
ПрисоединитьToCurrentThread | | Н/Д | В основном это спорный вопрос, работники получают неявный цикл событий. | |
Бегать | | Н/Д | В основном это спорный вопрос, работники получают неявный цикл событий. | |
Постработа | | Н/Д | В основном это спорный вопрос, работники получают неявный цикл событий. | |
Пост-Выход | | Н/Д | В основном это спорный вопрос, работники получают неявный цикл событий. | |
PPB_Сообщения
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
СообщениеСообщение | | Н/Д | Окно.postMessage | |
Обработчик сообщения регистрации | | Н/Д | Window.addEventListener | |
Отменить регистрацию обработчика сообщения | | Н/Д | Window.removeEventListener | |
PPB_MouseCursor
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
Установитькурсор | | СДЛ | Элемент.стиль.курсор | Поддерживается тот же набор стандартных курсоров. Пользовательские курсоры можно создать с помощью url(..). Динамические пользовательские курсоры можно создавать с помощью URI данных. CSS3 поддерживает указание точки доступа. |
PPB_MouseLock
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
БлокировкаМышь | | СДЛ | Элемент.requestPointerLock | |
РазблокироватьМышь | | СДЛ | Элемент.exitPointerLock | |
ППБ_OpenGLES2
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
Несколько методов | | OpenGLES | По функциональности близок к WebGL 1.0. | |
| х | | За кадромХолст | |
PPB_TextInputController
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
Сеттекстинпуттипе | | ЗАЗОР | GAP – потенциально заполняется с помощью API редактора методов ввода. | Некоторые разработчики хотели бы либо иметь возможность подсказывать таким образом, либо, предпочтительно, иметь возможность перехватывать и отображать события/вывод IME внутри холста. |
ОбновлениеКаретПозиция | | ЗАЗОР | GAP – потенциально заполняется с помощью API редактора методов ввода. | https://www.w3.org/TR/ime-api/ |
ОтменаКомпозицииТекст | | ЗАЗОР | GAP – потенциально заполняется с помощью API редактора методов ввода. | https://www.w3.org/TR/ime-api/ |
Обновление окружающего текста | | ЗАЗОР | GAP – потенциально заполняется с помощью API редактора методов ввода. | https://www.w3.org/TR/ime-api/ |
PPB_URLLoader
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
Создавать | | включать | новый XMLHttpRequest(); | |
Открыть | | включать | XMLHttpRequest.open | |
СледоватьПеренаправление | | включать | Запрос.перенаправление | |
| | ЗАЗОР | GAP – нет эквивалента XMLHTTPRequest. | |
Получить прогресс загрузки | | включать | Событие XMLHttpRequest 'прогресс' | |
| | ЗАЗОР | FetchObserver | Еще не запланировано и не реализовано; https://github.com/whatwg/fetch/issues/607 |
Получить прогресс загрузки | | включать | Событие XMLHttpRequest 'прогресс' | |
| | ЗАЗОР | FetchObserver | Еще не разработано и не реализовано; https://github.com/whatwg/fetch/issues/607 |
GetResponseInfo | | включать | XMLHttpRequest.getAllResponseHeaders | |
| | включать | Получить ответ.* | |
ReadResponseBody | | включать | XMLHttpRequest.response | |
| | включать | Тело.* (Ответ — это тело) | |
Финишстримингтофиле | | включать | GAP – прямого эквивалента нет. | XMLHttpRequest и Fetch предполагают потоковую передачу в память, а не непосредственно в хранилище. |
Закрывать | | включать | XMLHttpRequest.abort | |
| | ЗАЗОР | API-интерфейс получения: AbortSignal и AbortController | |
PPB_URLRequestInfo
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
Создавать | | включать | XMLHttpRequest | |
| | включать | Получить запрос | |
Установитьсвойство | | ЗАЗОР | GAP – нет прямого эквивалента для XMLHttpRequest | XMLHttpRequest не предоставляет прямых способов ограничения количества запросов после перенаправлений, потоковой передачи в файл, установки реферера или политики учетных данных. |
| | включать | Запрос.* | |
Аппенддататободи | | включать | XMLHttpRequest.send | GAP - Оба должны иметь все тело, а не кусок. |
| | включать | выборка(.., параметры:тело) | |
Аппендфилетободи | | ЗАЗОР | fetch() загрузить потоковую передачу | https://www.chromestatus.com/features/5274139738767360 |
| | Н/Д | <форма> | Вы также можете читать с помощью FileReader и загружать, но это больше похоже на AppendDataToBody. |
PPB_URLResponseInfo
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
GetProperty | | включать | XMLHttpRequest.getAllResponseHeaders + другие | |
| | включать | Получить ответ.* | |
GetBodyAsFileRef | | включать | Получить ответ (тело).blob() | Предполагается, что уровень хранения оптимизирует передачу. |
ППБ_Вар
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
Варфромутф8 | | включать | TextDecoder.decode | |
ВарТоУтф8 | | включать | TextEncoder.encode | |
Варфромресурсе | | Н/Д | Н/Д | |
ВарТоРесурс | | Н/Д | Н/Д | |
PPB_VarArray
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
Получать | | включать | Массив[я] | |
Набор | | включать | Массив[я] = х | |
Получить длину | | включать | Массив.длина | |
SetLength | | включать | Массив.длина = n | |
PPB_VarArrayBuffer
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
Создавать | | включать | новый ArrayBuffer (n) | |
длина байта | | включать | ArrayBuffer.byteLength | |
Карта | | ЗАЗОР | GAP – прямого эквивалента нет. | Модули Asm.js/Wasm не могут отображать области ArrayBuffer, кроме их единственной кучи линейной памяти. В будущем множественная память или отображение памяти могут улучшить эту ситуацию. |
Отменить карту | | ЗАЗОР | GAP – прямого эквивалента нет. | |
PPB_VarDictionary
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
Создавать | | включать | {} | |
Получать | | включать | <Объект>[я] | |
Набор | | включать | <Объект>[i] = х | |
Удалить | | включать | удалить <Объект>[i] | |
ХасКей | | включать | х в <Объект> | |
Получить ключи | | включать | for (k в <Объект>) {} | Буквального эквивалента нет, но его можно построить. |
PPB_VideoDecoder
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
Создавать | | ЗАЗОР | GAP — будет обрабатываться с помощью предлагаемого API WebCodecs с использованием VideoDecoder(). | https://github.com/WICG/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-streaming-or-cloud-gaming |
Инициализировать | | ЗАЗОР | GAP — будет обрабатываться с помощью предлагаемого API WebCodecs с использованием параметров инициализации VideoDecoder() (VideoDecoderInitParameters). | https://github.com/WICG/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-streaming-or-cloud-gaming |
Декодировать | | ЗАЗОР | GAP — будет обрабатываться с помощью предлагаемого API WebCodecs с использованием ReadableStream.pipeThrough(VideoDecoder). | https://github.com/WICG/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-streaming-or-cloud-gaming |
GetPicture | | ЗАЗОР | GAP — будет обрабатываться с помощью предлагаемого API WebCodecs с использованием ReadableStream.pipeThrough(VideoDecoder).pipeTo(VideoTrackWriter().writable). | https://github.com/WICG/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-streaming-or-cloud-gaming |
RecycleКартинка | | ЗАЗОР | GAP — будет обрабатываться с помощью предлагаемого API WebCodecs. Текущая конструкция автоматически перерабатывает изображения и продолжает процесс декодирования. | https://github.com/WICG/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-streaming-or-cloud-gaming |
Румянец | | ЗАЗОР | GAP — будет обрабатываться с помощью предлагаемого API WebCodecs. API будет называться Flush(), однако еще ведутся дискуссии о том, как он будет упорядочиваться по отношению к вызовам декодирования. | https://github.com/WICG/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-streaming-or-cloud-gaming |
Перезагрузить | | ЗАЗОР | GAP — будет обрабатываться с помощью предлагаемого API WebCodecs путем уничтожения экземпляра VideoDecoder и создания нового. Это будет не так эффективно, как специальный метод сброса, но семантика API Reset() все еще обсуждается. | https://github.com/WICG/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-streaming-or-cloud-gaming |
PPB_VideoEncoder
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
Создавать | | ЗАЗОР | GAP — будет обрабатываться с помощью предлагаемого API WebCodecs с использованием VideoEncoder(). | |
Получить поддерживаемые профили | | ЗАЗОР | GAP (частичный) — navigator.mediaCapabilities.encodingInfo() | Поддерживаемые профили необходимо проверять один за другим. |
Инициализировать | | ЗАЗОР | GAP — будет обрабатываться с помощью предлагаемого API WebCodecs с использованием параметров инициализации VideoEncoder(). | |
GetFramesRequired | | ЗАЗОР | ГАП – нет эквивалента | Маловероятно, что пул кадров, используемый внутри API веб-кодеков, будет раскрыт. |
GetFrameCodedSize | | ЗАЗОР | ГАП – нет эквивалента | Маловероятно, что пул кадров, используемый внутри API веб-кодеков, будет раскрыт. |
Получитьвидеокадр | | ЗАЗОР | GAP — будет обрабатываться с помощью предлагаемого API WebCodecs с использованием ReadableStream.pipeThrough(VideoEncoder). Это позволит напрямую кодировать данные в потоке Readable вместо захвата одного кадра для заполнения данными перед кодированием. | |
Кодировать | | ЗАЗОР | GAP — будет обрабатываться с помощью предлагаемого API WebCodecs с использованием ReadableStream.pipeThrough(VideoEncoder). | |
GetBitstreamBuffer | | ЗАЗОР | GAP — будет обрабатываться с помощью предлагаемого API WebCodecs. Текущий проект автоматически пройдет через буфер закодированного битового потока, который передается по конвейеру. | API WebCodecs в настоящее время предполагает, что буфер битового потока можно копировать, а не объединять в пул, поэтому его не нужно перерабатывать. |
RecycleBitstreamBuffer | | ЗАЗОР | GAP — будет обрабатываться с помощью предлагаемого API WebCodecs. Текущая конструкция автоматически перезапускает буфер для продолжения процесса кодирования. | Это вряд ли изменится в будущем, поскольку влияние на производительность меньше. |
ЗапросEncodingParametersChange | | ЗАЗОР | GAP — будет обрабатываться предлагаемым API веб-кодеков. Некоторые параметры можно будет изменять на лету, в то время как другие потребуют демонтажа кодировщика. | |
Закрывать | | ЗАЗОР | GAP — будет обрабатываться с помощью предлагаемого API WebCodecs с помощью VideoEncoder.Close(). | |
PPB_VideoFrame
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
Получить временную метку | | ЗАЗОР | GAP — будет обрабатываться с помощью предлагаемого API WebCodecs. | |
Установить временную метку | | ЗАЗОР | GAP — будет обрабатываться с помощью предлагаемого API WebCodecs. | |
GetFormat | | ЗАЗОР | GAP — будет обрабатываться с помощью предлагаемого API WebCodecs. | |
GetSize | | ЗАЗОР | GAP — будет обрабатываться с помощью предлагаемого API WebCodecs. | |
GetDataBuffer | | ЗАЗОР | GAP — будет обрабатываться с помощью предлагаемого API WebCodecs. | |
GetDataBufferSize | | ЗАЗОР | GAP — будет обрабатываться с помощью предлагаемого API WebCodecs. | |
ППБ_Просмотр
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
GetRect | | включать | Element.getBoundingClientRect | |
IsFullscreen | | включать | Документ.fullScreenEnabled | Относится к документу, а не только к одному элементу. |
IsVisible | | включать | ПересечениеОбозреватель | |
IsPageVisible | | включать | документ.visibilityState | |
GetClipRect | | включать | ПересечениеОбозреватель | |
GetDeviceScale | | включать | окно.devicePixelRatio | |
Получить CSSScale | | включать | <Element>.getBoundingClientRect().width / <Element>.offsetWidth | |
GetScrollOffset | | включать | <Элемент>.scrollTop / <Элемент>.scrollLeft | |
PPB_WebSocket
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
Создавать | | ЗАЗОР | Вебсокет.Вебсокет | |
Соединять | | ЗАЗОР | WebSocket.WebSocket(url, ...) Событие WebSocket «open» | |
Закрывать | | ЗАЗОР | Вебсокет.закрыть | |
Получить сообщение | | ЗАЗОР | Событие WebSocket «сообщение» Событие WebSocket «ошибка» Событие WebSocket «закрытие» | |
Отправить сообщение | | ЗАЗОР | WebSocket.send | |
GetBufferedAmount | | ЗАЗОР | WebSocket.bufferedAmount | |
GetCloseCode | | ЗАЗОР | CloseEvent.code | |
GetCloseReason | | ЗАЗОР | CloseEvent.reason | |
GetCloseWasClean | | ЗАЗОР | CloseEvent.wasClean | |
Получить расширения | | ЗАЗОР | WebSocket.extensions | |
Получить протокол | | ЗАЗОР | WebSocket.протокол | |
GetReadyState | | ЗАЗОР | Вебсокет.readyState | |
ПолучитьURL | | ЗАЗОР | Вебсокет.url | |
PPP_Graphics3D
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
Графика3DКонтекстПотерян | | СДЛ | Событие Canvas 'webglcontextlost' | |
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
HandleInputEvent | | СДЛ | Элемент.addEventListener | |
PPP_экземпляр
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
DidCreate | | Н/Д | <Элемент>[ключ] | Общий доступ к DOM позволяет извлекать атрибуты тегов. |
ДидУничтожить | | Н/Д | Н/Д | Не срабатывает для NaCl |
DidChangeView | | Н/Д | Событие изменения размера элемента | |
DidChangeFocus | | Н/Д | Элемент «фокус», «фокус», «фокус» События | |
РучкаДокументЗагрузка | | Н/Д | GAP – невозможно зарегистрироваться в качестве обработчика типа mime | Модули NaCl через приложения + запись манифеста можно настроить для обработки определенных типов mime. |
PPP_MessageHandler
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
РучкаСообщение | | включать | MessagePort 'message' Окно событий 'message' Событие | |
РучкаБлокировкаСообщение | | Н/Д | GAP – прямого эквивалента нет. | Аналогичную синхронизацию можно выполнить вне основного потока с помощью Atomics.wait. Это было добавлено для поддержки эмуляции API синхронных плагинов. |
PPP_Сообщения
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
РучкаСообщение | | включать | MessagePort 'message' Окно событий 'message' Событие | |
PPP_MouseLock
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
МышьЗамокПотерян | | СДЛ | События элемента 'pointerlockchange', 'pointerlockerror' | |
ИРТ
ППБ_Аудио
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
Создавать | х | SDL (частичный) | GAP (частичный) — AudioWorkletNode ПРИМЕРНО эквивалент | AudioWorkletSpec готов, но AudioDeviceClient может лучше подойти для этого API. AudioDeviceClient все еще определяется сообществом. Возможно, ворлет не является приблизительным эквивалентом этого API. |
Получить текущую конфигурацию | | СДЛ | AudioContext.* (возвращает переданные настройки) | |
НачатьВоспроизведение | | СДЛ | AudioBufferSourceNode.start | |
ОстановитьВоспроизведение | | СДЛ | AudioBufferSourceNode.stop | |
PPB_AudioBuffer
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
Получить временную метку | | СДЛ | AudioBufferSourceNode.start (параметр) | Передается каждый раз вместо прикрепления к буферу. |
Установить временную метку | | СДЛ | AudioBufferSourceNode.start (параметр) | |
GetSampleRate | | СДЛ | AudioBuffer.sampleRate | |
GetSampleSize | | ЗАЗОР | GAP — WebAudio использует только 32-битное число с плавающей запятой, PPAPI — 16-битное целое. | PPAPI теоретически поддерживает несколько размеров выборки. На практике он поддерживает только 16-битные сэмплы. К сожалению, разработчики запросили 16-битные размеры выборки, чтобы сэкономить на использовании памяти. В следующей версии спецификации Web Audio будет реализована поддержка 16-битных сэмплов. Оптимизацию AudioBuffer можно реализовать аналогично Firefox, используя 16-битный буфер для звука, поступающего из decodeAudioData. |
GetNumberOfChannels | | СДЛ | AudioBuffer.numberOfChannels | |
GetDataBuffer | | СДЛ | AudioBuffer.getChannelData | |
GetBufferSize | | СДЛ | AudioBuffer.length | |
ППБ_АудиоКонфиг
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
СоздатьStereo16Bit | | ЗАЗОР | GAP — поддерживаются только 32-битные образцы с плавающей запятой. | В следующей версии спецификации Web Audio будет реализована поддержка 16-битных сэмплов. |
GetSampleRate | | СДЛ | AudioContext.sampleRate | |
GetSampleFrameCount | | СДЛ | AudioBuffer.length | |
РекомендоватьSampleRate | | СДЛ | AudioContext.sampleRate (из конструкции по умолчанию) | AudioContext будет иметь предпочтительную частоту дискретизации, которая по умолчанию соответствует фактической частоте дискретизации аппаратного аудиоустройства. |
РекомендоватьSampleFrameCount | | ЗАЗОР | GAP – будет обрабатываться с помощью запланированного AudioDeviceClient. | Существует открытый вопрос о разрешении размера, указываемого пользователем, но он все еще определяется. Вероятно, лучше всего это решить с помощью AudioDeviceClient, который может сказать вам, какой размер будет подходящим для данного оборудования. |
ППБ_Консоль
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
Бревно | | время работы | console.log/warn/error/... | |
Журнал с источником | | ЗАЗОР | ЗАЗОР | Консольный API считается достаточно полной заменой, если только разработчиками не предложены конкретные варианты использования функций, предоставляемых LogWithSource. Карты исходного кода DevTools можно использовать для отладки транспилированного JavaScript на исходном исходном языке. |
PPB_Core
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
getTime | | время работы | новая дата().getTime() | |
getTimeTicks | | время работы | новая дата().getTime() | |
IsMainThread | | ЗАЗОР | окно.документ !== не определено | |
CallOnMainThread | | ЗАЗОР | Worker.postMessage + Atomics.wait | Можно построить эквивалентную синхронизацию. |
PPB_FileIO
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
Создавать | | ФС (частичный) | окно.chooseFileSystemEntries() | Create и open используются по-разному, но части имеют одинаковую силу. |
Открыть | | ФС (частичный) | окно.chooseFileSystemEntries() | |
Запрос | | ФС (частичный) | Blob.size, FileSystemHandle.getFile(), FileSystemHandle.getDirectory(), File.lastModified | GAP (частичный) — Blob.type также можно использовать для проверки типа MIME. Тип файловой системы, время создания и время последнего доступа не могут быть определены с помощью Native File System API. |
Трогать | | ФС (частичный) | FileSystemDirectoryHandle.getFile("имя", {create: true}) | |
Читать | | ФС (частичный) | Blob.slice().arrayBuffer() | |
Писать | | ФС (частичный) | ФайлСистемаWriter.write() | |
SetLength | | ФС (частичный) | FileSystemWriter.truncate() | |
Румянец | | ГАП (частичный) | GAP (частичный) — файлы сбрасываются при вызове FileSystemWrite.close(). | Это задумано намеренно, поскольку файлы API собственной файловой системы доступны ОС, поэтому перед отображением данных в ОС необходимо выполнить проверку безопасного просмотра. |
Закрывать | | ФС (частичный) | ФайлСистемВритер.закрыть() | Не отменяет ожидающие операции, но сбрасывает все записанные на данный момент данные на диск. |
ReadToArray | | ЗАЗОР | Blob.slice().arrayBuffer() или Blob.arrayBuffer() | Позволяет параллельное чтение нескольких поддиапазонов. |
PPB_FileRef
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
Создавать | | ФС (частичный) | FileSystemDirectoryHandle.getFile("имя", {create: true}) | |
GetFileSystemType | | ФС (частичный) | ФайловаяСистема.тип | |
Получить имя | | ФС (частичный) | Имя файла | |
GetPath | | ФС (частичный) | GAP (частичный) — с помощью API собственной файловой системы относительный путь к файлу можно определить по ссылке на каталог, содержащий файл, с помощью FileSystemHandle.resolve(FileSystemHandle). | Абсолютный путь к файлу определить невозможно, и пользователю необходимо предоставить разрешение на доступ к каталогу, содержащему файл. |
GetParent | | ФС (частичный) | GAP (частичный) — с помощью API собственной файловой системы относительный путь к файлу можно определить по ссылке на каталог, содержащий файл, с помощью FileSystemHandle.resolve(FileSystemHandle). | Пользователь должен предоставить разрешение на доступ к каталогу, содержащему файл. |
MakeDirectory | | ФС (частичный) | FileSystemHandle.getDirectory(..., {createIfNotExists: true}) | |
Трогать | | ФС (частичный) | FileSystemDirectoryHandle.getFile("имя", {create: true}) | Время изменения можно изменить, написав. |
Удалить | | ФС (частичный) | FileSystemDirectoryHandle.removeEntry() | В отличие от PPAPI, каталоги не обязательно должны быть пустыми. |
Переименовать | | ФС (частичный) | GAP (частичный) — с помощью Native File System API файл можно записать с новым именем, используя комбинацию FileSystemFileHandle.getFile() для нового имени и FileSystemFileHandle.createWriter().write() с содержимым старого. файл. Затем FileSystemDirectoryHandle.removeEntry(), чтобы удалить старый файл. | В API собственной файловой системы не существует прямого API, который мог бы сделать это за один шаг. |
Запрос | | ГАП (частичный) | Blob.size, FileSystemHandle.getFile(), FileSystemHandle.getDirectory(), File.lastModified | GAP (частичный) — Blob.type также можно использовать для проверки типа MIME. Тип файловой системы, время создания и время последнего доступа не могут быть определены с помощью Native File System API. |
ReadDirectoryEntries | | ФС (частичный) | FileSystemDirectoryHandle.getEntries() | |
PPB_FileSystem
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
Создавать | | ФС (частичный) | окно.requestFileSystem | JS API делает и то, и другое за один шаг |
Открыть | | ЗАЗОР | окно.requestFileSystem | JS API делает и то, и другое за один шаг |
GetType | | ЗАЗОР | ФайловаяСистема.тип | |
ППБ_Полный экран
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
IsFullScreen | | html5.h | Документ.fullscreenEnabled | |
Установить полноэкранный режим | | html5.h | Document.requestFullscreen | |
GetScreenSize | | html5.h | Document.exitFullscreen | |
PPB_Геймпад
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
Образец | | СДЛ | Геймпад.* | Объект Gamepad предоставляет метку времени относительно NavigationStart. Он обновляется при получении данных от оборудования https://www.w3.org/TR/gamepad/#gamepad-interface |
ППБ_Graphics2D
Метод PPAPI | Предполагает потоки | Эмскриптен | Веб-API | Ограничения |
Создавать | | СДЛ | Canvas.getContext('2d') | |
Описывать | | СДЛ | Canvas.clientWidth + Canvas.clientHeight | |
PaintImageData | | СДЛ | CanvasRenderingContext2D.putImageData | |
Прокрутка | | ЗАЗОР | CanvasRenderingContext2D.scrollIntoView, CanvasRenderingContext2D.drawImage | GAP (частичный) — может быть реализован путем рисования холста на себя со смещением с помощью drawImage и последующего заполнения оставшейся части. |
ЗаменитьСодержимое | | СДЛ | CanvasRenderingContext2D.Drawimage | |
Румянец | | ЗАЗОР | Нет прямого эквивалента | GAP (Partial) - В конце кода рисунка всегда есть неявный смысл; Это вряд ли изменится. Тем не менее, комбинация вне экрана и ImagebitmaprenderingContext предоставляет аналогичную функциональность. |
SetScale | | СДЛ | CanvasRenderingContext2D.Scale | |
Getscale | | СДЛ | CanvasRenderingContext2d.currentTransform | |
SetLayerTransform | | СДЛ | CanvasRenderingContext2D.SetTransform CanvasRenderingContext2d.Scale CanvasRenderingContext2D.Translate | |
Ppb_graphics3d
Метод PPAPI | Предполагает потоки | Emscripten | Веб-API | Ограничения |
Getattribmaxvalue | | OpenGL ES 3.0 | Webgl 2.0 | GAP (Partial) - WebGL 2.0 и Emscripten's Opens OpenGL ES 3.0 поддерживают пользовательские многопользовательские кадры, в которых могут быть установлены все параметры, настраиваемые с помощью PPAPI. |
Создавать | | СДЛ | Canvas.getContext | |
Getattribs | | СДЛ | Webglrenderingcontext.getContextattributes | |
Setattribs | | СДЛ | Canvas.getContext (.., Options) | |
Geterror | | СДЛ | Webglrenderingcontext.geterror | |
RESIZEBUFFERS | | СДЛ | Canvas.width = w; Canvas.height = h; | |
Смены | | ЗАЗОР | Нет прямого эквивалента | GAP (Partial) - В конце кода рисунка всегда есть неявный смысл; Это вряд ли изменится. Тем не менее, комбинация вне экрана и ImagebitmaprenderingContext предоставляет аналогичную функциональность. |
PPB_ImageData
Метод PPAPI | Предполагает потоки | Emscripten | Веб-API | Ограничения |
GetNativeImagedataFormat | | СДЛ | Imagedata мандаты RGBA приказ | |
Isimagedataformatsupported | | СДЛ | Imagedata мандаты RGBA приказ | |
Создавать | | СДЛ | CanvasRenderingContext2d.createImagedata | |
Описывать | | СДЛ | Imagedata никогда не имеет шага | |
Карта | | СДЛ | Imagedata.data | |
Невозмутимый | | СДЛ | Imagedata.data | |
Метод PPAPI | Предполагает потоки | Emscripten | Веб-API | Ограничения |
Запрос | | СДЛ | Нет прямого эквивалента | Отсутствие этой функции, вероятно, менее актуально, так как JS / WASM работает в основной потоке и может дешевле фильтровать события без перекрестного процесса в оба конца. |
RequestFilteringInputeVents | | СДЛ | мышь* ключ* колесо* прикосновение* композиция* События | |
| | СДЛ | Element.AddeventListener | |
ClearInPuteVentRequest | | СДЛ | Element.removeeventlistener | |
GetType | | СДЛ | Класс мероприятий потомки | |
GetTimeStamp | | СДЛ | Event.timestamp | |
GetModifiers | | СДЛ | *Event.altkey/shiftkey/metakey/ctrlkey | |
Метод PPAPI | Предполагает потоки | Emscripten | Веб-API | Ограничения |
Создавать | | СДЛ | MouseEvent | |
Getbutton | | СДЛ | Mouseevent.button | |
GetPosition | | СДЛ | Mouseevent.client*/page*/offset* | |
GetClickCount | | СДЛ | Dblclick 'Vs' Mousedown Events | |
GetMovement | | СДЛ | Mouseevent.movement* | |
Метод PPAPI | Предполагает потоки | Emscripten | Веб-API | Ограничения |
Создавать | | СДЛ | WheelEvent | |
Getdelta | | СДЛ | Wheelevent.delta* | |
Getticks | | ЗАЗОР | Gap - Deltamode содержит эту информацию, но не полностью. | Существует обсуждение в реализации API wheelevent.deltamode: https://github.com/w3c/uievents/issues/181#issuecomment-537811017 |
GetScrollBypage | | ЗАЗОР | Gap - Deltamode содержит эту информацию, но не полностью. | Существует обсуждение в реализации API wheelevent.deltamode: https://github.com/w3c/uievents/issues/181#issuecomment-537811017 |
Метод PPAPI | Предполагает потоки | Emscripten | Веб-API | Ограничения |
Создавать | | СДЛ | KeyboardEvent | |
GetKeyCode | | СДЛ | Keyboardevent.keycode | |
GetCharacterText | | СДЛ | Keyboardevent.key | |
GetCode | | СДЛ | Keyboardevent.code | |
Метод PPAPI | Предполагает потоки | Emscripten | Веб-API | Ограничения |
Создавать | | СДЛ | TouchEvent | |
Addtouchpoint | | СДЛ | Touchevent.touches.push | |
GetTouchCount | | СДЛ | Touchevent.touches.length | |
GetTouchByindex | | СДЛ | Touchevent.touches [i] | |
GetTouchbyid | | СДЛ | Прикоснись. | |
Метод PPAPI | Предполагает потоки | Emscripten | Веб-API | Ограничения |
Создавать | | ЗАЗОР | CompositionEvent | |
Получитьтекст | | ЗАЗОР | CompositionEvent.data | |
GetSegmentNumber | | ЗАЗОР | Разрыв - без прямой эквивалент | Эти данные потенциально могут быть извлечены из compositionEvent.data. |
GetSementOffset | | ЗАЗОР | Разрыв - без прямой эквивалент | |
GetTargetSegment | | ЗАЗОР | Разрыв - без прямой эквивалент | |
GetSelection | | ЗАЗОР | Разрыв - без прямой эквивалент | |
Ppb_instance
Метод PPAPI | Предполагает потоки | Emscripten | Веб-API | Ограничения |
BindGraphics | | СДЛ | Canvas.getContext (Moot As Buding Automatic). | |
Isfullframe | | ЗАЗОР | GAP - Нет эквивалента обработчиков типа MIME. | Приложения NACL могут быть зарегистрированы для обработки конкретного типа MIME и владения всем документом. |
Didcreate | | Н/Д | <element> [ключ] | Общий доступ к DOM позволяет вам рыть атрибуты тега |
Дидестрой | | Н/Д | Н/Д | Не запускается для NaCl |
Didchangeview | | Н/Д | Элемент «Изменение размера» | |
Didchangefocus | | Н/Д | Элемент 'Focus', 'Focusin', 'Focusout' события | |
Обработка | | Н/Д | Разрыв - нет способа зарегистрироваться в качестве обработчика типа MIME | Модули NaCl через приложения + манифестная запись может быть настроена для обработки определенных типов MIME. |
Метод PPAPI | Предполагает потоки | Emscripten | Веб-API | Ограничения |
Настроить | | ЗАЗОР | getusermedia () | Ограничения от getUsermedia () могут предоставить значения конфигурации для использования в MediaStreamTrack. |
Getattrib | | ЗАЗОР | Mediastreamtrack.getSettings () | |
GetId | | ЗАЗОР | Mediastreamtrack.id | |
Увеличен | | ЗАЗОР | Mediastreamtrack.readystate | |
GetBuffer | | ЗАЗОР | Разрыв - без эквивалента | |
Recyclebuffer | | ЗАЗОР | Разрыв - без эквивалента | |
Закрывать | | ЗАЗОР | Mediastreamtrack.stop () | |
Метод PPAPI | Предполагает потоки | Emscripten | Веб-API | Ограничения |
Создавать | | ЗАЗОР | Захват холста | Canvas захват обеспечивает возможность программно вводить видео кадры. |
Настроить | | ЗАЗОР | ApplyConstraints (), getUsermedia () | GAP (частичный) - степень конфигураций, доступных в веб -API, может отличаться от PPAPI. |
Getattrib | | ЗАЗОР | MediaStreamSettings.width | |
| | ЗАЗОР | MediaStreamSettings.height | |
| | ЗАЗОР | GAP - Нет эквивалента PP_MediastreamVideOtrack_attrib_buffered_frames | MediaStream не может быть предварительно загружен, поэтому он никогда не будет буфером: https://www.w3.org/tr/mediacapture-streams/#mediastreams-in-media-elements |
| | ЗАЗОР | GAP - нет эквивалента PP_MediastreamVideOtrack_attrib_format | |
GetId | | ЗАЗОР | Mediastreamtrack.id | |
Увеличен | | ЗАЗОР | Mediastreamtrack.readystate | |
GetFrame | | ЗАЗОР | Разрыв - без эквивалента | |
Recycleframe | | ЗАЗОР | Разрыв - без эквивалента | |
Закрывать | | ЗАЗОР | Mediastreamtrack.stop () | |
GetEmptyFrame | | ЗАЗОР | Разрыв - без эквивалента | |
PUTFRAME | | ЗАЗОР | Разрыв - без эквивалента | |
Ppb_messageloop
Метод PPAPI | Предполагает потоки | Emscripten | Веб-API | Ограничения |
Создавать | | Н/Д | В основном спорные, работники получают неявный цикл событий. | |
GetFormainThread | | Н/Д | В основном спорные, работники получают неявный цикл событий. | |
GetCurrent | | Н/Д | В основном спорные, работники получают неявный цикл событий. | |
AttactTocurrentThread | | Н/Д | В основном спорные, работники получают неявный цикл событий. | |
Бегать | | Н/Д | В основном спорные, работники получают неявный цикл событий. | |
Почтовая работа | | Н/Д | В основном спорные, работники получают неявный цикл событий. | |
Постквит | | Н/Д | В основном спорные, работники получают неявный цикл событий. | |
Ppb_messaging
Метод PPAPI | Предполагает потоки | Emscripten | Веб-API | Ограничения |
Postmessage | | Н/Д | Window.postmessage | |
Registermessagehandler | | Н/Д | Window.addeventListener | |
Ungistermessagehandler | | Н/Д | Window.removeeventListener | |
Ppb_mousecursor
Метод PPAPI | Предполагает потоки | Emscripten | Веб-API | Ограничения |
SetCursor | | СДЛ | Element.style.cursor | Тот же набор курсоров на складе поддерживается. Пользовательские курсоры могут быть сделаны с помощью URL (..). Динамические пользовательские курсоры могут быть сделаны с помощью данных URI. CSS3 поддерживает указание горячей точки. |
Ppb_mouseLock
Метод PPAPI | Предполагает потоки | Emscripten | Веб-API | Ограничения |
Lockmouse | | СДЛ | Element.requestpointerlock | |
Разблокировать | | СДЛ | Element.ExitPointerLock | |
Ppb_opengles2
Метод PPAPI | Предполагает потоки | Emscripten | Веб-API | Ограничения |
Несколько методов | | OpenGLES | Рядом с Webgl 1.0 в функциональности. | |
| х | | Вне экрана | |
PPB_TEXTINPUTCONTROLLER
Метод PPAPI | Предполагает потоки | Emscripten | Веб-API | Ограничения |
SetTextInputType | | ЗАЗОР | GAP - потенциально заполненный API редактора метода ввода | Некоторые разработчики хотели бы либо иметь возможность намекнуть таким образом, либо предпочтительнее возможность перехватывать и отображать IME события / выводы в линии внутри холста. |
UpdateCaretPosition | | ЗАЗОР | GAP - потенциально заполненный API редактора метода ввода | https://www.w3.org/tr/ime-api/ |
CancelCompositionText | | ЗАЗОР | GAP - потенциально заполненный API редактора метода ввода | https://www.w3.org/tr/ime-api/ |
UpdatesurroundingText | | ЗАЗОР | GAP - потенциально заполненный API редактора метода ввода | https://www.w3.org/tr/ime-api/ |
PPB_URLLoader
Метод PPAPI | Предполагает потоки | Emscripten | Веб-API | Ограничения |
Создавать | | включать | new xmlhttprequest (); | |
Открыть | | включать | Xmlhttprequest.open | |
Следуйте | | включать | Request.redirect | |
| | ЗАЗОР | GAP - NO XMLHTTPREQUEST эквивалент | |
GetUploadProgress | | включать | Xmlhttprequest 'Прогресс' событие | |
| | ЗАЗОР | Fetchobserver | Еще не указан и не реализован; https://github.com/whatwg/fetch/issues/607 |
GetDownloadProgress | | включать | Xmlhttprequest 'Прогресс' событие | |
| | ЗАЗОР | Fetchobserver | Еще не указан и не реализован; https://github.com/whatwg/fetch/issues/607 |
GetResponseInfo | | включать | Xmlhttprequest.getallresponseHeaders | |
| | включать | Ответ извлечения.* | |
ReadResponsebody | | включать | Xmlhttprequest.response | |
| | включать | Тело.* (Ответ - это тело) | |
FinishStreamingtofile | | включать | Разрыв - без прямой эквивалент | Xmlhttprequest и Fetch оба предполагают потоковую передачу в память, а не непосредственно в хранилище. |
Закрывать | | включать | Xmlhttprequest.abort | |
| | ЗАЗОР | Fetch API: Аборт и абортконтроллер | |
Ppb_urlrequestinfo
Метод PPAPI | Предполагает потоки | Emscripten | Веб-API | Ограничения |
Создавать | | включать | Xmlhttprequest | |
| | включать | Запрос выбора | |
SetProperty | | ЗАЗОР | GAP - Нет прямого эквивалента для xmlhttprequest | Xmlhttprequest не предоставляет прямые способы до лимита в отношении лимита после перенаправления, транслировать в файл, установить рефератора или политики учетных данных. |
| | включать | Запрос.* | |
AppendAtatobody | | включать | Xmlhttprequest.send | Разрыв - оба должны иметь все тело, а не кусок. |
| | включать | Фетч (.., варианты: тело) | |
Appendfiletobody | | ЗАЗОР | fetch () загрузить потоковую передачу | https://www.chromestatus.com/features/5274139738767360 |
| | Н/Д | <форма> | Вы также можете читать с помощью FileReader и загрузки, но это больше похоже на AppendAtatobody |
PPB_URLResponseInfo
Метод PPAPI | Предполагает потоки | Emscripten | Веб-API | Ограничения |
GetProperty | | включать | Xmlhttprequest.getallresponseHeaders + другие | |
| | включать | Ответ извлечения.* | |
GetBodyAsFileref | | включать | Ответ (тело) .blob () | Предполагает, что уровень хранения оптимизирует передачу. |
Ppb_var
Метод PPAPI | Предполагает потоки | Emscripten | Веб-API | Ограничения |
Varfromutf8 | | включать | TextDecoder.decode | |
Vartoutf8 | | включать | Textencoder.encode | |
Varfromresource | | Н/Д | Н/Д | |
Vartoresource | | Н/Д | Н/Д | |
Ppb_vararray
Метод PPAPI | Предполагает потоки | Emscripten | Веб-API | Ограничения |
Получать | | включать | Массив [я] | |
Набор | | включать | Массив [i] = x | |
GetLength | | включать | Массив.длина | |
SetLength | | включать | Array.length = n | |
Ppb_vararraybuffer
Метод PPAPI | Предполагает потоки | Emscripten | Веб-API | Ограничения |
Создавать | | включать | Новый ArrayBuffer (n) | |
Bytelength | | включать | ArrayBuffer.byTeLength | |
Карта | | ЗАЗОР | Разрыв - без прямой эквивалент | Модули ASM.JS / WASM не могут отображать области массива, кроме их единой линейной кучи памяти. Будущие множественные воспоминания или картирование памяти могут улучшить это. |
Невозмутимый | | ЗАЗОР | Разрыв - без прямой эквивалент | |
PPB_VarDictionary
Метод PPAPI | Предполагает потоки | Emscripten | Веб-API | Ограничения |
Создавать | | включать | {} | |
Получать | | включать | <object> [i] | |
Набор | | включать | <object> [i] = x | |
Удалить | | включать | DELETE <Object> [i] | |
Хаски | | включать | x в <объект> | |
GetKeys | | включать | for (k в <object>) {} | Нет буквального эквивалента, но это может быть построено. |
Ppb_videodecoder
Метод PPAPI | Предполагает потоки | Emscripten | Веб-API | Ограничения |
Создавать | | ЗАЗОР | GAP - будет обрабатываться с предложенным API WebCodecs с использованием VideoDecoder () | https://github.com/wicg/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-raining-or-cloud-gaming |
Инициализировать | | ЗАЗОР | GAP - будет обрабатываться с предложенным API WebCodecs с использованием параметров инициализации VideoDecoder () (VideoDecoderinitParameters) | https://github.com/wicg/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-raining-or-cloud-gaming |
Декодировать | | ЗАЗОР | GAP - будет обрабатываться с предложенным API WebCodecs с использованием readableStream.pipethrough (VideoDecoder) | https://github.com/wicg/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-raining-or-cloud-gaming |
GetPicture | | ЗАЗОР | GAP - будет обрабатываться с предложенным API WebCodecs с использованием readableStream.pipethrough (videodecoder) .pipeto (VideOTrackWriter (). | https://github.com/wicg/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-raining-or-cloud-gaming |
Переработка | | ЗАЗОР | GAP - будет обрабатываться с предложенным API веб -кодексов. Текущий дизайн автоматически перерабатывает изображения и сохранит процесс декодирования. | https://github.com/wicg/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-raining-or-cloud-gaming |
Румянец | | ЗАЗОР | GAP - будет обрабатываться с предложенным API веб -кодексов. API будет называться Flush (), однако все еще есть обсуждение того, как он будет секвенировать в отношении вызовов декодирования. | https://github.com/wicg/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-raining-or-cloud-gaming |
Перезагрузить | | ЗАЗОР | GAP - будет обрабатываться с предложенным API WebCodecs путем уничтожения экземпляра VideoDecoder и создания нового. Это не будет таким эффективным, как выделенный метод сброса, но семантика для API сброса () все еще обсуждается. | https://github.com/wicg/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-raining-or-cloud-gaming |
Ppb_videoencoder
Метод PPAPI | Предполагает потоки | Emscripten | Веб-API | Ограничения |
Создавать | | ЗАЗОР | GAP - будет обрабатываться с предложенным API WebCodecs с использованием VideoEncoder () | |
GetSupportedProfiles | | ЗАЗОР | GAP (Partial) - NAVIGATOR.MEDIAIACAPAILIED.ENCODINGINFO () | Поддерживаемые профили должны быть проверены один за другим. |
Инициализировать | | ЗАЗОР | GAP - будет обрабатываться с предложенным API WebCodecs с использованием параметров инициализации VideoEncoder () | |
GetFramesRequired | | ЗАЗОР | Разрыв - без эквивалента | Маловероятно, что пул кадров, используемый внутри веб -кодеков, обнажается. |
GetFrameCodeSize | | ЗАЗОР | Разрыв - без эквивалента | Маловероятно, что пул кадров, используемый внутри веб -кодеков, обнажается. |
GetVideOframe | | ЗАЗОР | GAP - будет обрабатываться с предложенным API WebCodecs с помощью readableStream.pipethrough (VideoCoder). Это напрямую кодирует данные в читаемом потоке вместо того, чтобы захватить один кадр для заполнения данными перед кодированием. | |
Кодировать | | ЗАЗОР | GAP - будет обрабатываться с предложенным API WebCodecs с использованием readableStream.pipethrough (VideoCoder) | |
GetBitStreamBuffer | | ЗАЗОР | GAP - будет обрабатываться с предложенным API веб -кодексов. Текущий дизайн автоматически пройдет через закодированный буфер битского обработки, который проходит через. | API Webcodecs в настоящее время предполагает, что буфер bitstream можно скопировать, а не объединить, поэтому его не нужно будет переработать. |
RecyclebitStreamBuffer | | ЗАЗОР | GAP - будет обрабатываться с предложенным API веб -кодексов. Текущий дизайн автоматически перерабатывает буфер, чтобы продолжить процесс кодирования. | Вряд ли это изменится в будущем, поскольку последствия для производительности меньше. |
RequestEncodingparameterschange | | ЗАЗОР | GAP - будет обрабатываться предложенным API веб -кодеков. Определенные параметры будут иметь возможность меняться на лету, в то время как другие потребуют, чтобы кодировщик был снесен. | |
Закрывать | | ЗАЗОР | GAP - будет обрабатываться с предложенным API WebCodecs с использованием videoencoder.close () | |
Ppb_videoframe
Метод PPAPI | Предполагает потоки | Emscripten | Веб-API | Ограничения |
GetTimeStamp | | ЗАЗОР | GAP - будет обрабатываться с предложенным API веб -кодексов. | |
SetTimeStamp | | ЗАЗОР | GAP - будет обрабатываться с предложенным API веб -кодексов. | |
GetFormat | | ЗАЗОР | GAP - будет обрабатываться с предложенным API веб -кодексов. | |
Getsize | | ЗАЗОР | GAP - будет обрабатываться с предложенным API веб -кодексов. | |
GetDataBuffer | | ЗАЗОР | GAP - будет обрабатываться с предложенным API веб -кодексов. | |
GetDataBuffersize | | ЗАЗОР | GAP - будет обрабатываться с предложенным API веб -кодексов. | |
Ppb_view
Метод PPAPI | Предполагает потоки | Emscripten | Веб-API | Ограничения |
Получить | | включать | Element.getBoundingClientRect | |
IsfullScreen | | включать | Document.fullScreenenedabled | Относится к документу, а не только один элемент. |
IsVisible | | включать | RecsectionObserver | |
Ispagevisible | | включать | Document.visibubleState | |
GetCliprect | | включать | RecsectionObserver | |
GetDevicescale | | включать | окно.devicePixelRatio | |
Getcsssscale | | включать | <element> .getBoundingClientRect (). Ширина / <element> .OFFSETWIDTH | |
GetScrolloffset | | включать | <element> .scrolltop / <element> .scrollleft | |
PPB_WebSocket
Метод PPAPI | Предполагает потоки | Emscripten | Веб-API | Ограничения |
Создавать | | ЗАЗОР | Websocket.websocket | |
Соединять | | ЗАЗОР | Websocket.websocket (url, ...) websocket 'Open' Event | |
Закрывать | | ЗАЗОР | Websocket.close | |
Получение | | ЗАЗОР | Websocket 'message' event websocket recore 'websocket websocket' close ' | |
Отправить сообщение | | ЗАЗОР | Websocket.send | |
GetBufferedAmount | | ЗАЗОР | Websocket.bufferedamount | |
GetCloseCode | | ЗАЗОР | CloseEvent.code | |
GetClosereason | | ЗАЗОР | CloseEvent.Reason | |
GetClosewasclean | | ЗАЗОР | CloseEvent.wasclean | |
Getextensions | | ЗАЗОР | Websocket.extensions | |
GetProtocol | | ЗАЗОР | Websocket.protocol | |
GetreadyState | | ЗАЗОР | Websocket.readystate | |
Geturl | | ЗАЗОР | Websocket.url | |
Ppp_graphics3d
Метод PPAPI | Предполагает потоки | Emscripten | Веб-API | Ограничения |
Graphics3dcontextlost | | СДЛ | Canvas 'webglcontextlost' событие | |
Метод PPAPI | Предполагает потоки | Emscripten | Веб-API | Ограничения |
Руководитель | | СДЛ | Element.AddeventListener | |
PPP_экземпляр
Метод PPAPI | Предполагает потоки | Emscripten | Веб-API | Ограничения |
Didcreate | | Н/Д | <element> [ключ] | Общий доступ к DOM позволяет вам рыть атрибуты тега |
Дидестрой | | Н/Д | Н/Д | Не запускается для NaCl |
Didchangeview | | Н/Д | Элемент «Изменение размера» | |
Didchangefocus | | Н/Д | Элемент 'Focus', 'Focusin', 'Focusout' события | |
Обработка | | Н/Д | Разрыв - нет способа зарегистрироваться в качестве обработчика типа MIME | Модули NaCl через приложения + манифестная запись может быть настроена для обработки определенных типов MIME. |
PPP_MessageHandler
Метод PPAPI | Предполагает потоки | Emscripten | Веб-API | Ограничения |
Handlemessage | | включать | Сообщение «Сообщение" сообщено "Сообщение" | |
HandleblockingMessage | | Н/Д | Разрыв - без прямой эквивалент | Подобная синхронизация может быть сделана из основной потока с Atomics.Wait. Это было добавлено, чтобы поддержать эмуляцию API -интерфейсов синхронных плагинов. |
PPP_Сообщения
Метод PPAPI | Предполагает потоки | Emscripten | Веб-API | Ограничения |
Handlemessage | | включать | Сообщение «Сообщение" сообщено "Сообщение" | |
PPP_MouseLock
Метод PPAPI | Предполагает потоки | Emscripten | Веб-API | Ограничения |
MouseLocklost | | СДЛ | Элемент 'pointerlockChange', 'Pointerlockerror' события | |
PPAPI (приложения)
PPB_HostResolver
Метод PPAPI | Предполагает потоки | Emscripten | Веб-API | Ограничения |
Создавать | х | ЗАЗОР | Разрыв (частичный) - нет прямой эквивалент | |
Решать | х | ЗАЗОР | Разрыв (частичный) - нет прямой эквивалент | |
GetCanonicalName | х | ЗАЗОР | Разрыв (частичный) - нет прямой эквивалент | |
GetNetAddressCount | х | ЗАЗОР | Разрыв (частичный) - нет прямой эквивалент | |
GetNetAddress | х | ЗАЗОР | Разрыв (частичный) - нет прямой эквивалент | |
PPB_NetAddress
Метод PPAPI | Предполагает потоки | Emscripten | Веб-API | Ограничения |
Createfromipv4address | х | ЗАЗОР | Разрыв (частичный) - нет прямой эквивалент | |
Createfromipv6address | х | ЗАЗОР | Разрыв (частичный) - нет прямой эквивалент | |
GetFamily | х | ЗАЗОР | Разрыв (частичный) - нет прямой эквивалент | |
Описаться | х | ЗАЗОР | Разрыв (частичный) - нет прямой эквивалент | |
DesciveAsipv4address | х | ЗАЗОР | Разрыв (частичный) - нет прямой эквивалент | |
DesciveAsipv6address | х | ЗАЗОР | Разрыв (частичный) - нет прямой эквивалент | |
Ppb_networklist
Метод PPAPI | Предполагает потоки | Emscripten | Веб-API | Ограничения |
GetCount | х | ЗАЗОР | Разрыв - без прямой эквивалент | |
Получить имя | х | ЗАЗОР | Разрыв - без прямой эквивалент | |
GetType | х | ЗАЗОР | Разрыв - без прямой эквивалент | |
Получить | х | ЗАЗОР | Разрыв - без прямой эквивалент | |
Getipaddress | х | ЗАЗОР | Разрыв - без прямой эквивалент | |
GetDisPlayName | х | ЗАЗОР | Разрыв - без прямой эквивалент | |
GetMtu | х | ЗАЗОР | Разрыв - без прямой эквивалент | |
PPB_NetworkMonitor
Метод PPAPI | Предполагает потоки | Emscripten | Веб-API | Ограничения |
Создавать | х | ЗАЗОР | Разрыв - без прямой эквивалент | |
UpdateNetWorkList | х | ЗАЗОР | Разрыв - без прямой эквивалент | |
PPB_NetworkProxy
Метод PPAPI | Предполагает потоки | Emscripten | Веб-API | Ограничения |
GetProxyForurl | х | ЗАЗОР | Разрыв - без прямой эквивалент | |
Ppb_tcpsocket и ppb_udpsocket
Не существует прямого картирования 1: 1 для миграции. Вместо этого мы рассказали о некоторых пользовательских сценариях ниже и каков рекомендуемый путь миграции.
Вариант использования | Рекомендации |
Совместное использование экрана | getDisplaymedia и webrtc ( демонстрация ) |
Загрузка с локального сервера, чтобы минимизировать использование полосы пропускания | Xhr, выбросы, потоки, сервисный работник, кэш -API |
Загрузка из локального экземпляра веб -приложения / подключение к локальному экземпляру веб -приложения | ВебRTC |
Чат | WebSocket * |
Аудио/видео общение в реальном времени | ВебRTC |
Сотрудничество | WebSocket * |
Реальные многопользовательские игры | WebTransport **, если только P2P, в этом случае WEBRTC (или WebTransport через rtcicetransport) |
Интерактивная потоковая передача в реальном времени | WebTransport ** |
Общение с устаревшим сервером | Прокси -сервер или промежуточное программное обеспечение для преобразования протокола. Обратная связь с bit.ly/network-api-paps |
*: Или Webtransport в будущем
**: см. Chromestatus для доступности