(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.
(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. |
Aç |
|
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 |
Aç |
|
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 |
|
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 |
|
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* |
|
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 |
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 |
|
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) |
|
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. |
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() |
|
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(); |
|
Aç |
|
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 |
<Object>[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 |
|
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 |
<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. |
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. |
Aç |
|
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 |
Aç |
|
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 |
|
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 |
|
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* |
|
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 |
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 |
|
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) |
|
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. |
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() |
|
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(); |
|
Aç |
|
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 |
<Object>[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 |
|
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 |
<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. |
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