WebAssembly Taşıma Rehberi

(P)NaCl Desteğinin Sonlandırılmasıyla İlgili Duyurular

Tarayıcılar arası WebAssembly desteğinin ivmesi göz önüne alındığında, yerel kod çalışmalarımızı bundan sonra WebAssembly'e odaklamayı ve 2019'un 4. çeyreğinde PNaCl desteğini (Chrome uygulamaları hariç) kaldırmayı planlıyoruz. Yaşam gücümüzün WebAssembly etrafındaki ekosistem Böylece, yeni ve mevcut yüksek performans için daha uygun olur. olduğunu ve PNaCl kullanımının, desteğin sonlandırılmasına yol açacak kadar düşük olduğunu gördük.

Chrome 76 itibarıyla açık web'deki PNaCl, Kaynak Denemesi, . Bu genellikle yeni önerilen bir özelliktir ancak bu durumda kullanımdan kaldırılan bir özelliktir. Geliştiriciler Kaynak Deneme Konsolu'na kaydolabilir ve kullanıcının bayrak kullanmasına gerek kalmadan özelliği etkinleştirecek bir jeton alın. (Daha fazla ayrıntı için bağlantısı verilen kılavuza bakın). Deneme sürümünün Chrome 78 sürümüne kadar, yaklaşık Aralık 2019'a kadar sürmesi planlanıyor. Bu değişikliğin amacı, Chrome uygulamalarındaki veya uzantılarındaki NaCl ya da PNaCl'yi etkilemektir. chrome://flags adresindeki "enable-nacl" işareti, PNaCl'yi test için yerel olarak etkinleştirmek amacıyla da kullanılabilir (bu işaret, herhangi bir sayfada PNaCl olmayan "yerel" NaCl'yi etkinleştirme işlevini de korur).

Ayrıca kısa bir süre önce, 2018'in ilk çeyreğinde, Chrome Uygulamaları nasıl kullanacağınızı göstereceğiz.

Araç Zinciri Taşıma

(P)NaCl kullanım alanlarının çoğu için NaCl SDK'sından Emscripten'e geçiş yapmanızı öneririz. Uygulamanız Linux'a taşınabilir durumdaysa, SDL veya POSIX API'lerini kullanıyorsa taşıma işlemi oldukça kolay olabilir. NaCl/Pepper API'leri için doğrudan destek sunulmasa da Web API eşdeğerlerini listelemeyi denedik. Daha zorlu taşıma durumları için lütfen native-client-discuss@googlegroups.com

API Taşıma

Burada, her bir platformun alternatif web platformlarının durumunu (P)NaCl'e maruz kalan API'lerin yüzdesi. Buna ek olarak tabloda Emscripten'deki kitaplık veya seçenek de listelenmektedir en yakın alternatifi sunar.

2017'de WebAssembly'ye paylaşılan bellek iş parçacıkları desteğini eklemeyi planlıyoruz. İleti dizileri, P)NaCl'in en ilgi çekici kullanımında durumlarda işe yarar. Gelecekteki iş parçacıklarının desteklediğini varsayan taşıma öğeleri aşağıda işaretlenmiştir. Uygulamanızın akış kontrolü büyük ölçüde engelleme API'lerine dayanıyorsa kolay taşıma için mesaj dizileri desteğinin de gerekli olduğunu görebilirsiniz.

Bu tabloda her şeyin doğru olmasını sağlamaya çalışsak da kuşkusuz hata veya eksiklik yok. Böyle bir sorunla karşılaşırsanız lütfen native-client-discuss@googlegroups.com adresinden bize ulaşın.

PPAPI

PPB_Audio

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Oluştur x SDL (kısmi) GAP (kısmi) - AudioWorkletNode ROUGHLY eşdeğeri AudioWorkletSpec tamamlandı ancak bu API için AudioDeviceClient daha uygun olabilir. AudioDeviceClient, topluluk tarafından henüz belirtilmemiştir. İş akışı, bu API'nin genel eşdeğeri olmayabilir.
GetCurrentConfig SDL AudioContext.* (iletilen ayarları döndürür)
StartPlayback SDL AudioBufferSourceNode.start
StopPlayback SDL AudioBufferSourceNode.stop

PPB_AudioBuffer

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
GetTimestamp SDL AudioBufferSourceNode.start (parametre) Tampona eklenmek yerine her seferinde iletilir.
SetTimestamp SDL AudioBufferSourceNode.start (parametre)
GetSampleRate SDL AudioBuffer.sampleRate
GetSampleSize GAP GAP - WebAudio yalnızca 32 bit kayan nokta kullanır, PPAPI ise 16 bit int'i kullanır. PPAPI teorik olarak birden fazla örnekleme boyutunu destekler. Uygulamada yalnızca 16 bitlik örnekler desteklenir. Maalesef geliştiriciler, bellek kullanımından tasarruf etmek için 16 bit örnek boyutları talep etti. Web Sesi spesifikasyonunun sonraki sürümünde 16 bit örnekler desteklenecektir. decodeAudioData'dan gelen ses için 16 bitlik arabellek kullanılarak Firefox'a benzer şekilde AudioBuffer için bir optimizasyon uygulanabilir.
GetNumberOfChannels SDL AudioBuffer.numberOfChannels
GetDataBuffer SDL AudioBuffer.getChannelData
GetBufferSize SDL AudioBuffer.length

PPB_AudioConfig

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
CreateStereo16Bit GAP GAP - Yalnızca 32 bit kayan nokta örnekleri desteklenir Web Audio spesifikasyonunun bir sonraki sürümünde 16 bit örnekler için destek uygulanacak.
GetSampleRate SDL AudioContext.sampleRate
GetSampleFrameCount SDL AudioBuffer.length
RecommendSampleRate SDL AudioContext.sampleRate (varsayılan yapıdan) Bir AudioContext'in tercih edilen örnekleme hızı, varsayılan olarak donanım ses cihazının gerçek örnekleme hızıyla eşleşir.
RecommendSampleFrameCount GAP GAP - Planlanan AudioDeviceClient ile ele alınır Kullanıcı tarafından belirtilen boyuta izin vermek için açık bir sorun var ancak bu sorun hâlâ tanımlanıyor. Bu sorunu yaşamanın en iyi yolu, belirli donanım için uygun boyutun ne olacağını söyleyen AudioDeviceClient'tır.

PPB_Console

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Günlük utime console.log/warn/error/...
LogWithSource GAP GAP LogWithSource tarafından sağlanan işlev için geliştiriciler tarafından belirtilen belirli kullanım alanları olmadığı sürece Console API, yeterince eksiksiz bir değişim olarak kabul edilir. Geliştirici Araçları Kaynak Haritaları, orijinal kaynak dillerinde aktarılan JavaScript hatalarını ayıklamak için kullanılabilir.

PPB_Core

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
alma zamanı utime yeni Date().getTime()
getTimeTicks utime new Date().getTime()
IsMainThread GAP window.document !== tanımsız
CallOnMainThread GAP Worker.postMessage + Atomics.wait Eşdeğer senkronizasyon oluşturulabilir.

PPB_FileIO

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Oluştur FS (kısmi) window.chooseFileSystemEntries() Oluşturma ve açma farklı şekillerde kullanılır ancak parçalar eşit güce sahiptir.
FS (kısmi) window.chooseFileSystemEntries()
Sorgu FS (kısmi) Blob.size, FileSystemHandle.getFile(), FileSystemHandle.getDirectory(), File.lastModified GAP (kısmi) - Blob.type, MIME türünü kontrol etmek için de kullanılabilir. Dosya sistemi türü, oluşturma zamanı ve son erişim zamanı, Native File System API ile belirlenemez.
Dokunma FS (kısmi) FileSystemDirectoryHandle.getFile("name", {create: true})
Okuma FS (kısmi) Blob.slice().arrayBuffer()
Yazma FS (kısmi) FileSystemWriter.write()
SetLength FS (kısmi) FileSystemWriter.truncate()
Gömme GAP (kısmi) GAP (kısmi) - FileSystemWrite.close() çağrıldığında dosyalar temizlenir Bu işlem, Native File System API dosyalarının işletim sistemine açık olmasından dolayı tasarım gereğidir. Bu nedenle, veriler işletim sistemine gösterilmeden önce Güvenli Tarama kontrolünün yapılması gerekir.
Kapat FS (kısmi) FileSystemWriter.close() Beklemedeki işlemleri iptal etmez ancak o ana kadar diske yazılmış verileri temizler.
ReadToArray GAP Blob.slice().arrayBuffer() veya Blob.arrayBuffer() Paralel olarak birden çok alt aralık okumasına olanak tanır.

PPB_FileRef

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Oluştur FS (kısmi) FileSystemDirectoryHandle.getFile("name", {create: true})
GetFileSystemType FS (kısmi) FileSystem.type
GetName FS (kısmi) Dosya.adı
GetPath FS (kısmi) GAP (kısmi): Yerel File System API ile, FileSystemHandle.resolve(FileSystemHandle) kullanılarak dosyanın göreli yolu, dosyayı içeren bir dizine referansla belirlenebilir. Bir dosyanın mutlak yolu belirlenemez ve kullanıcının dosyayı içeren dizine erişim izni vermesi gerekir.
GetParent FS (kısmi) GAP (kısmi): Yerel File System API ile, FileSystemHandle.resolve(FileSystemHandle) kullanılarak dosyanın göreli yolu, dosyayı içeren bir dizine referansla belirlenebilir. Kullanıcının, dosyayı içeren dizine erişme izni vermesi gerekir.
MakeDirectory FS (kısmi) FileSystemHandle.getDirectory(..., {createIfNotExists: true})
Dokunma FS (kısmi) FileSystemDirectoryHandle.getFile("name", {create: true}) Zaman değişikliği, yazarak yapılabilir.
Sil FS (kısmi) FileSystemDirectoryHandle.removeEntry() PPAPI'den farklı olarak dizinlerin boş olması gerekmez.
Yeniden adlandır FS (kısmi) GAP (kısmi) - Native File System API'da dosya, yeni ad için FileSystemFileHandle.getFile() ve eski dosyanın içeriğiyle FileSystemFileHandle.createWriter().Write() dosyasının bir kombinasyonu kullanılarak yeni adla yazılabilir. Ardından, eski dosyayı silmek için FileSystemDirectoryHandle.removeEntry() işlevini çağırın. Native File System API'de bunu tek adımda yapacak doğrudan bir API yoktur.
Sorgu GAP (kısmi) Blob.size, FileSystemHandle.getFile(), FileSystemHandle.getDirectory(), File.lastModified GAP (kısmi): MIME türünü kontrol etmek için Blob.type da kullanılabilir. Dosya sistemi türü, oluşturulma zamanı ve son erişim zamanı, Native File System API ile belirlenemez.
ReadDirectoryEntries FS (kısmi) FileSystemDirectoryHandle.getEntries()

PPB_FileSystem

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Oluştur FS (kısmi) window.requestFileSystem JS API her ikisini de tek adımda yapar
GAP window.requestFileSystem JS API her ikisini de tek adımda yapar
GetType GAP FileSystem.type

PPB_Fullscreen

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
IsFullScreen html5.h Document.fullscreenEnabled
SetFullscreen html5.h Document.requestFullscreen
GetScreenSize html5.h Document.exitFullscreen

PPB_Gamepad

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Örnek SDL Oyun Kumandası* Gamepad nesnesi, navigationStart'a göre bir zaman damgası gösterir. https://www.w3.org/TR/gamepad/#gamepad-interface donanımdan veri alındığında güncellenir

PPB_Graphics2D

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Oluştur SDL Canvas.getContext('2d')
Açıklama SDL Tuval.istemciGenişliği + Kanvas.istemciYüksekliği
PaintImageData SDL CanvasRenderingContext2D.putImageData
Kaydırma GAP CanvasRenderingContext2D.scrollIntoView, CanvasRenderingContext2D.drawImage BOŞLUK (kısmi) - drawImage kullanılarak kanvasın üzerine bir ofsetle çizilmesi ve ardından geri kalanının doldurulmasıyla uygulanabilir.
ReplaceContents SDL CanvasRenderingContext2D.drawImage
Gömme GAP Doğrudan eşdeğeri yok GAP (kısmi) - Çizim kodunun sonunda her zaman bir gizli temizleme vardır. Bu durumun değişmesi olası değildir. Ancak OffscreenCanvas ve ImageBitmapRenderingContext benzer bir işlev sağlar.
SetScale SDL CanvasRenderingContext2D.scale
GetScale SDL CanvasRenderingContext2D.currentTransform
SetLayerTransform SDL CanvasRenderingContext2D.setTransform CanvasRenderingContext2D.scale CanvasRenderingContext2D.translate

PPB_Graphics3D

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
GetAttribMaxValue OpenGL ES 3.0 WebGL 2.0 GAP (kısmi): WebGL 2.0 ve Emscripten'in OpenGL ES 3.0 desteği, PPAPI aracılığıyla yapılandırılabilir tüm parametrelerin ayarlanabileceği kullanıcı tanımlı çok örnekli çerçeve ardışık düzenlerini destekler.
Oluştur SDL Canvas.getContext
GetAttribs SDL WebGLRenderingContext.getContextAttributes
SetAttribs SDL Canvas.getContext(.., OPTIONS)
GetError SDL WebGLRenderingContext.getError
ResizeBuffers SDL Canvas.width = w; Canvas.height = h;
SwapBuffers GAP Doğrudan eşdeğeri yok GAP (kısmi) - Çizim kodunun sonunda her zaman örtülü bir boşaltma vardır. bu pek olası değil tıklayın. Ancak OffscreenCanvas ve ImageBitmapRenderingContext benzer bir işlev sunar.

PPB_ImageData

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
GetNativeImageDataFormat SDL ImageData, RGBA sırasını zorunlu kılar
IsImageDataFormatSupported SDL ImageData, RGBA siparişini zorunlu kılıyor
Oluştur SDL CanvasRenderingContext2d.createImageData
Açıklama SDL ImageData'nın ilerleme durumu yok
Harita SDL ImageData.data
Eşlemeyi kaldır SDL ImageData.data

PPB_InputEvent

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
RequestInputEvents SDL Doğrudan eşdeğeri yok JS/Wasm ana iş parçacığında çalıştığı ve işlemler arası gidiş geliş gerektirmeden etkinlikleri daha ucuza filtreleyebildiği için bu özelliğin olmaması muhtemelen daha az alakalı.
RequestFilteringInputEvents SDL fare* tuş* tekerlek* dokunma* bileşimi* Etkinlikler
SDL Element.addEventListener
ClearInputEventRequest SDL Element.removeEventListener
GetType SDL Etkinlik sınıfı alt öğeleri
GetTimeStamp SDL Event.timeStamp
GetModifiers SDL *Event.altKey/shiftKey/metaKey/ctrlKey

PPB_MouseInputEvent

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Oluştur SDL MouseEvent
GetButton SDL MouseEvent.button
GetPosition SDL MouseEvent.client*/page*/offset*
GetClickCount SDL "dblclick" ve "mousedown" etkinlikleri
GetMovement SDL MouseEvent.movement*

PPB_WheelInputEvent

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Oluştur SDL WheelEvent
GetDelta SDL WheelEvent.delta*
GetTicks GAP GAP - deltaMode türü, bu bilgileri içerir, ancak eksiktir. WheelEvent.deltaMode API'si uygulama ile ilgili tartışma için: https://github.com/w3c/uievents/issues/181#issuescomment-537811017
GetScrollByPage GAP GAP - deltaMode türü, bu bilgileri içerir, ancak eksiktir. WheelEvent.deltaMode API'si uygulama ile ilgili tartışma için: https://github.com/w3c/uievents/issues/181#issuescomment-537811017

PPB_KeyboardInputEvent

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Oluştur SDL KeyboardEvent
GetKeyCode SDL KeyboardEvent.keyCode
GetCharacterText SDL KeyboardEvent.key
GetCode SDL KeyboardEvent.code

PPB_TouchInputEvent

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Oluştur SDL TouchEvent
AddTouchPoint SDL TouchEvent.touches.push
GetTouchCount SDL TouchEvent.touches.length
GetTouchByIndex SDL TouchEvent.touches[i]
GetTouchById SDL Touch.indentifer (bunu kendiniz belirlemek için)

PPB_IMEInputEvent

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Oluştur GAP CompositionEvent
GetText GAP CompositionEvent.data
GetSegmentNumber GAP GAP - Doğrudan eşdeğeri yok Bu veriler CompositionEvent.data kaynağından alınabilir.
GetSegmentOffset GAP GAP - Doğrudan eşdeğeri yok
GetTargetSegment GAP GAP - Doğrudan eşdeğeri yok
GetSelection GAP GAP - Doğrudan eşdeğeri yok

PPB_Instance

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
BindGraphics SDL Canvas.getContext (bağlama olarak belirleme otomatiktir).
IsFullFrame GAP GAP: MIME türü işleyicilerine eşdeğer bir şey yok. NaCl uygulamaları, belirli bir mime türünü işlemek ve dokümanın tamamına sahip olmak için kaydedilebilir.
DidCreate Yok <Element>[key] Genel DOM erişimi, etiket özelliklerini bulmanızı sağlar
DidDestroy Yok Yok NaCl için tetiklenmedi
DidChangeView Yok Öğe "yeniden boyutlandırıldı" Etkinlik
DidChangeFocus Yok Öğe "focus", "focusin", "focusout" Etkinlikleri
HandleDocumentLoad Yok GAP - Mime türü işleyici olarak kaydolmanın yolu yok Uygulamalar ve manifest girişi aracılığıyla NaCl modülleri, belirli mime türlerini işlemek için ayarlanabilir.

PPB_MediaStreamAudioTrack

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Yapılandır GAP getUserMedia() getUserMedia()'daki kısıtlamalar, MediaStreamTrack'te kullanılacak yapılandırma değerlerini sağlayabilir.
GetAttrib GAP MediaStreamTrack.getSettings()
GetId GAP MediaStreamTrack.id
HasEnded GAP MediaStreamTrack.readyState
GetBuffer GAP GAP - Eşdeğeri yok
RecycleBuffer GAP GAP - Eşdeğeri yok
Kapat GAP MediaStreamTrack.stop()

PPB_MediaStreamVideoTrack

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Oluştur GAP Tuval Yakala Tuval Yakalama, video karelerini programlı şekilde sunma olanağı sağlar.
Yapılandır GAP applyConstraints(), getUserMedia() GAP (kısmi): Web API'de kullanılabilen yapılandırmaların kapsamı PPAPI'den farklı olabilir.
GetAttrib GAP MediaStreamSettings.width
GAP MediaStreamSettings.height
GAP GAP - PP_MEDIASTREAMVIDEOTrack_ATTRIB_BUFFERED_FRAMES ile eşdeğer değildir MediaStream önceden yüklenemez, bu nedenle hiçbir zaman arabelleğe alınmaz: https://www.w3.org/TR/mediacapture-streams/#mediastreams-in-media-elements
GAP GAP - PP_MEDIASTREAMVIDEOTRACK_ATTRIB_FORMAT ile eşdeğer değil
GetId GAP MediaStreamTrack.id
HasEnded GAP MediaStreamTrack.readyState
GetFrame GAP GAP - Eşdeğeri yok
RecycleFrame GAP GAP - Eşdeğeri yok
Kapat GAP MediaStreamTrack.stop()
GetEmptyFrame GAP GAP - Eşdeğeri yok
PutFrame GAP GAP - Eşdeğeri yok

PPB_MessageLoop

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Oluştur Yok Çoğunlukla tartışmalı bir konudur. Çalışanlar, gizli bir etkinlik döngüsü alır.
GetForMainThread Yok Çalışanlar çoğunlukla örtülü bir etkinlik döngüsü elde eder.
GetCurrent Yok Çalışanlar çoğunlukla örtülü bir etkinlik döngüsü elde eder.
AttachToCurrentThread Yok Çalışanlar çoğunlukla örtülü bir etkinlik döngüsü elde eder.
Çalıştır Yok Çoğunlukla tartışmalı bir konudur. Çalışanlar, gizli bir etkinlik döngüsü alır.
PostWork Yok Çalışanlar çoğunlukla örtülü bir etkinlik döngüsü elde eder.
PostQuit Yok Çalışanlar çoğunlukla örtülü bir etkinlik döngüsü elde eder.

PPB_Messaging

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
PostMessage Yok Window.postMessage
RegisterMessageHandler Yok Window.addEventListener
UnregisterMessageHandler Yok Window.removeEventListener

PPB_MouseCursor

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
SetCursor SDL Element.style.cursor Aynı stok imleç grubu destekleniyor. Özel imleçler url(..) ile yapılabilir. Dinamik özel imleçler veri URI'leriyle yapılabilir. CSS3, hotspot'un belirtilmesini destekler.

PPB_MouseLock

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
LockMouse SDL Element.requestPointerLock
UnlockMouse SDL Element.exitPointerLock

PPB_OpenGLES2

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Çeşitli Yöntemler OpenGLES İşlevsel olarak WebGL 1.0'a yakındır.
x OffscreenCanvas

PPB_TextInputController

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
SetTextInputType GAP GAP - Giriş Yöntemi Düzenleyici API tarafından doldurulabilir Bazı geliştiriciler bu şekilde ipucu vermeyi veya tercihen IME etkinliklerini/çıktısını bir kanvasta satır içi olarak durdurup görüntülemeyi ister.
UpdateCaretPosition GAP GAP - Giriş Yöntemi Düzenleyici API tarafından doldurulabilir https://www.w3.org/TR/ime-api/
CancelCompositionText GAP GAP - Giriş Yöntemi Düzenleyici API tarafından doldurulabilir https://www.w3.org/TR/ime-api/
UpdateSurroundingText GAP GAP - Giriş Yöntemi Düzenleyici API tarafından doldurulabilir https://www.w3.org/TR/ime-api/

PPB_URLLoader

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Oluştur embind new XMLHttpRequest();
embind XMLHttpRequest.open
FollowRedirect embind Request.redirect
GAP GAP - XMLHTTPRequest eşdeğeri yok
GetUploadProgress embind XMLHttpRequest "progress" Etkinlik
GAP FetchObserver Henüz spesifikasyona eklenmemiş veya uygulanmamış; https://github.com/whatwg/fetch/issues/607
GetDownloadProgress embind XMLHttpRequest "progress" Etkinlik
GAP FetchObserver Henüz belirtilmemiş veya uygulanmadı; https://github.com/whatwg/fetch/issues/607
GetResponseInfo embind XMLHttpRequest.getAllResponseHeaders
embind Yanıtı Getir.*
ReadResponseBody embind XMLHttpRequest.response
embind Metin.* (Yanıt metin gövdesidir)
FinishStreamingToFile embind GAP - Doğrudan eşdeğeri yok Hem XMLHttpRequest hem de Fetch, doğrudan depolama yerine belleğe aktarmayı varsayar.
Kapat embind XMLHttpRequest.abort
GAP Fetch API: AbortSignal ve AbortController

PPB_URLRequestInfo

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Oluştur embind XMLHttpRequest
embind Getirme İsteği
SetProperty GAP GAP - XMLHttpRequest için doğrudan eşdeğer yok XMLHttpRequest, yönlendirmelerin ardından istek başına sınır için doğrudan yöntem sağlamıyor, bir dosyaya akış gerçekleştiriyor, yönlendiren veya kimlik bilgileri politikası ayarlamıyor.
embind İstek.*
AppendDataToBody embind XMLHttpRequest.send GAP: Her ikisinde de bir yığın yerine tüm gövde bulunmalıdır.
embind fetch(.., options:body)
AppendFileToBody GAP receive() yükleme akışı https://www.chromestatus.com/features/5274139738767360
Yok <form> Ayrıca FileReader ile okuyup yükleyebilirsiniz ancak bu daha çok AttachDataToBody gibi bir şeydir

PPB_URLResponseInfo

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
GetProperty embind XMLHttpRequest.getAllResponseHeaders + diğerleri
embind Getirme Yanıtı.*
GetBodyAsFileRef embind Getirilen Yanıt (Gövde) .blob() Depolama katmanının aktarımı optimize ettiğini varsayar.

PPB_Var

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
VarFromUtf8 embind TextDecoder.decode
VarToUtf8 embind TextEncoder.encode
VarFromResource Yok Yok
VarToResource Yok Yok

PPB_VarArray

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Get embind Array[i]
Hazır embind Dizi[i] = x
GetLength embind Array.length
SetLength embind Dizi.uzunluk = n

PPB_VarArrayBuffer

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Oluştur embind yeni ArrayBuffer(n)
ByteLength embind ArrayBuffer.byteLength
Harita GAP GAP - Doğrudan eşdeğeri yok Asm.js/WASM modülleri, tek doğrusal bellek yığınları dışındaki ArrayBuffer bölgelerini eşleyemez. Gelecekte birden fazla anı veya bellek eşleme özelliği bu sorunun giderilmesine yardımcı olabilir.
Eşlemeyi kaldır GAP GAP - Doğrudan eşdeğeri yok

PPB_VarDictionary

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Oluştur embind {}
Get embind &lt;Object&gt;[i]
Hazır embind <Nesne>[i] = x
Sil embind <Object>[i] öğesini sil
HasKey embind <Nesne> içinde x
GetKeys embind for (<Nesne> içinde k) {} Doğrudan eşdeğeri yoktur ancak oluşturulabilir.

PPB_VideoDecoder

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Oluştur GAP GAP - VideoDecoder() kullanılarak önerilen WebCodecs API'si ile işlenir https://github.com/WICG/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-streaming-or-cloud-gaming
Başlat GAP GAP: VideoDecoder() ilklendirme parametreleri (VideoDecoderInitParameters) kullanılarak önerilen WebCodecs API ile işlenir. https://github.com/WICG/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-streaming-or-cloud-gaming
Decode GAP GAP: ReadableStream.pipeThrough(VideoDecoder) kullanılarak önerilen WebCodecs API ile işlenir. https://github.com/WICG/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-streaming-or-cloud-gaming
GetPicture GAP GAP: ReadableStream.pipeThrough(VideoDecoder).pipeTo(VideoTrackWriter().writable) kullanılarak önerilen WebCodecs API ile işlenir. https://github.com/WICG/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-streaming-or-cloud-gaming
RecyclePicture GAP GAP: Önerilen WebCodecs API ile işlenir. Mevcut tasarım, resimleri otomatik olarak geri dönüştürür ve kod çözme işlemini devam ettirir. https://github.com/WICG/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-streaming-or-cloud-gaming
Gömme GAP GAP - Teklif edilen WebCodecs API'si ile işlenir. API'nin adı Flush() olacaktır. Ancak API'nin, kod çözme çağrılarıyla ilişkili olarak nasıl sıralanacağıyla ilgili tartışmalar devam etmektedir. https://github.com/WICG/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-streaming-or-cloud-gaming
Sıfırla GAP GAP - VideoDecoder örneği kaldırılıp yeni bir örnek oluşturularak, önerilen WebCodecs API'si ile işlenir. Bu, özel bir sıfırlama yöntemi kadar verimli olmayacaktır ancak Reset() API'sinin semantikleri hâlâ tartışılmaktadır. https://github.com/WICG/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-streaming-or-cloud-gaming

PPB_VideoEncoder

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Oluştur GAP GAP: VideoEncoder() kullanılarak önerilen WebCodecs API ile işlenir.
GetSupportedProfiles GAP GAP (kısmi) - navigator.mediaCapabilities.encodingInfo() Desteklenen profillerin tek tek kontrol edilmesi gerekir.
Başlat GAP GAP - VideoEncoder() başlatma parametreleri kullanılarak, önerilen WebCodecs API'siyle işlenir
GetFramesRequired GAP GAP - Eşdeğeri yok Web Codecs API tarafından dahili olarak kullanılan çerçeve havuzunun açığa çıkması olası değildir.
GetFrameCodedSize GAP GAP - Eşdeğeri yok Web Codecs API tarafından dahili olarak kullanılan çerçeve havuzunun açığa çıkması pek olası değildir.
GetVideoFrame GAP GAP: ReadableStream.pipeThrough(VideoEncoder) kullanılarak önerilen WebCodecs API ile işlenir. Bu durumda, kodlamadan önce veri doldurmak için tek bir kare almak yerine veriler doğrudan Readable akışına kodlanır.
Kodla GAP GAP - ReadableStream.pipeThrough(VideoEncoder) kullanılarak önerilen WebCodecs API'si ile işlenir
GetBitstreamBuffer GAP GAP - Teklif edilen WebCodecs API'si ile işlenir. Geçerli tasarım, otomatik olarak ardışık olarak iletilen kodlanmış bit akışı arabelleğinden geçer. WebCodecs API'de şu anda bit akışı arabelleğinin havuza alınmak yerine kopyalanabileceği varsayılmıştır, bu nedenle geri dönüştürülmesi gerekmez.
RecycleBitstreamBuffer GAP GAP - Önerilen WebCodecs API'si ile işlenir. Geçerli tasarım, kodlama sürecinin devam etmesi için arabelleği otomatik olarak geri dönüştürür. Performans üzerindeki etkileri daha az olduğundan bu durumun gelecekte değişmesi olası değildir.
RequestEncodingParametersChange GAP GAP - Önerilen Web Codecs API'si tarafından işlenir. Bazı parametreler anında değiştirilebilirken bazılarının değiştirilmesi için kodlayıcının dağıtılması gerekir.
Kapat GAP GAP: VideoEncoder.Close() kullanılarak önerilen WebCodecs API ile işlenir.

PPB_VideoFrame

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
GetTimestamp GAP GAP - Önerilen WebCodecs API'si ile işlenir.
SetTimestamp GAP GAP: Önerilen WebCodecs API ile işlenir.
GetFormat GAP GAP - Önerilen WebCodecs API'si ile işlenir.
GetSize GAP GAP: Önerilen WebCodecs API ile işlenir.
GetDataBuffer GAP GAP - Önerilen WebCodecs API'si ile işlenir.
GetDataBufferSize GAP GAP - Önerilen WebCodecs API'si ile işlenir.

PPB_View

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
GetRect embind Element.getBoundingClientRect
IsFullscreen embind Document.fullScreenEnabled Tek bir öğe değil, belge ile ilgilidir.
IsVisible embind IntersectionObserver
IsPageVisible embind document.visibilityState
GetClipRect embind IntersectionObserver
GetDeviceScale embind window.devicePixelRatio
GetCSSScale embind <Öğe>.getBoundingClientRect().width / <Öğe>.offsetWidth
GetScrollOffset embind <Öğe>.scrollTop / <Öğe>.scrollLeft

PPB_WebSocket

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Oluştur GAP WebSocket.WebSocket
Bağlan GAP WebSocket.WebSocket(url, ...) WebSocket "açılış" etkinliği
Kapat GAP WebSocket.close
ReceiveMessage GAP WebSocket "mesaj" Etkinlik WebSocket "hatası" Etkinlik WebSocket "close" Etkinlik
SendMessage GAP WebSocket.send
GetBufferedAmount GAP WebSocket.bufferedAmount
GetCloseCode GAP CloseEvent.code
GetCloseReason GAP CloseEvent.reason
GetCloseWasClean GAP CloseEvent.wasClean
GetExtensions GAP WebSocket.extensions
GetProtocol GAP WebSocket.protocol
GetReadyState GAP WebSocket.readyState
GetURL GAP WebSocket.url

PPP_Graphics3D

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Grafik3DBağlam Kayıp SDL Tuval "webglcontextlost" Etkinliği

PPP_InputEvent

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
HandleInputEvent SDL Element.addEventListener

PPP_Instance

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
DidCreate Yok &lt;Element&gt;[key] Genel DOM erişimi, etiket özelliklerini bulmanızı sağlar
DidDestroy Yok Yok NaCl için tetiklenmedi
DidChangeView Yok Öğe "yeniden boyutlandırıldı" Etkinlik
DidChangeFocus Yok Öğe "focus", "focusin", "focusout" Etkinlikleri
HandleDocumentLoad Yok GAP - Mime türü işleyici olarak kaydolmanın yolu yok Uygulamalar ve manifest girişi aracılığıyla NaCl modülleri, belirli mime türlerini işlemek için ayarlanabilir.

PPP_MessageHandler

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
HandleMessage embind MessagePort "mesaj" Etkinlik Pencere 'mesaj'ı Etkinlik
HandleBlockingMessage Yok GAP - Doğrudan eşdeğeri yok Benzer senkronizasyon, Atomics.wait ile ana iş parçacığı dışında yapılabilir. Bu, eşzamanlı eklenti API'lerinin emülasyonunu desteklemek için eklenmiştir.

PPP_Messaging

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
HandleMessage embind MessagePort "message" Etkinliği Window "message" Etkinliği

PPP_MouseLock

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
MouseLockLost SDL 'pointerlockchange', 'pointerlockerror' öğesi Etkinlikler

IRT

PPB_Audio

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Oluştur x SDL (kısmi) GAP (kısmi) - AudioWorkletNode ROUGHLY eşdeğeri AudioWorkletSpec tamamlandı ancak bu API için AudioDeviceClient daha uygun olabilir. AudioDeviceClient, topluluk tarafından henüz belirtilmemiştir. İş akışı, bu API'nin genel eşdeğeri olmayabilir.
GetCurrentConfig SDL AudioContext.* (iletilen ayarları döndürür)
StartPlayback SDL AudioBufferSourceNode.start
StopPlayback SDL AudioBufferSourceNode.stop

PPB_AudioBuffer

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
GetTimestamp SDL AudioBufferSourceNode.start (parametre) Tampona eklenmek yerine her seferinde iletilir.
SetTimestamp SDL AudioBufferSourceNode.start (parametre)
GetSampleRate SDL AudioBuffer.sampleRate
GetSampleSize GAP GAP - WebAudio yalnızca 32 bit kayan nokta kullanır, PPAPI ise 16 bit int'i kullanır. PPAPI teorik olarak birden fazla örnekleme boyutunu destekler. Uygulamada yalnızca 16 bitlik örnekler desteklenir. Maalesef geliştiriciler, bellek kullanımından tasarruf etmek için 16 bit örnek boyutları talep etti. Web Sesi spesifikasyonunun sonraki sürümünde 16 bit örnekler desteklenecektir. decodeAudioData'dan gelen ses için 16 bitlik arabellek kullanılarak Firefox'a benzer şekilde AudioBuffer için bir optimizasyon uygulanabilir.
GetNumberOfChannels SDL AudioBuffer.numberOfChannels
GetDataBuffer SDL AudioBuffer.getChannelData
GetBufferSize SDL AudioBuffer.length

PPB_AudioConfig

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
CreateStereo16Bit GAP GAP - Yalnızca 32 bit kayan nokta örnekleri desteklenir Web Audio spesifikasyonunun bir sonraki sürümünde 16 bit örnekler için destek uygulanacak.
GetSampleRate SDL AudioContext.sampleRate
GetSampleFrameCount SDL AudioBuffer.length
RecommendSampleRate SDL AudioContext.sampleRate (varsayılan yapıdan) Bir AudioContext'in tercih edilen örnekleme hızı, varsayılan olarak donanım ses cihazının gerçek örnekleme hızıyla eşleşir.
RecommendSampleFrameCount GAP GAP - Planlanan AudioDeviceClient ile ele alınır Kullanıcı tarafından belirtilen boyuta izin vermek için açık bir sorun var ancak bu sorun hâlâ tanımlanıyor. Bu sorunu yaşamanın en iyi yolu, belirli donanım için uygun boyutun ne olacağını söyleyen AudioDeviceClient'tır.

PPB_Console

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Günlük utime console.log/warn/error/...
LogWithSource GAP GAP LogWithSource tarafından sağlanan işlev için geliştiriciler tarafından belirtilen belirli kullanım alanları olmadığı sürece Console API, yeterince eksiksiz bir değişim olarak kabul edilir. Geliştirici Araçları Kaynak Haritaları, orijinal kaynak dillerinde aktarılan JavaScript hatalarını ayıklamak için kullanılabilir.

PPB_Core

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
alma zamanı utime yeni Date().getTime()
getTimeTicks utime new Date().getTime()
IsMainThread GAP window.document !== tanımsız
CallOnMainThread GAP Worker.postMessage + Atomics.wait Eşdeğer senkronizasyon oluşturulabilir.

PPB_FileIO

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Oluştur FS (kısmi) window.chooseFileSystemEntries() Oluşturma ve açma farklı şekillerde kullanılır ancak parçalar eşit güce sahiptir.
FS (kısmi) window.chooseFileSystemEntries()
Sorgu FS (kısmi) Blob.size, FileSystemHandle.getFile(), FileSystemHandle.getDirectory(), File.lastModified GAP (kısmi) - Blob.type, MIME türünü kontrol etmek için de kullanılabilir. Dosya sistemi türü, oluşturma zamanı ve son erişim zamanı, Native File System API ile belirlenemez.
Dokunma FS (kısmi) FileSystemDirectoryHandle.getFile(&quot;name&quot;, {create: true})
Okuma FS (kısmi) Blob.slice().arrayBuffer()
Yazma FS (kısmi) FileSystemWriter.write()
SetLength FS (kısmi) FileSystemWriter.truncate()
Gömme GAP (kısmi) GAP (kısmi) - FileSystemWrite.close() çağrıldığında dosyalar temizlenir Bu işlem, Native File System API dosyalarının işletim sistemine açık olmasından dolayı tasarım gereğidir. Bu nedenle, veriler işletim sistemine gösterilmeden önce Güvenli Tarama kontrolünün yapılması gerekir.
Kapat FS (kısmi) FileSystemWriter.close() Beklemedeki işlemleri iptal etmez ancak o ana kadar diske yazılmış verileri temizler.
ReadToArray GAP Blob.slice().arrayBuffer() veya Blob.arrayBuffer() Paralel olarak birden çok alt aralık okumasına olanak tanır.

PPB_FileRef

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Oluştur FS (kısmi) FileSystemDirectoryHandle.getFile(&quot;name&quot;, {create: true})
GetFileSystemType FS (kısmi) FileSystem.type
GetName FS (kısmi) Dosya.adı
GetPath FS (kısmi) GAP (kısmi): Yerel File System API ile, FileSystemHandle.resolve(FileSystemHandle) kullanılarak dosyanın göreli yolu, dosyayı içeren bir dizine referansla belirlenebilir. Bir dosyanın mutlak yolu belirlenemez ve kullanıcının dosyayı içeren dizine erişim izni vermesi gerekir.
GetParent FS (kısmi) GAP (kısmi): Yerel File System API ile, FileSystemHandle.resolve(FileSystemHandle) kullanılarak dosyanın göreli yolu, dosyayı içeren bir dizine referansla belirlenebilir. Kullanıcının, dosyayı içeren dizine erişme izni vermesi gerekir.
MakeDirectory FS (kısmi) FileSystemHandle.getDirectory(..., {createIfNotExists: true})
Dokunma FS (kısmi) FileSystemDirectoryHandle.getFile("name", {create: true}) Zaman değişikliği, yazarak yapılabilir.
Sil FS (kısmi) FileSystemDirectoryHandle.removeEntry() PPAPI'den farklı olarak dizinlerin boş olması gerekmez.
Yeniden adlandır FS (kısmi) GAP (kısmi) - Native File System API'da dosya, yeni ad için FileSystemFileHandle.getFile() ve eski dosyanın içeriğiyle FileSystemFileHandle.createWriter().Write() dosyasının bir kombinasyonu kullanılarak yeni adla yazılabilir. Ardından, eski dosyayı silmek için FileSystemDirectoryHandle.removeEntry() işlevini çağırın. Native File System API'de bunu tek adımda yapacak doğrudan bir API yoktur.
Sorgu GAP (kısmi) Blob.size, FileSystemHandle.getFile(), FileSystemHandle.getDirectory(), File.lastModified GAP (kısmi): MIME türünü kontrol etmek için Blob.type da kullanılabilir. Dosya sistemi türü, oluşturulma zamanı ve son erişim zamanı, Native File System API ile belirlenemez.
ReadDirectoryEntries FS (kısmi) FileSystemDirectoryHandle.getEntries()

PPB_FileSystem

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Oluştur FS (kısmi) window.requestFileSystem JS API her ikisini de tek adımda yapar
GAP window.requestFileSystem JS API her ikisini de tek adımda yapar
GetType GAP FileSystem.type

PPB_Fullscreen

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
IsFullScreen html5.h Document.fullscreenEnabled
SetFullscreen html5.h Document.requestFullscreen
GetScreenSize html5.h Document.exitFullscreen

PPB_Gamepad

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Örnek SDL Oyun Kumandası* Gamepad nesnesi, navigationStart'a göre bir zaman damgası gösterir. https://www.w3.org/TR/gamepad/#gamepad-interface donanımdan veri alındığında güncellenir

PPB_Graphics2D

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Oluştur SDL Canvas.getContext('2d')
Açıklama SDL Tuval.istemciGenişliği + Kanvas.istemciYüksekliği
PaintImageData SDL CanvasRenderingContext2D.putImageData
Kaydırma GAP CanvasRenderingContext2D.scrollIntoView, CanvasRenderingContext2D.drawImage BOŞLUK (kısmi) - drawImage kullanılarak kanvasın üzerine bir ofsetle çizilmesi ve ardından geri kalanının doldurulmasıyla uygulanabilir.
ReplaceContents SDL CanvasRenderingContext2D.drawImage
Gömme GAP Doğrudan eşdeğeri yok GAP (kısmi) - Çizim kodunun sonunda her zaman bir gizli temizleme vardır. Bu durumun değişmesi olası değildir. Ancak OffscreenCanvas ve ImageBitmapRenderingContext benzer bir işlev sağlar.
SetScale SDL CanvasRenderingContext2D.scale
GetScale SDL CanvasRenderingContext2D.currentTransform
SetLayerTransform SDL CanvasRenderingContext2D.setTransform CanvasRenderingContext2D.scale CanvasRenderingContext2D.translate

PPB_Graphics3D

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
GetAttribMaxValue OpenGL ES 3.0 WebGL 2.0 GAP (kısmi): WebGL 2.0 ve Emscripten'in OpenGL ES 3.0 desteği, PPAPI aracılığıyla yapılandırılabilir tüm parametrelerin ayarlanabileceği kullanıcı tanımlı çok örnekli çerçeve ardışık düzenlerini destekler.
Oluştur SDL Canvas.getContext
GetAttribs SDL WebGLRenderingContext.getContextAttributes
SetAttribs SDL Canvas.getContext(.., OPTIONS)
GetError SDL WebGLRenderingContext.getError
ResizeBuffers SDL Canvas.width = w; Canvas.height = h;
SwapBuffers GAP Doğrudan eşdeğeri yok GAP (kısmi) - Çizim kodunun sonunda her zaman örtülü bir boşaltma vardır. bu pek olası değil tıklayın. Ancak OffscreenCanvas ve ImageBitmapRenderingContext benzer bir işlev sunar.

PPB_ImageData

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
GetNativeImageDataFormat SDL ImageData, RGBA sırasını zorunlu kılar
IsImageDataFormatSupported SDL ImageData, RGBA siparişini zorunlu kılıyor
Oluştur SDL CanvasRenderingContext2d.createImageData
Açıklama SDL ImageData'nın ilerleme durumu yok
Harita SDL ImageData.data
Eşlemeyi kaldır SDL ImageData.data

PPB_InputEvent

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
RequestInputEvents SDL Doğrudan eşdeğeri yok JS/Wasm ana iş parçacığında çalıştığı ve işlemler arası gidiş geliş gerektirmeden etkinlikleri daha ucuza filtreleyebildiği için bu özelliğin olmaması muhtemelen daha az alakalı.
RequestFilteringInputEvents SDL fare* tuş* tekerlek* dokunma* bileşimi* Etkinlikler
SDL Element.addEventListener
ClearInputEventRequest SDL Element.removeEventListener
GetType SDL Etkinlik sınıfı alt öğeleri
GetTimeStamp SDL Event.timeStamp
GetModifiers SDL *Event.altKey/shiftKey/metaKey/ctrlKey

PPB_MouseInputEvent

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Oluştur SDL MouseEvent
GetButton SDL MouseEvent.button
GetPosition SDL MouseEvent.client*/page*/offset*
GetClickCount SDL "dblclick" ve "mousedown" etkinlikleri
GetMovement SDL MouseEvent.movement*

PPB_WheelInputEvent

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Oluştur SDL WheelEvent
GetDelta SDL WheelEvent.delta*
GetTicks GAP GAP - deltaMode türü, bu bilgileri içerir, ancak eksiktir. WheelEvent.deltaMode API'si uygulama ile ilgili tartışma için: https://github.com/w3c/uievents/issues/181#issuescomment-537811017
GetScrollByPage GAP GAP - deltaMode türü, bu bilgileri içerir, ancak eksiktir. WheelEvent.deltaMode API'si uygulama ile ilgili tartışma için: https://github.com/w3c/uievents/issues/181#issuescomment-537811017

PPB_KeyboardInputEvent

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Oluştur SDL KeyboardEvent
GetKeyCode SDL KeyboardEvent.keyCode
GetCharacterText SDL KeyboardEvent.key
GetCode SDL KeyboardEvent.code

PPB_TouchInputEvent

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Oluştur SDL TouchEvent
AddTouchPoint SDL TouchEvent.touches.push
GetTouchCount SDL TouchEvent.touches.length
GetTouchByIndex SDL TouchEvent.touches[i]
GetTouchById SDL Touch.indentifer (bunu kendiniz belirlemek için)

PPB_IMEInputEvent

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Oluştur GAP CompositionEvent
GetText GAP CompositionEvent.data
GetSegmentNumber GAP GAP - Doğrudan eşdeğeri yok Bu veriler CompositionEvent.data kaynağından alınabilir.
GetSegmentOffset GAP GAP - Doğrudan eşdeğeri yok
GetTargetSegment GAP GAP - Doğrudan eşdeğeri yok
GetSelection GAP GAP - Doğrudan eşdeğeri yok

PPB_Instance

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
BindGraphics SDL Canvas.getContext (bağlama olarak belirleme otomatiktir).
IsFullFrame GAP GAP: MIME türü işleyicilerine eşdeğer bir şey yok. NaCl uygulamaları, belirli bir mime türünü işlemek ve dokümanın tamamına sahip olmak için kaydedilebilir.
DidCreate Yok &lt;Element&gt;[key] Genel DOM erişimi, etiket özelliklerini bulmanızı sağlar
DidDestroy Yok Yok NaCl için tetiklenmedi
DidChangeView Yok Öğe "yeniden boyutlandırıldı" Etkinlik
DidChangeFocus Yok Öğe "focus", "focusin", "focusout" Etkinlikleri
HandleDocumentLoad Yok GAP - Mime türü işleyici olarak kaydolmanın yolu yok Uygulamalar ve manifest girişi aracılığıyla NaCl modülleri, belirli mime türlerini işlemek için ayarlanabilir.

PPB_MediaStreamAudioTrack

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Yapılandır GAP getUserMedia() getUserMedia()'daki kısıtlamalar, MediaStreamTrack'te kullanılacak yapılandırma değerlerini sağlayabilir.
GetAttrib GAP MediaStreamTrack.getSettings()
GetId GAP MediaStreamTrack.id
HasEnded GAP MediaStreamTrack.readyState
GetBuffer GAP GAP - Eşdeğeri yok
RecycleBuffer GAP GAP - Eşdeğeri yok
Kapat GAP MediaStreamTrack.stop()

PPB_MediaStreamVideoTrack

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Oluştur GAP Tuval Yakala Tuval Yakalama, video karelerini programlı şekilde sunma olanağı sağlar.
Yapılandır GAP applyConstraints(), getUserMedia() GAP (kısmi): Web API'de kullanılabilen yapılandırmaların kapsamı PPAPI'den farklı olabilir.
GetAttrib GAP MediaStreamSettings.width
GAP MediaStreamSettings.height
GAP GAP - PP_MEDIASTREAMVIDEOTrack_ATTRIB_BUFFERED_FRAMES ile eşdeğer değildir MediaStream önceden yüklenemez, bu nedenle hiçbir zaman arabelleğe alınmaz: https://www.w3.org/TR/mediacapture-streams/#mediastreams-in-media-elements
GAP GAP - PP_MEDIASTREAMVIDEOTRACK_ATTRIB_FORMAT ile eşdeğer değil
GetId GAP MediaStreamTrack.id
HasEnded GAP MediaStreamTrack.readyState
GetFrame GAP GAP - Eşdeğeri yok
RecycleFrame GAP GAP - Eşdeğeri yok
Kapat GAP MediaStreamTrack.stop()
GetEmptyFrame GAP GAP - Eşdeğeri yok
PutFrame GAP GAP - Eşdeğeri yok

PPB_MessageLoop

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Oluştur Yok Çoğunlukla tartışmalı bir konudur. Çalışanlar, gizli bir etkinlik döngüsü alır.
GetForMainThread Yok Çalışanlar çoğunlukla örtülü bir etkinlik döngüsü elde eder.
GetCurrent Yok Çalışanlar çoğunlukla örtülü bir etkinlik döngüsü elde eder.
AttachToCurrentThread Yok Çalışanlar çoğunlukla örtülü bir etkinlik döngüsü elde eder.
Çalıştır Yok Çoğunlukla tartışmalı bir konudur. Çalışanlar, gizli bir etkinlik döngüsü alır.
PostWork Yok Çalışanlar çoğunlukla örtülü bir etkinlik döngüsü elde eder.
PostQuit Yok Çalışanlar çoğunlukla örtülü bir etkinlik döngüsü elde eder.

PPB_Messaging

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
PostMessage Yok Window.postMessage
RegisterMessageHandler Yok Window.addEventListener
UnregisterMessageHandler Yok Window.removeEventListener

PPB_MouseCursor

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
SetCursor SDL Element.style.cursor Aynı stok imleç grubu destekleniyor. Özel imleçler url(..) ile yapılabilir. Dinamik özel imleçler veri URI'leriyle yapılabilir. CSS3, hotspot'un belirtilmesini destekler.

PPB_MouseLock

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
LockMouse SDL Element.requestPointerLock
UnlockMouse SDL Element.exitPointerLock

PPB_OpenGLES2

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Çeşitli Yöntemler OpenGLES İşlevsel olarak WebGL 1.0'a yakındır.
x OffscreenCanvas

PPB_TextInputController

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
SetTextInputType GAP GAP - Giriş Yöntemi Düzenleyici API tarafından doldurulabilir Bazı geliştiriciler bu şekilde ipucu vermeyi veya tercihen IME etkinliklerini/çıktısını bir kanvasta satır içi olarak durdurup görüntülemeyi ister.
UpdateCaretPosition GAP GAP - Giriş Yöntemi Düzenleyici API tarafından doldurulabilir https://www.w3.org/TR/ime-api/
CancelCompositionText GAP GAP - Giriş Yöntemi Düzenleyici API tarafından doldurulabilir https://www.w3.org/TR/ime-api/
UpdateSurroundingText GAP GAP - Giriş Yöntemi Düzenleyici API tarafından doldurulabilir https://www.w3.org/TR/ime-api/

PPB_URLLoader

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Oluştur embind new XMLHttpRequest();
embind XMLHttpRequest.open
FollowRedirect embind Request.redirect
GAP GAP - XMLHTTPRequest eşdeğeri yok
GetUploadProgress embind XMLHttpRequest "progress" Etkinlik
GAP FetchObserver Henüz spesifikasyona eklenmemiş veya uygulanmamış; https://github.com/whatwg/fetch/issues/607
GetDownloadProgress embind XMLHttpRequest "progress" Etkinlik
GAP FetchObserver Henüz belirtilmemiş veya uygulanmadı; https://github.com/whatwg/fetch/issues/607
GetResponseInfo embind XMLHttpRequest.getAllResponseHeaders
embind Yanıtı Getir.*
ReadResponseBody embind XMLHttpRequest.response
embind Metin.* (Yanıt metin gövdesidir)
FinishStreamingToFile embind GAP - Doğrudan eşdeğeri yok Hem XMLHttpRequest hem de Fetch, doğrudan depolama yerine belleğe aktarmayı varsayar.
Kapat embind XMLHttpRequest.abort
GAP Fetch API: AbortSignal ve AbortController

PPB_URLRequestInfo

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Oluştur embind XMLHttpRequest
embind Getirme İsteği
SetProperty GAP GAP - XMLHttpRequest için doğrudan eşdeğer yok XMLHttpRequest, yönlendirmelerin ardından istek başına sınır için doğrudan yöntem sağlamıyor, bir dosyaya akış gerçekleştiriyor, yönlendiren veya kimlik bilgileri politikası ayarlamıyor.
embind İstek.*
AppendDataToBody embind XMLHttpRequest.send GAP: Her ikisinde de bir yığın yerine tüm gövde bulunmalıdır.
embind fetch(.., options:body)
AppendFileToBody GAP receive() yükleme akışı https://www.chromestatus.com/features/5274139738767360
Yok <form> Ayrıca FileReader ile okuyup yükleyebilirsiniz ancak bu daha çok AttachDataToBody gibi bir şeydir

PPB_URLResponseInfo

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
GetProperty embind XMLHttpRequest.getAllResponseHeaders + diğerleri
embind Getirme Yanıtı.*
GetBodyAsFileRef embind Getirilen Yanıt (Gövde) .blob() Depolama katmanının aktarımı optimize ettiğini varsayar.

PPB_Var

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
VarFromUtf8 embind TextDecoder.decode
VarToUtf8 embind TextEncoder.encode
VarFromResource Yok Yok
VarToResource Yok Yok

PPB_VarArray

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Get embind Array[i]
Hazır embind Dizi[i] = x
GetLength embind Array.length
SetLength embind Dizi.uzunluk = n

PPB_VarArrayBuffer

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Oluştur embind yeni ArrayBuffer(n)
ByteLength embind ArrayBuffer.byteLength
Harita GAP GAP - Doğrudan eşdeğeri yok Asm.js/WASM modülleri, tek doğrusal bellek yığınları dışındaki ArrayBuffer bölgelerini eşleyemez. Gelecekte birden fazla anı veya bellek eşleme özelliği bu sorunun giderilmesine yardımcı olabilir.
Eşlemeyi kaldır GAP GAP - Doğrudan eşdeğeri yok

PPB_VarDictionary

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Oluştur embind {}
Get embind &lt;Object&gt;[i]
Hazır embind <Nesne>[i] = x
Sil embind <Object>[i] öğesini sil
HasKey embind <Nesne> içinde x
GetKeys embind for (<Nesne> içinde k) {} Doğrudan eşdeğeri yoktur ancak oluşturulabilir.

PPB_VideoDecoder

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Oluştur GAP GAP - VideoDecoder() kullanılarak önerilen WebCodecs API'si ile işlenir https://github.com/WICG/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-streaming-or-cloud-gaming
Başlat GAP GAP: VideoDecoder() ilklendirme parametreleri (VideoDecoderInitParameters) kullanılarak önerilen WebCodecs API ile işlenir. https://github.com/WICG/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-streaming-or-cloud-gaming
Decode GAP GAP: ReadableStream.pipeThrough(VideoDecoder) kullanılarak önerilen WebCodecs API ile işlenir. https://github.com/WICG/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-streaming-or-cloud-gaming
GetPicture GAP GAP: ReadableStream.pipeThrough(VideoDecoder).pipeTo(VideoTrackWriter().writable) kullanılarak önerilen WebCodecs API ile işlenir. https://github.com/WICG/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-streaming-or-cloud-gaming
RecyclePicture GAP GAP: Önerilen WebCodecs API ile işlenir. Mevcut tasarım, resimleri otomatik olarak geri dönüştürür ve kod çözme işlemini devam ettirir. https://github.com/WICG/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-streaming-or-cloud-gaming
Gömme GAP GAP - Teklif edilen WebCodecs API'si ile işlenir. API'nin adı Flush() olacaktır. Ancak API'nin, kod çözme çağrılarıyla ilişkili olarak nasıl sıralanacağıyla ilgili tartışmalar devam etmektedir. https://github.com/WICG/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-streaming-or-cloud-gaming
Sıfırla GAP GAP - VideoDecoder örneği kaldırılıp yeni bir örnek oluşturularak, önerilen WebCodecs API'si ile işlenir. Bu, özel bir sıfırlama yöntemi kadar verimli olmayacaktır ancak Reset() API'sinin semantikleri hâlâ tartışılmaktadır. https://github.com/WICG/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-streaming-or-cloud-gaming

PPB_VideoEncoder

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Oluştur GAP GAP: VideoEncoder() kullanılarak önerilen WebCodecs API ile işlenir.
GetSupportedProfiles GAP GAP (kısmi) - navigator.mediaCapabilities.encodingInfo() Desteklenen profillerin tek tek kontrol edilmesi gerekir.
Başlat GAP GAP - VideoEncoder() başlatma parametreleri kullanılarak, önerilen WebCodecs API'siyle işlenir
GetFramesRequired GAP GAP - Eşdeğeri yok Web Codecs API tarafından dahili olarak kullanılan çerçeve havuzunun açığa çıkması olası değildir.
GetFrameCodedSize GAP GAP - Eşdeğeri yok Web Codecs API tarafından dahili olarak kullanılan çerçeve havuzunun açığa çıkması pek olası değildir.
GetVideoFrame GAP GAP: ReadableStream.pipeThrough(VideoEncoder) kullanılarak önerilen WebCodecs API ile işlenir. Bu durumda, kodlamadan önce veri doldurmak için tek bir kare almak yerine veriler doğrudan Readable akışına kodlanır.
Kodla GAP GAP - ReadableStream.pipeThrough(VideoEncoder) kullanılarak önerilen WebCodecs API'si ile işlenir
GetBitstreamBuffer GAP GAP - Teklif edilen WebCodecs API'si ile işlenir. Geçerli tasarım, otomatik olarak ardışık olarak iletilen kodlanmış bit akışı arabelleğinden geçer. WebCodecs API'de şu anda bit akışı arabelleğinin havuza alınmak yerine kopyalanabileceği varsayılmıştır, bu nedenle geri dönüştürülmesi gerekmez.
RecycleBitstreamBuffer GAP GAP - Önerilen WebCodecs API'si ile işlenir. Geçerli tasarım, kodlama sürecinin devam etmesi için arabelleği otomatik olarak geri dönüştürür. Performans üzerindeki etkileri daha az olduğundan bu durumun gelecekte değişmesi olası değildir.
RequestEncodingParametersChange GAP GAP - Önerilen Web Codecs API'si tarafından işlenir. Bazı parametreler anında değiştirilebilirken bazılarının değiştirilmesi için kodlayıcının dağıtılması gerekir.
Kapat GAP GAP: VideoEncoder.Close() kullanılarak önerilen WebCodecs API ile işlenir.

PPB_VideoFrame

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
GetTimestamp GAP GAP - Önerilen WebCodecs API'si ile işlenir.
SetTimestamp GAP GAP: Önerilen WebCodecs API ile işlenir.
GetFormat GAP GAP - Önerilen WebCodecs API'si ile işlenir.
GetSize GAP GAP: Önerilen WebCodecs API ile işlenir.
GetDataBuffer GAP GAP - Önerilen WebCodecs API'si ile işlenir.
GetDataBufferSize GAP GAP - Önerilen WebCodecs API'si ile işlenir.

PPB_View

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
GetRect embind Element.getBoundingClientRect
IsFullscreen embind Document.fullScreenEnabled Tek bir öğe değil, belge ile ilgilidir.
IsVisible embind IntersectionObserver
IsPageVisible embind document.visibilityState
GetClipRect embind IntersectionObserver
GetDeviceScale embind window.devicePixelRatio
GetCSSScale embind <Öğe>.getBoundingClientRect().width / <Öğe>.offsetWidth
GetScrollOffset embind <Öğe>.scrollTop / <Öğe>.scrollLeft

PPB_WebSocket

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Oluştur GAP WebSocket.WebSocket
Bağlan GAP WebSocket.WebSocket(url, ...) WebSocket "açılış" etkinliği
Kapat GAP WebSocket.close
ReceiveMessage GAP WebSocket "mesaj" Etkinlik WebSocket "hatası" Etkinlik WebSocket "close" Etkinlik
SendMessage GAP WebSocket.send
GetBufferedAmount GAP WebSocket.bufferedAmount
GetCloseCode GAP CloseEvent.code
GetCloseReason GAP CloseEvent.reason
GetCloseWasClean GAP CloseEvent.wasClean
GetExtensions GAP WebSocket.extensions
GetProtocol GAP WebSocket.protocol
GetReadyState GAP WebSocket.readyState
GetURL GAP WebSocket.url

PPP_Graphics3D

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Grafik3DBağlam Kayıp SDL Tuval "webglcontextlost" Etkinliği

PPP_InputEvent

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
HandleInputEvent SDL Element.addEventListener

PPP_Instance

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
DidCreate Yok &lt;Element&gt;[key] Genel DOM erişimi, etiket özelliklerini bulmanızı sağlar
DidDestroy Yok Yok NaCl için tetiklenmedi
DidChangeView Yok Öğe "yeniden boyutlandırıldı" Etkinlik
DidChangeFocus Yok Öğe "focus", "focusin", "focusout" Etkinlikleri
HandleDocumentLoad Yok GAP - Mime türü işleyici olarak kaydolmanın yolu yok Uygulamalar ve manifest girişi aracılığıyla NaCl modülleri, belirli mime türlerini işlemek için ayarlanabilir.

PPP_MessageHandler

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
HandleMessage embind MessagePort "mesaj" Etkinlik Pencere 'mesaj'ı Etkinlik
HandleBlockingMessage Yok GAP - Doğrudan eşdeğeri yok Benzer senkronizasyon, Atomics.wait ile ana iş parçacığı dışında yapılabilir. Bu, eşzamanlı eklenti API'lerinin emülasyonunu desteklemek için eklenmiştir.

PPP_Messaging

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
HandleMessage embind MessagePort "message" Etkinliği Window "message" Etkinliği

PPP_MouseLock

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
MouseLockLost SDL 'pointerlockchange', 'pointerlockerror' öğesi Etkinlikler

PPAPI (Uygulamalar)

PPB_HostResolver

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Oluştur x GAP GAP (kısmi) - Doğrudan eşdeğeri yok
Sorun gider x GAP GAP (kısmi) - Doğrudan eşdeğeri yok
GetCanonicalName x GAP GAP (kısmi) - Doğrudan eşdeğeri yok
GetNetAddressCount x GAP GAP (kısmi) - Doğrudan eşdeğeri yok
GetNetAddress x GAP GAP (kısmi) - Doğrudan eşdeğeri yok

PPB_NetAddress

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
CreateFromIPv4Address x GAP GAP (kısmi) - Doğrudan eşdeğeri yok
CreateFromIPv6Address x GAP GAP (kısmi) - Doğrudan eşdeğeri yok
GetFamily x GAP GAP (kısmi) - Doğrudan eşdeğeri yok
DescribeAsString x GAP GAP (kısmi) - Doğrudan eşdeğeri yok
DescribeAsIPv4Address x GAP GAP (kısmi) - Doğrudan eşdeğeri yok
DescribeAsIPv6Address x GAP GAP (kısmi) - Doğrudan eşdeğeri yok

PPB_NetworkList

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
GetCount x GAP GAP - Doğrudan eşdeğeri yok
GetName x GAP GAP - Doğrudan eşdeğeri yok
GetType x GAP GAP - Doğrudan eşdeğeri yok
GetState x GAP GAP - Doğrudan eşdeğeri yok
GetIpAddress x GAP GAP - Doğrudan eşdeğeri yok
GetDisplayName x GAP GAP - Doğrudan eşdeğeri yok
GetMTU x GAP GAP - Doğrudan eşdeğeri yok

PPB_NetworkMonitor

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
Oluştur x GAP GAP - Doğrudan eşdeğeri yok
UpdateNetworkList x GAP GAP - Doğrudan eşdeğeri yok

PPB_NetworkProxy

PPAPI Yöntemi Threads'i üstlendiği varsayılır Emscripten Web API Sınırlamalar
GetProxyForURL x GAP GAP - Doğrudan eşdeğeri yok

PPB_TCPSocket ve PPB_UDPSocket

Taşıma işlemi için doğrudan 1:1 eşleme yoktur. Bunun yerine kullanıcı senaryolarına ve önerilen taşıma yolunun ne olduğuna değindik.

Kullanım Örneği Öneriler
Ekran paylaşımı getDisplayMedia ve WebRTC ( demo)
Bant genişliği kullanımını en aza indirmek için yerel bir sunucudan yükleme XHR, Fetch, Streams, Service Worker, Cache API'leri
Şuradan yükleniyor: bir web uygulamasının yerel örneği / Web uygulamasının yerel bir örneğine bağlanma WebRTC
Sohbet WebSocket*
Gerçek zamanlı sesli/görüntülü iletişim WebRTC
Ortak çalışma WebSocket*
Gerçek zamanlı çok oyunculu oyunlar WebTransport** P2P değilse WebRTC (veya RTCIceTransport üzerinden WebTransport)
Gerçek zamanlı etkileşimli yayın WebTransport**
Eski sunucuyla iletişim kurma Protokol dönüşümü yapmak için proxy sunucusu veya orta yazılım. bit.ly/network-api-gaps adresine geri bildirim gönderin.

*: Veya ileride WebTransport

**: Kullanılabilirlik durumu için chromestatus konusuna bakın