(P)NaCl-beëindigingsaankondigingen
Gezien het momentum van cross-browser WebAssembly-ondersteuning zijn we van plan onze native code-inspanningen in de toekomst te concentreren op WebAssembly en zijn we van plan de ondersteuning voor PNaCl in het vierde kwartaal van 2019 te verwijderen (behalve voor Chrome-apps). Wij zijn van mening dat het levendige ecosysteem rond WebAssembly het beter geschikt maakt voor nieuwe en bestaande krachtige webapps en dat het gebruik van PNaCl voldoende laag is om beëindiging te rechtvaardigen.
Vanaf Chrome 76 is PNaCl op het open web verplaatst naar een Origin Trial , een mechanisme waarmee webontwikkelaars zich kunnen registreren en toegang kunnen krijgen tot een functie die niet standaard is ingeschakeld. Dit is meestal een nieuwe voorgestelde functie, maar in dit geval is het een functie die wordt beëindigd. Een ontwikkelaar kan zich registreren op de Origin Trial Console en een token ontvangen, dat in een pagina kan worden ingesloten en de functie zal inschakelen zonder dat de gebruiker een vlag hoeft te gebruiken. (Zie de gekoppelde handleiding voor meer details). De proefperiode loopt naar Chrome 78, ongeveer tot december 2019. Deze wijziging is niet bedoeld om NaCl of PNaCl in Chrome-apps of -extensies te beïnvloeden, en de vlag 'enable-nacl' in chrome://flags kan ook worden gebruikt om schakel PNaCl lokaal in voor testen (deze vlag behoudt ook zijn huidige functie van het inschakelen van niet-PNaCl “native” NaCl op elke pagina).
We hebben onlangs ook de beëindiging van Chrome-apps buiten ChromeOS in het eerste kwartaal van 2018 aangekondigd.
Voor de meeste gevallen van (P)NaCl-gebruik raden we aan om over te stappen van de NaCl SDK naar Emscripten . Migratie zal waarschijnlijk redelijk eenvoudig zijn als uw toepassing overdraagbaar is naar Linux en gebruikmaakt van SDL- of POSIX-API's. Hoewel directe ondersteuning voor NaCl/Pepper API's niet beschikbaar is, hebben we geprobeerd Web API-equivalenten op te sommen. Voor meer uitdagende porteringsgevallen kunt u contact opnemen met native-client-discuss @ googlegroups . com
API-migratie
We hebben hier de status geschetst van webplatformvervangers voor elk van de API's die zijn blootgesteld aan (P)NaCl. Bovendien vermeldt de tabel de bibliotheek of optie in Emscripten die de dichtstbijzijnde vervanging biedt.
We verwachten in 2017 ondersteuning voor gedeelde geheugenthreads aan WebAssembly toe te voegen, omdat threads cruciaal zijn voor het matchen van de meest interessante gebruiksscenario's van (P)NaCl. Migratie-items die uitgaan van toekomstige threadondersteuning worden hieronder gemarkeerd. Als de stroomcontrole van uw toepassing sterk afhankelijk is van het blokkeren van API's, zult u wellicht ook vinden dat threads-ondersteuning vereist is voor gemakkelijke portering.
Hoewel we hebben geprobeerd nauwkeurig te zijn in deze tabel, zijn er ongetwijfeld fouten of weglatingen. Als u er een tegenkomt, neem dan contact met ons op via native-client-discuss @ googlegroups . com
PPAPI
PPB_Audio
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
Creëren | X | SDL (gedeeltelijk) | GAP (gedeeltelijk) - AudioWorkletNode RUW gelijkwaardig | De AudioWorkletSpec is klaar, maar AudioDeviceClient past mogelijk beter bij deze API. De AudioDeviceClient wordt nog steeds gespecificeerd door de community. Het werklet is mogelijk niet het ruwe equivalent voor deze API. |
GetCurrentConfig | | SDL | AudioContext.* (haalt de doorgegeven instellingen terug) | |
Start afspelen | | SDL | AudioBufferSourceNode.start | |
Stop het afspelen | | SDL | AudioBufferSourceNode.stop | |
PPB_AudioBuffer
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
Tijdstempel ophalen | | SDL | AudioBufferSourceNode.start (parameter) | Elke keer doorgegeven in plaats van vastgemaakt aan de buffer. |
Tijdstempel instellen | | SDL | AudioBufferSourceNode.start (parameter) | |
GetSampleRate | | SDL | AudioBuffer.sampleRate | |
GetSampleSize | | GAT | GAP - WebAudio gebruikt alleen 32-bit float, PPAPI doet 16-bit int. | PPAPI ondersteunt theoretisch meerdere steekproefgroottes. In de praktijk ondersteunt het alleen 16-bits samples. Helaas hebben ontwikkelaars om 16-bits steekproefgroottes gevraagd om geheugengebruik te besparen. De volgende versie van de Web Audio-specificatie implementeert ondersteuning voor 16-bits samples. Een optimalisatie voor AudioBuffer zou vergelijkbaar met Firefox kunnen worden geïmplementeerd door een 16-bits buffer te gebruiken voor audio die afkomstig is van decodeAudioData |
GetNumberOfChannels | | SDL | AudioBuffer.numberOfChannels | |
GetDataBuffer | | SDL | AudioBuffer.getChannelData | |
GetBuffergrootte | | SDL | AudioBuffer.lengte | |
PPB_AudioConfig
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
CreëerStereo16Bit | | GAT | GAP - Alleen 32-bit float-samples ondersteund | De volgende versie van de Web Audio-specificatie implementeert ondersteuning voor 16-bits samples. |
GetSampleRate | | SDL | AudioContext.sampleRate | |
GetSampleFrameCount | | SDL | AudioBuffer.lengte | |
AanbevolenSampleRate | | SDL | AudioContext.sampleRate (van standaardconstructie) | Een AudioContext heeft standaard de voorkeursbemonsteringsfrequentie die overeenkomt met de werkelijke bemonsteringsfrequentie van het hardware-audioapparaat. |
AanbevolenSampleFrameCount | | GAT | GAP - Zou worden afgehandeld met de geplande AudioDeviceClient | Er is een openstaand probleem om een door de gebruiker opgegeven formaat toe te staan, maar dit wordt nog gedefinieerd. Dit kan waarschijnlijk het beste worden afgehandeld met AudioDeviceClient, die u kan vertellen wat de juiste maat zou zijn voor de gegeven hardware. |
PPB_Console
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
Logboek | | tijd | console.log/warn/error/... | |
LogMetSource | | GAT | GAT | De Console API wordt beschouwd als een voldoende volledige vervanging, tenzij er specifieke gebruiksscenario's zijn die door ontwikkelaars naar voren zijn gebracht voor de functionaliteit die door LogWithSource wordt geboden. DevTools Source Maps kunnen worden gebruikt om getranspileerde JavaScript-codes in hun oorspronkelijke brontaal te debuggen. |
PPB_Kern
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
haalTijd | | tijd | nieuwe Datum().getTime() | |
getTimeTicks | | tijd | nieuwe Datum().getTime() | |
IsMainThread | | GAT | venster.document !== ongedefinieerd | |
CallOnMainThread | | GAT | Worker.postMessage + Atomics.wait | Equivalente synchronisatie kan worden opgebouwd. |
PPB_FileIO
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
Creëren | | FS (gedeeltelijk) | window.chooseFileSystemEntries() | Creëer en open worden verschillend gebruikt, maar de stukken zijn even krachtig. |
Open | | FS (gedeeltelijk) | window.chooseFileSystemEntries() | |
Vraag | | FS (gedeeltelijk) | Blob.size, FileSystemHandle.getFile(), FileSystemHandle.getDirectory(), File.lastModified | GAP (gedeeltelijk) - Blob.type kan ook worden gebruikt om het MIME-type te controleren. Het bestandssysteemtype, de aanmaaktijd en de laatste toegangstijd kunnen niet worden bepaald met de Native File System API. |
Aanraken | | FS (gedeeltelijk) | FileSystemDirectoryHandle.getFile("naam", {create: true}) | |
Lezen | | FS (gedeeltelijk) | Blob.slice().arrayBuffer() | |
Schrijven | | FS (gedeeltelijk) | BestandSysteemWriter.write() | |
Lengte instellen | | FS (gedeeltelijk) | FileSystemWriter.truncate() | |
Spoelen | | GAP (gedeeltelijk) | GAP (gedeeltelijk) - Bestanden worden leeggemaakt wanneer FileSystemWrite.close() wordt aangeroepen | Dit is zo bedoeld omdat de Native File System API-bestanden worden blootgesteld aan het besturingssysteem. Daarom moet er een Safe Browsing-controle worden uitgevoerd voordat gegevens aan het besturingssysteem worden getoond. |
Dichtbij | | FS (gedeeltelijk) | FileSystemWriter.close() | Annuleert lopende bewerkingen niet, maar wist alle gegevens die tot nu toe naar de schijf zijn geschreven. |
LeesToArray | | GAT | Blob.slice().arrayBuffer() of Blob.arrayBuffer() | Maakt parallel lezen van meerdere subbereiken mogelijk. |
PPB_BestandRef
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
Creëren | | FS (gedeeltelijk) | FileSystemDirectoryHandle.getFile("naam", {create: true}) | |
GetFileSystemType | | FS (gedeeltelijk) | Bestandssysteem.type | |
Naam ophalen | | FS (gedeeltelijk) | Bestandsnaam | |
GetPath | | FS (gedeeltelijk) | GAP (gedeeltelijk) - Met de Native File System API kan het relatieve pad van een bestand worden bepaald op basis van verwijzing naar een map die het bestand bevat met behulp van FileSystemHandle.resolve(FileSystemHandle) | Het absolute pad van een bestand kan niet worden bepaald en de gebruiker moet toestemming verlenen om toegang te krijgen tot de map die het bestand bevat. |
GetOuder | | FS (gedeeltelijk) | GAP (gedeeltelijk) - Met de Native File System API kan het relatieve pad van een bestand worden bepaald op basis van verwijzing naar een map die het bestand bevat met behulp van FileSystemHandle.resolve(FileSystemHandle) | De gebruiker moet toestemming verlenen om toegang te krijgen tot de map die het bestand bevat. |
MaakDirectory | | FS (gedeeltelijk) | FileSystemHandle.getDirectory(..., {createIfNotExists: true}) | |
Aanraken | | FS (gedeeltelijk) | FileSystemDirectoryHandle.getFile("naam", {create: true}) | De wijzigingstijd kan worden verkort door te schrijven. |
Verwijderen | | FS (gedeeltelijk) | FileSystemDirectoryHandle.removeEntry() | In tegenstelling tot de PPAPI hoeven mappen niet leeg te zijn. |
Hernoemen | | FS (gedeeltelijk) | GAP (gedeeltelijk) - Met de Native File System API kan het bestand worden geschreven met de nieuwe naam met behulp van een combinatie van FileSystemFileHandle.getFile() voor de nieuwe naam en FileSystemFileHandle.createWriter().write() met de inhoud van de oude bestand. Vervolgens FileSystemDirectoryHandle.removeEntry() om het oude bestand te verwijderen. | Er is geen directe API die dit in één stap doet in de Native File System API. |
Vraag | | GAP (gedeeltelijk) | Blob.size, FileSystemHandle.getFile(), FileSystemHandle.getDirectory(), File.lastModified | GAP (gedeeltelijk) - Blob.type kan ook worden gebruikt om het MIME-type te controleren. Het bestandssysteemtype, de aanmaaktijd en de laatste toegangstijd kunnen niet worden bepaald met de Native File System API. |
Lees DirectoryEntries | | FS (gedeeltelijk) | FileSystemDirectoryHandle.getEntries() | |
PPB_Bestandssysteem
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
Creëren | | FS (gedeeltelijk) | venster.requestFileSystem | JS API doet beide in één stap |
Open | | GAT | venster.requestFileSystem | JS API doet beide in één stap |
GetType | | GAT | Bestandssysteem.type | |
PPB_Volledig scherm
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
Is volledig scherm | | html5.h | Document.fullscreenEnabled | |
Volledig scherm instellen | | html5.h | Document.requestVolledig scherm | |
Schermgrootte ophalen | | html5.h | Document.exitVolledig scherm | |
PPB_Gamepad
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
Steekproef | | SDL | Gamepad.* | Het Gamepad-object geeft een tijdstempel weer die relatief is aan navigatieStart. Het wordt bijgewerkt wanneer gegevens worden ontvangen van de hardware https://www.w3.org/TR/gamepad/#gamepad-interface |
PPB_Grafisch2D
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
Creëren | | SDL | Canvas.getContext('2d') | |
Beschrijven | | SDL | Canvas.clientWidth + Canvas.clientHeight | |
PaintImageData | | SDL | CanvasRenderingContext2D.putImageData | |
Rol | | GAT | CanvasRenderingContext2D.scrollIntoView, CanvasRenderingContext2D.drawImage | GAP (gedeeltelijk) - Kan worden geïmplementeerd door het canvas op zichzelf te tekenen, met een offset, met behulp van drawImage, en vervolgens de rest in te vullen. |
Inhoud vervangen | | SDL | CanvasRenderingContext2D.drawImage | |
Spoelen | | GAT | Geen direct equivalent | GAP (gedeeltelijk) - Er is altijd een impliciete flush aan het einde van de trekkingscode; het is onwaarschijnlijk dat dit zal veranderen. De combinatie van OffscreenCanvas en ImageBitmapRenderingContext biedt echter vergelijkbare functionaliteit. |
Schaal instellen | | SDL | CanvasRenderingContext2D.scale | |
GetScale | | SDL | CanvasRenderingContext2D.currentTransform | |
SetLayerTransform | | SDL | CanvasRenderingContext2D.setTransform CanvasRenderingContext2D.scale CanvasRenderingContext2D.translate | |
PPB_Grafisch3D
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
GetAttribMaxValue | | OpenGL ES 3.0 | WebGL 2.0 | GAP (gedeeltelijk) - WebGL 2.0 en Emscripten's blootstelling aan OpenGL ES 3.0 ondersteunen door de gebruiker gedefinieerde multisampled framebuffers, waarin alle parameters die via PPAPI kunnen worden geconfigureerd, kunnen worden ingesteld. |
Creëren | | SDL | Canvas.getContext | |
GetAttribs | | SDL | WebGLRenderingContext.getContextAttributes | |
Attribs instellen | | SDL | Canvas.getContext(.., OPTIES) | |
GetError | | SDL | WebGLRenderingContext.getError | |
Formaat wijzigen Buffers | | SDL | Doekbreedte = w; Doekhoogte = h; | |
Wisselbuffers | | GAT | Geen direct equivalent | GAP (gedeeltelijk) - Er is altijd een impliciete flush aan het einde van de trekkingscode; het is onwaarschijnlijk dat dit zal veranderen. De combinatie van OffscreenCanvas en ImageBitmapRenderingContext biedt echter vergelijkbare functionaliteit. |
PPB_ImageData
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
GetNativeImageDataFormat | | SDL | ImageData geeft opdracht tot RGBA-bestelling | |
Wordt ImageDataFormat ondersteund | | SDL | ImageData geeft opdracht tot RGBA-bestelling | |
Creëren | | SDL | CanvasRenderingContext2d.createImageData | |
Beschrijven | | SDL | ImageData heeft nooit een stap gezet | |
Kaart | | SDL | ImageData.data | |
Toewijzing ongedaan maken | | SDL | ImageData.data | |
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
RequestInputEvents | | SDL | Geen direct equivalent | Het ontbreken van deze functie is waarschijnlijk minder relevant omdat JS / Wasm op de hoofdthread draait en goedkoper gebeurtenissen kan filteren zonder dat er een cross-process round trip plaatsvindt. |
RequestFilteringInputEvents | | SDL | muis* toets* wiel* aanraking* compositie* Gebeurtenissen | |
| | SDL | Element.addEventListener | |
ClearInputEventRequest | | SDL | Element.removeEventListener | |
GetType | | SDL | Afstammelingen van gebeurtenisklasse | |
GetTimeStamp | | SDL | Gebeurtenis.tijdstempel | |
GetModifiers | | SDL | *Event.altKey/shiftKey/metaKey/ctrlKey | |
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
Creëren | | SDL | MuisGebeurtenis | |
GetKnop | | SDL | MouseEvent.knop | |
GetPositie | | SDL | MouseEvent.client*/pagina*/offset* | |
GetClickCount | | SDL | dblclick' versus 'mousedown'-gebeurtenissen | |
Krijg beweging | | SDL | MuisEvent.beweging* | |
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
Creëren | | SDL | WielEvent | |
GetDelta | | SDL | WheelEvent.delta* | |
GetTicks | | GAT | GAP - deltaMode bevat deze informatie, maar onvolledig. | Er is discussie over het implementeren van een WheelEvent.deltaMode API: https://github.com/w3c/uievents/issues/181#issuecomment-537811017 |
GetScrollByPage | | GAT | GAP - deltaMode bevat deze informatie, maar onvolledig. | Er is discussie over het implementeren van een WheelEvent.deltaMode API: https://github.com/w3c/uievents/issues/181#issuecomment-537811017 |
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
Creëren | | SDL | Toetsenbordgebeurtenis | |
GetKeyCode | | SDL | KeyboardEvent.keyCode | |
GetCharacterText | | SDL | KeyboardEvent.toets | |
GetCode | | SDL | KeyboardEvent.code | |
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
Creëren | | SDL | RaakGebeurtenis aan | |
TouchPoint toevoegen | | SDL | TouchEvent.touches.push | |
GetTouchCount | | SDL | TouchEvent.touches.lengte | |
GetTouchByIndex | | SDL | TouchEvent.touches[i] | |
GetTouchById | | SDL | Touch.indentifer (om dit zelf uit te zoeken) | |
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
Creëren | | GAT | SamenstellingEvenement | |
GetText | | GAT | CompositionEvent.data | |
GetSegmentnummer | | GAT | GAP - Geen direct equivalent | Deze gegevens kunnen mogelijk worden opgehaald uit CompositionEvent.data. |
GetSegmentOffset | | GAT | GAP - Geen direct equivalent | |
GetTargetSegment | | GAT | GAP - Geen direct equivalent | |
Selecteer selectie | | GAT | GAP - Geen direct equivalent | |
PPB_Instance
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
BindGraphics | | SDL | Canvas.getContext (betwistbaar omdat binding automatisch is). | |
IsFullFrame | | GAT | GAP - Geen equivalent voor handlers van het mime-type. | NaCl-apps kunnen worden geregistreerd om een bepaald mime-type te verwerken en eigenaar te worden van het hele document. |
DidCreëer | | N.v.t | <Element>[sleutel] | Met algemene DOM-toegang kunt u tagkenmerken uitvissen |
Heeft vernietigd | | N.v.t | N.v.t | Niet geactiveerd voor NaCl |
DidChangeView | | N.v.t | Element 'formaat wijzigen' Gebeurtenis | |
Heeft de focus veranderd | | N.v.t | Element 'focus', 'focusin', 'focusout' Gebeurtenissen | |
BehandelDocumentLoad | | N.v.t | GAP - Geen manier om te registreren als een mime-type handler | NaCl-modules via apps + een manifestinvoer kunnen worden ingesteld om bepaalde mime-typen te verwerken. |
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
Configureer | | GAT | getUserMedia() | De beperkingen van getUserMedia() kunnen de configuratiewaarden bieden die in MediaStreamTrack moeten worden gebruikt. |
GetAttrib | | GAT | MediaStreamTrack.getSettings() | |
GetId | | GAT | MediaStreamTrack.id | |
Is beëindigd | | GAT | MediaStreamTrack.readyState | |
GetBuffer | | GAT | GAP - Geen equivalent | |
Recyclebuffer | | GAT | GAP - Geen equivalent | |
Dichtbij | | GAT | MediaStreamTrack.stop() | |
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
Creëren | | GAT | Canvasopname | Canvas Capture biedt de mogelijkheid om videoframes programmatisch te introduceren. |
Configureer | | GAT | applyConstraints(), getUserMedia() | GAP (gedeeltelijk) - De omvang van de configuraties die beschikbaar zijn in de Web API kan verschillen van de PPAPI. |
GetAttrib | | GAT | MediaStreamSettings.width | |
| | GAT | MediaStreamSettings.hoogte | |
| | GAT | GAP - geen equivalent van PP_MEDIASTREAMVIDEOTRACK_ATTRIB_BUFFERED_FRAMES | MediaStream kan niet vooraf worden geladen en zal dus nooit bufferen: https://www.w3.org/TR/mediacapture-streams/#mediastreams-in-media-elements |
| | GAT | GAP - geen equivalent van PP_MEDIASTREAMVIDEOTRACK_ATTRIB_FORMAT | |
GetId | | GAT | MediaStreamTrack.id | |
Is beëindigd | | GAT | MediaStreamTrack.readyState | |
GetFrame | | GAT | GAP - Geen equivalent | |
RecycleFrame | | GAT | GAP - Geen equivalent | |
Dichtbij | | GAT | MediaStreamTrack.stop() | |
Haal een leeg frame op | | GAT | GAP - Geen equivalent | |
ZetFrame | | GAT | GAP - Geen equivalent | |
PPB_MessageLoop
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
Creëren | | N.v.t | Meestal betwistbaar, werknemers krijgen een impliciete gebeurtenislus. | |
GetForMainThread | | N.v.t | Meestal betwistbaar, werknemers krijgen een impliciete gebeurtenislus. | |
GetCurrent | | N.v.t | Meestal betwistbaar, werknemers krijgen een impliciete gebeurtenislus. | |
AttachToCurrentThread | | N.v.t | Meestal betwistbaar, werknemers krijgen een impliciete gebeurtenislus. | |
Loop | | N.v.t | Meestal betwistbaar, werknemers krijgen een impliciete gebeurtenislus. | |
Postwerk | | N.v.t | Meestal betwistbaar, werknemers krijgen een impliciete gebeurtenislus. | |
PostQuit | | N.v.t | Meestal betwistbaar, werknemers krijgen een impliciete gebeurtenislus. | |
PPB_Berichten
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
Postbericht | | N.v.t | Venster.postbericht | |
RegistrerenMessageHandler | | N.v.t | Window.addEventListener | |
Maak de registratie van MessageHandler ongedaan | | N.v.t | Window.removeEventListener | |
PPB_MouseCursor
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
SetCursor | | SDL | Element.stijl.cursor | Dezelfde set aandelencursors wordt ondersteund. Aangepaste cursors kunnen worden gemaakt met url(..). Dynamische aangepaste cursors kunnen worden uitgevoerd met gegevens-URI's. CSS3 ondersteunt het specificeren van de hotspot. |
PPB_MuisVergrendeling
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
Vergrendelmuis | | SDL | Element.requestPointerLock | |
Ontgrendel de muis | | SDL | Element.exitPointerLock | |
PPB_OpenGLES2
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
Verschillende methoden | | OpenGLES | Dicht bij WebGL 1.0 qua functionaliteit. | |
| X | | OffscreenCanvas | |
PPB_TextInputController
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
SetTextInputType | | GAT | GAP - Mogelijk gevuld door de Input Method Editor API | Sommige ontwikkelaars zouden graag op deze manier hints willen geven, of liever de mogelijkheid willen hebben om IME-gebeurtenissen/uitvoer inline in een canvas te onderscheppen en weer te geven. |
UpdateCaretPositie | | GAT | GAP - Mogelijk gevuld door de Input Method Editor API | https://www.w3.org/TR/ime-api/ |
AnnuleerCompositieTekst | | GAT | GAP - Mogelijk gevuld door de Input Method Editor API | https://www.w3.org/TR/ime-api/ |
UpdateOmringende Tekst | | GAT | GAP - Mogelijk gevuld door de Input Method Editor API | https://www.w3.org/TR/ime-api/ |
PPB_URLLader
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
Creëren | | inbinden | nieuwe XMLHttpRequest(); | |
Open | | inbinden | XMLHttpRequest.open | |
VolgRedirect | | inbinden | Verzoek.omleiding | |
| | GAT | GAP - Geen XMLHTTPRequest-equivalent | |
GetUploadProgress | | inbinden | XMLHttpRequest 'voortgang'-gebeurtenis | |
| | GAT | Haal waarnemer op | Nog niet gespecificeerd of geïmplementeerd; https://github.com/whatwg/fetch/issues/607 |
GetDownloadProgress | | inbinden | XMLHttpRequest 'voortgang'-gebeurtenis | |
| | GAT | Haal waarnemer op | Nog niet gespecificeerd of geïmplementeerd; https://github.com/whatwg/fetch/issues/607 |
KrijgResponseInfo | | inbinden | XMLHttpRequest.getAllResponseHeaders | |
| | inbinden | Reactie ophalen.* | |
LeesResponseBody | | inbinden | XMLHttpRequest.response | |
| | inbinden | Lichaam.* (Reactie is een lichaam) | |
FinishStreamingToFile | | inbinden | GAP - Geen direct equivalent | XMLHttpRequest en Fetch gaan beide uit van streaming naar het geheugen, in plaats van rechtstreeks naar een opslag. |
Dichtbij | | inbinden | XMLHttpRequest.abort | |
| | GAT | API ophalen: AbortSignal en AbortController | |
PPB_URLRequestInfo
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
Creëren | | inbinden | XMLHttpRequest | |
| | inbinden | Verzoek ophalen | |
Eigenschap instellen | | GAT | GAP - Geen direct equivalent voor XMLHttpRequest | XMLHttpRequest biedt geen directe manieren om het aantal volgende omleidingen per verzoek te beperken, naar een bestand te streamen, een verwijzings- of referentiebeleid in te stellen. |
| | inbinden | Verzoek.* | |
Gegevens toevoegen aan lichaam | | inbinden | XMLHttpRequest.send | GAP - Beide moeten het hele lichaam hebben, in plaats van een stuk. |
| | inbinden | ophalen(.., opties:body) | |
VoegBestandToBody toe | | GAT | fetch() uploadstreaming | https://www.chromestatus.com/features/5274139738767360 |
| | N.v.t | <formulier> | Je kunt ook lezen met FileReader en uploaden, maar dat lijkt meer op AppendDataToBody |
PPB_URLResponsInfo
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
Eigendom verkrijgen | | inbinden | XMLHttpRequest.getAllResponseHeaders + anderen | |
| | inbinden | Reactie ophalen.* | |
GetBodyAsFileRef | | inbinden | Reactie ophalen (hoofdtekst) .blob() | Veronderstelt dat de opslaglaag de overdracht optimaliseert. |
PPB_Var
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
VarVanUtf8 | | inbinden | TekstDecoder.decode | |
VarToUtf8 | | inbinden | TextEncoder.encode | |
VarVanResource | | N.v.t | N.v.t | |
VarNaarResource | | N.v.t | N.v.t | |
PPB_VarArray
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
Krijgen | | inbinden | Array[ik] | |
Set | | inbinden | Array[i] = x | |
Lengte ophalen | | inbinden | Arraylengte | |
Lengte instellen | | inbinden | Array.lengte = n | |
PPB_VarArrayBuffer
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
Creëren | | inbinden | nieuwe ArrayBuffer(n) | |
Bytelengte | | inbinden | ArrayBuffer.byteLength | |
Kaart | | GAT | GAP - Geen direct equivalent | Asm.js/Wasm-modules kunnen geen andere regio's van een ArrayBuffer in kaart brengen dan hun enkele lineaire geheugenheap. Toekomstige meervoudige herinneringen of geheugenmapping kunnen dit verbeteren. |
Toewijzing ongedaan maken | | GAT | GAP - Geen direct equivalent | |
PPB_VarDictionary
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
Creëren | | inbinden | {} | |
Krijgen | | inbinden | <Object>[i] | |
Set | | inbinden | <Object>[i] = x | |
Verwijderen | | inbinden | verwijder <Object>[i] | |
HasKey | | inbinden | x in <Object> | |
Sleutels ophalen | | inbinden | voor (k in <Object>) {} | Geen letterlijk equivalent, maar het kan worden gebouwd. |
PPB_VideoDecoder
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
Creëren | | GAT | GAP - Zou worden afgehandeld met de voorgestelde WebCodecs API met behulp van VideoDecoder() | https://github.com/WICG/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-streaming-or-cloud-gaming |
Initialiseren | | GAT | GAP - Zou worden afgehandeld met de voorgestelde WebCodecs API met behulp van VideoDecoder()-initialisatieparameters (VideoDecoderInitParameters) | https://github.com/WICG/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-streaming-or-cloud-gaming |
Decoderen | | GAT | GAP - Zou worden afgehandeld met de voorgestelde WebCodecs API met behulp van ReadableStream.pipeThrough (VideoDecoder) | https://github.com/WICG/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-streaming-or-cloud-gaming |
Beeld ophalen | | GAT | GAP - Zou worden afgehandeld met de voorgestelde WebCodecs API met behulp van ReadableStream.pipeThrough(VideoDecoder).pipeTo(VideoTrackWriter().writable) | https://github.com/WICG/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-streaming-or-cloud-gaming |
RecycleAfbeelding | | GAT | GAP - Zou worden afgehandeld met de voorgestelde WebCodecs API. Het huidige ontwerp recyclet de afbeeldingen automatisch en houdt het decoderingsproces gaande. | https://github.com/WICG/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-streaming-or-cloud-gaming |
Spoelen | | GAT | GAP - Zou worden afgehandeld met de voorgestelde WebCodecs API. De API zal Flush() heten, maar er is nog steeds discussie over hoe deze zal worden gesequenced in relatie tot decodeeraanroepen. | https://github.com/WICG/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-streaming-or-cloud-gaming |
Opnieuw instellen | | GAT | GAP - Zou worden afgehandeld met de voorgestelde WebCodecs API door de VideoDecoder-instantie te vernietigen en een nieuwe te maken. Dit zal niet zo efficiënt zijn als een speciale resetmethode, maar de semantiek voor een Reset() API wordt nog steeds besproken. | https://github.com/WICG/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-streaming-or-cloud-gaming |
PPB_VideoEncoder
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
Creëren | | GAT | GAP - Zou worden afgehandeld met de voorgestelde WebCodecs API met behulp van VideoEncoder() | |
Ondersteunde profielen ophalen | | GAT | GAP (gedeeltelijk) - navigator.mediaCapabilities.encodingInfo() | De ondersteunde profielen moeten één voor één worden gecontroleerd. |
Initialiseren | | GAT | GAP - Zou worden afgehandeld met de voorgestelde WebCodecs API met behulp van VideoEncoder()-initialisatieparameters | |
GetFrames vereist | | GAT | GAP - Geen equivalent | Het is onwaarschijnlijk dat de framepool die intern door de Web Codecs API wordt gebruikt, wordt blootgesteld. |
GetFrameCodedSize | | GAT | GAP - Geen equivalent | Het is onwaarschijnlijk dat de framepool die intern door de Web Codecs API wordt gebruikt, wordt blootgesteld. |
VideoFrame ophalen | | GAT | GAP - Zou worden afgehandeld met de voorgestelde WebCodecs API door ReadableStream.pipeThrough (VideoEncoder) te gebruiken. Dit zou de gegevens in de leesbare stroom rechtstreeks coderen in plaats van een enkel frame te pakken om met gegevens te vullen vóór het coderen. | |
Coderen | | GAT | GAP - Zou worden afgehandeld met de voorgestelde WebCodecs API met behulp van ReadableStream.pipeThrough (VideoEncoder) | |
GetBitstreamBuffer | | GAT | GAP - Zou worden afgehandeld met de voorgestelde WebCodecs API. Het huidige ontwerp gaat automatisch door de gecodeerde bitstreambuffer waar doorheen wordt gesluisd. | De WebCodecs API gaat er momenteel van uit dat de bitstreambuffer kan worden gekopieerd in plaats van gepoold, zodat deze niet hoeft te worden gerecycled. |
RecycleBitstreamBuffer | | GAT | GAP - Zou worden afgehandeld met de voorgestelde WebCodecs API. Het huidige ontwerp recyclet de buffer automatisch om het coderingsproces gaande te houden. | Het is onwaarschijnlijk dat dit in de toekomst zal veranderen, omdat de gevolgen voor de prestaties kleiner zijn. |
RequestEncodingParametersWijzigen | | GAT | GAP - Zou worden afgehandeld door de voorgestelde Web Codecs API. Bepaalde parameters kunnen in een handomdraai worden gewijzigd, terwijl voor andere de encoder moet worden afgebroken. | |
Dichtbij | | GAT | GAP - Zou worden afgehandeld met de voorgestelde WebCodecs API door VideoEncoder.Close() te gebruiken | |
PPB_VideoFrame
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
Tijdstempel ophalen | | GAT | GAP - Zou worden afgehandeld met de voorgestelde WebCodecs API. | |
Tijdstempel instellen | | GAT | GAP - Zou worden afgehandeld met de voorgestelde WebCodecs API. | |
GetFormaat | | GAT | GAP - Zou worden afgehandeld met de voorgestelde WebCodecs API. | |
GetSize | | GAT | GAP - Zou worden afgehandeld met de voorgestelde WebCodecs API. | |
GetDataBuffer | | GAT | GAP - Zou worden afgehandeld met de voorgestelde WebCodecs API. | |
GetDataBufferSize | | GAT | GAP - Zou worden afgehandeld met de voorgestelde WebCodecs API. | |
PPB_Weergave
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
OntvangRect | | inbinden | Element.getBoundingClientRect | |
Is volledig scherm | | inbinden | Document.fullScreenEnabled | Heeft betrekking op document in plaats van slechts op één element. |
Is zichtbaar | | inbinden | Kruispuntwaarnemer | |
IsPaginaZichtbaar | | inbinden | document.visibilityState | |
GetClipRect | | inbinden | Kruispuntwaarnemer | |
Haal DeviceScale op | | inbinden | window.devicePixelRatio | |
GetCSSSale | | inbinden | <Element>.getBoundingClientRect().width / <Element>.offsetWidth | |
GetScrollOffset | | inbinden | <Element>.scrollTop / <Element>.scrollLeft | |
PPB_WebSocket
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
Creëren | | GAT | WebSocket.WebSocket | |
Verbinden | | GAT | WebSocket.WebSocket(url, ...) WebSocket 'open' gebeurtenis | |
Dichtbij | | GAT | WebSocket.sluiten | |
Ontvang bericht | | GAT | WebSocket 'message'-gebeurtenis WebSocket 'error'-gebeurtenis WebSocket 'close'-gebeurtenis | |
Bericht verzenden | | GAT | WebSocket.verzenden | |
GetBufferedAmount | | GAT | WebSocket.bufferedAmount | |
GetCloseCode | | GAT | CloseEvent.code | |
GetCloseReason | | GAT | CloseEvent.reden | |
GetCloseWasClean | | GAT | SluitEvent.wasClean | |
Extensies ophalen | | GAT | WebSocket.extensies | |
Protocol ophalen | | GAT | WebSocket.protocol | |
GetReadyState | | GAT | WebSocket.readyState | |
GetURL | | GAT | WebSocket.url | |
PPP_Graphics3D
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
Afbeeldingen3DContextVerloren | | SDL | Canvas 'webglcontextlost'-evenement | |
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
HandleInputEvent | | SDL | Element.addEventListener | |
PPP_instantie
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
DidCreëer | | N.v.t | <Element>[sleutel] | Met algemene DOM-toegang kunt u tagkenmerken uitvissen |
Heeft vernietigd | | N.v.t | N.v.t | Niet geactiveerd voor NaCl |
DidChangeView | | N.v.t | Element 'formaat wijzigen' Gebeurtenis | |
Heeft de focus gewijzigd | | N.v.t | Element 'focus', 'focusin', 'focusout' Gebeurtenissen | |
BehandelDocumentLoad | | N.v.t | GAP - Geen manier om te registreren als een mime-type handler | NaCl-modules via apps + een manifestinvoer kunnen worden ingesteld om bepaalde mime-typen te verwerken. |
PPP_MessageHandler
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
Behandel bericht | | inbinden | MessagePort 'bericht'-gebeurtenis Venster 'bericht'-gebeurtenis | |
Behandelblokkeringsbericht | | N.v.t | GAP - Geen direct equivalent | Soortgelijke synchronisatie kan buiten de hoofdthread worden uitgevoerd met Atomics.wait. Dit is toegevoegd om de emulatie van synchrone plug-in-API's te ondersteunen. |
PPP_Berichten
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
Behandel bericht | | inbinden | MessagePort 'bericht'-gebeurtenis Venster 'bericht'-gebeurtenis | |
PPP_MouseLock
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
MuisVergrendelenVerloren | | SDL | Element 'pointerlockchange', 'pointerlockerror'-gebeurtenissen | |
IRT
PPB_Audio
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
Creëren | X | SDL (gedeeltelijk) | GAP (gedeeltelijk) - AudioWorkletNode RUW gelijkwaardig | De AudioWorkletSpec is klaar, maar AudioDeviceClient past mogelijk beter bij deze API. De AudioDeviceClient wordt nog steeds gespecificeerd door de community. Het werklet is mogelijk niet het ruwe equivalent voor deze API. |
GetCurrentConfig | | SDL | AudioContext.* (haalt de doorgegeven instellingen terug) | |
Start afspelen | | SDL | AudioBufferSourceNode.start | |
Stop het afspelen | | SDL | AudioBufferSourceNode.stop | |
PPB_AudioBuffer
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
Tijdstempel ophalen | | SDL | AudioBufferSourceNode.start (parameter) | Elke keer doorgegeven in plaats van vastgemaakt aan de buffer. |
Tijdstempel instellen | | SDL | AudioBufferSourceNode.start (parameter) | |
GetSampleRate | | SDL | AudioBuffer.sampleRate | |
GetSampleSize | | GAT | GAP - WebAudio gebruikt alleen 32-bit float, PPAPI doet 16-bit int. | PPAPI ondersteunt theoretisch meerdere steekproefgroottes. In de praktijk ondersteunt het alleen 16-bits samples. Helaas hebben ontwikkelaars om 16-bits steekproefgroottes gevraagd om geheugengebruik te besparen. De volgende versie van de Web Audio-specificatie implementeert ondersteuning voor 16-bits samples. Een optimalisatie voor AudioBuffer zou vergelijkbaar met Firefox kunnen worden geïmplementeerd door een 16-bits buffer te gebruiken voor audio die afkomstig is van decodeAudioData |
GetNumberOfChannels | | SDL | AudioBuffer.numberOfChannels | |
GetDataBuffer | | SDL | AudioBuffer.getChannelData | |
GetBuffergrootte | | SDL | AudioBuffer.lengte | |
PPB_AudioConfig
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
CreëerStereo16Bit | | GAT | GAP - Alleen 32-bit float-samples ondersteund | De volgende versie van de Web Audio-specificatie implementeert ondersteuning voor 16-bits samples. |
GetSampleRate | | SDL | AudioContext.sampleRate | |
GetSampleFrameCount | | SDL | AudioBuffer.lengte | |
AanbevolenSampleRate | | SDL | AudioContext.sampleRate (van standaardconstructie) | Een AudioContext heeft standaard de voorkeursbemonsteringsfrequentie die overeenkomt met de werkelijke bemonsteringsfrequentie van het hardware-audioapparaat. |
AanbevolenSampleFrameCount | | GAT | GAP - Zou worden afgehandeld met de geplande AudioDeviceClient | Er is een openstaand probleem om een door de gebruiker opgegeven formaat toe te staan, maar dit wordt nog gedefinieerd. Dit kan waarschijnlijk het beste worden afgehandeld met AudioDeviceClient, die u kan vertellen wat de juiste maat zou zijn voor de gegeven hardware. |
PPB_Console
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
Logboek | | tijd | console.log/warn/error/... | |
LogMetSource | | GAT | GAT | De Console API wordt beschouwd als een voldoende volledige vervanging, tenzij er specifieke gebruiksscenario's zijn die door ontwikkelaars naar voren zijn gebracht voor de functionaliteit die door LogWithSource wordt geboden. DevTools Source Maps kunnen worden gebruikt om getranspileerde JavaScript-codes in hun oorspronkelijke brontaal te debuggen. |
PPB_Kern
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
haalTijd | | tijd | nieuwe Datum().getTime() | |
getTimeTicks | | tijd | nieuwe Datum().getTime() | |
IsMainThread | | GAT | venster.document !== ongedefinieerd | |
CallOnMainThread | | GAT | Worker.postMessage + Atomics.wait | Equivalente synchronisatie kan worden opgebouwd. |
PPB_FileIO
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
Creëren | | FS (gedeeltelijk) | window.chooseFileSystemEntries() | Creëer en open worden verschillend gebruikt, maar de stukken zijn even krachtig. |
Open | | FS (gedeeltelijk) | window.chooseFileSystemEntries() | |
Vraag | | FS (gedeeltelijk) | Blob.size, FileSystemHandle.getFile(), FileSystemHandle.getDirectory(), File.lastModified | GAP (gedeeltelijk) - Blob.type kan ook worden gebruikt om het MIME-type te controleren. Het bestandssysteemtype, de aanmaaktijd en de laatste toegangstijd kunnen niet worden bepaald met de Native File System API. |
Aanraken | | FS (gedeeltelijk) | FileSystemDirectoryHandle.getFile("naam", {create: true}) | |
Lezen | | FS (gedeeltelijk) | Blob.slice().arrayBuffer() | |
Schrijven | | FS (gedeeltelijk) | BestandSysteemWriter.write() | |
Lengte instellen | | FS (gedeeltelijk) | FileSystemWriter.truncate() | |
Spoelen | | GAP (gedeeltelijk) | GAP (gedeeltelijk) - Bestanden worden leeggemaakt wanneer FileSystemWrite.close() wordt aangeroepen | Dit is zo bedoeld omdat de Native File System API-bestanden worden blootgesteld aan het besturingssysteem. Daarom moet er een Safe Browsing-controle worden uitgevoerd voordat gegevens aan het besturingssysteem worden getoond. |
Dichtbij | | FS (gedeeltelijk) | FileSystemWriter.close() | Annuleert lopende bewerkingen niet, maar wist alle gegevens die tot nu toe naar de schijf zijn geschreven. |
LeesToArray | | GAT | Blob.slice().arrayBuffer() of Blob.arrayBuffer() | Maakt parallel lezen van meerdere subbereiken mogelijk. |
PPB_BestandRef
PPAPI-methode | Veronderstelt discussies | Emscripten | Web-API | Beperkingen |
Creëren | | FS (gedeeltelijk) | FileSystemDirectoryHandle.getFile("naam", {create: true}) | |
GetFileSystemType | | FS (gedeeltelijk) | Bestandssysteem.type | |
Naam ophalen | | FS (gedeeltelijk) | Bestandsnaam | |
GetPath | | FS (gedeeltelijk) | GAP (gedeeltelijk) - Met de Native File System API kan het relatieve pad van een bestand worden bepaald op basis van verwijzing naar een map die het bestand bevat met behulp van FileSystemHandle.resolve(FileSystemHandle) | Het absolute pad van een bestand kan niet worden bepaald en de gebruiker moet toestemming verlenen om toegang te krijgen tot de map die het bestand bevat. |
GetOuder | | FS (gedeeltelijk) | GAP (gedeeltelijk) - Met de Native File System API kan het relatieve pad van een bestand worden bepaald op basis van verwijzing naar een map die het bestand bevat met behulp van FileSystemHandle.resolve(FileSystemHandle) | De gebruiker moet toestemming verlenen om toegang te krijgen tot de map die het bestand bevat. |
MaakDirectory | | FS (gedeeltelijk) | FileSystemHandle.getDirectory(..., {createIfNotExists: true}) | |
Aanraken | | FS (gedeeltelijk) | FileSystemDirectoryHandle.getFile("naam", {create: true}) | De wijzigingstijd kan worden verkort door te schrijven. |
Verwijderen | | FS (gedeeltelijk) | FileSystemDirectoryHandle.removeEntry() | In tegenstelling tot de PPAPI hoeven mappen niet leeg te zijn. |
Hernoemen | | FS (gedeeltelijk) | GAP (gedeeltelijk) - Met de Native File System API kan het bestand worden geschreven met de nieuwe naam met behulp van een combinatie van FileSystemFileHandle.getFile() voor de nieuwe naam en FileSystemFileHandle.createWriter().write() met de inhoud van de oude bestand. Vervolgens FileSystemDirectoryHandle.removeEntry() om het oude bestand te verwijderen. | Er is geen directe API die dit in één stap doet in de Native File System API. |
Vraag | | GAP (gedeeltelijk) | Blob.size, FileSystemHandle.getFile(), FileSystemHandle.getDirectory(), File.lastModified | GAP (gedeeltelijk) - Blob.type kan ook worden gebruikt om het MIME-type te controleren. Het bestandssysteemtype, de aanmaaktijd en de laatste toegangstijd kunnen niet worden bepaald met de Native File System API. |
Lees DirectoryEntries | | FS (gedeeltelijk) | FileSystemDirectoryHandle.getEntries () | |
PPB_FILESYSTEM
PPAPI -methode | Neemt threads aan | Emscripten | Web API | Beperkingen |
Creëren | | FS (gedeeltelijk) | Window.RequestFilesystem | JS API doet beide in één stap |
Open | | GAT | Window.RequestFilesystem | JS API doet beide in één stap |
GetType | | GAT | Bestandssystem.type | |
Ppb_fullscreen
PPAPI -methode | Neemt threads aan | Emscripten | Web API | Beperkingen |
Isfullscreen | | html5.h | Document.fullscreenabled | |
Setfullscreen | | html5.h | Document.RequestfullScreen | |
Getcreensize | | html5.h | Document.exitfullscreen | |
PPB_GAMEPAD
PPAPI -methode | Neemt threads aan | Emscripten | Web API | Beperkingen |
Steekproef | | SDL | Gamepad.* | Het gamepad -object legt een tijdstempel bloot ten opzichte van navigatiestart. Het wordt bijgewerkt wanneer gegevens worden ontvangen van de hardware https://www.w3.org/tr/gamepad/#gamepad-interface |
PPB_Grafisch2D
PPAPI -methode | Neemt threads aan | Emscripten | Web API | Beperkingen |
Creëren | | SDL | Canvas.getContext ('2d') | |
Beschrijven | | SDL | Canvas.clientwidth + canvas.clientheight | |
Paintimagedata | | SDL | CanvasRendingContext2d.putimagedata | |
Rol | | GAT | CanvasRendringerContext2d.scrollintoview, canvasRendingContext2d.Drawimage | Gap (gedeeltelijk) - kan worden geïmplementeerd door het canvas op zichzelf te trekken, met een offset, met behulp van DrawImage en vervolgens de rest in te vullen. |
Vervangings- | | SDL | CanvasRenderingContext2d.Drawimage | |
Spoelen | | GAT | Geen direct equivalent | Gap (gedeeltelijk) - Er is altijd een impliciete spoeling aan het einde van de trekkeur; Dit zal waarschijnlijk niet veranderen. De combinatie van offscreencanvas en ImageBitMapRenderingContext biedt echter vergelijkbare functionaliteit. |
Sets | | SDL | CanvasRenderingContext2d.Scale | |
GetCale | | SDL | CanvasRendingContext2d.CurrentTransform | |
SetLayerTransform | | SDL | CanvasRendingContext2d.setTransform canvasRendringerContext2d.scale canvasRendringerContext2d.translate | |
PPB_Grafisch3D
PPAPI -methode | Neemt threads aan | Emscripten | Web API | Beperkingen |
GetattribmaxValue | | OpenGL ES 3.0 | WebGL 2.0 | GAP (gedeeltelijk) - WebGL 2.0 en Emscripten's belichting van OpenGL ES 3.0 Ondersteuning door de gebruiker gedefinieerde multisampled framebuffers, waarin alle parameters die via PPAPI worden geconfigureerd, kunnen worden ingesteld. |
Creëren | | SDL | Canvas.getcontext | |
GetaTtribs | | SDL | WebGlRendingContext.getContextAttributes | |
Setattribs | | SDL | Canvas.getContext (.., opties) | |
Geterror | | SDL | WebGlrendingContext.getError | |
ResizeBuffers | | SDL | Canvas.width = w; Canvas.Height = h; | |
Swapbuffers | | GAT | Geen direct equivalent | Gap (gedeeltelijk) - Er is altijd een impliciete spoeling aan het einde van de trekkeur; Dit zal waarschijnlijk niet veranderen. De combinatie van offscreencanvas en ImageBitMapRenderingContext biedt echter vergelijkbare functionaliteit. |
PPB_ImageData
PPAPI -methode | Neemt threads aan | Emscripten | Web API | Beperkingen |
GetNativeImagedatAformat | | SDL | IMagedata Mandates RGBA -bestelling | |
IsimagedatAformats ondersteund | | SDL | IMagedata Mandates RGBA -bestelling | |
Creëren | | SDL | CanvasRendingContext2d.CreateImagedata | |
Beschrijven | | SDL | IMagedata heeft nooit een stap | |
Kaart | | SDL | IMagedata.data | |
Onrust | | SDL | IMagedata.data | |
PPAPI -methode | Neemt threads aan | Emscripten | Web API | Beperkingen |
RequestInputevents | | SDL | Geen direct equivalent | Het ontbreken van deze functie is waarschijnlijk minder relevant, omdat JS / WASM-runs op de hoofdthread en meer goedkope filtergebeurtenissen kan filteren zonder een dwarsreis te maken. |
RequestFilteringInputevents | | SDL | muis* sleutel* wiel* touch* Compositie* gebeurtenissen | |
| | SDL | Element.addEventListener | |
ClearInputEventRequest | | SDL | Element.removeEventListener | |
GetType | | SDL | Evenementklasse afstammelingen | |
Getimestamp | | SDL | Evenement.timestamp | |
GetModifiers | | SDL | *Event.altkey/shiftKey/Metakey/ctrlkey | |
PPAPI -methode | Neemt threads aan | Emscripten | Web API | Beperkingen |
Creëren | | SDL | MouseEvent | |
GetButton | | SDL | MouseEvent.Button | |
Opzichten | | SDL | MouseEvent.client*/pagina*/offset* | |
GetClickCount | | SDL | dblClick 'vs' mousedown 'gebeurtenissen | |
Verkeersbeweging | | SDL | MouseEvent.Movement* | |
PPAPI -methode | Neemt threads aan | Emscripten | Web API | Beperkingen |
Creëren | | SDL | Wheelevent | |
Getdelta | | SDL | WheelEvent.Delta* | |
GetTicks | | GAT | Gap - Deltamode bevat deze info, maar onvolledig. | Er is een discussie over het implementeren van een wheelEvent.Deltamode API: https://github.com/w3c/uevents/issues/181#iscomment-537811017 |
Getcrollbypage | | GAT | Gap - Deltamode bevat deze info, maar onvolledig. | Er is een discussie over het implementeren van een wheelEvent.Deltamode API: https://github.com/w3c/uevents/issues/181#iscomment-537811017 |
PPAPI -methode | Neemt threads aan | Emscripten | Web API | Beperkingen |
Creëren | | SDL | Toetsenbord | |
GetKeycode | | SDL | Toetsenbordevent.keycode | |
Getaractertext | | SDL | Toetsenbordevent.key | |
GetCode | | SDL | Toetsenbordevent.code | |
PPAPI -methode | Neemt threads aan | Emscripten | Web API | Beperkingen |
Creëren | | SDL | Touchevent | |
AddTouchPoint | | SDL | TouchEvent.touches.push | |
GetTouchCount | | SDL | TouchEvent.touches.length | |
GetTouchByIndex | | SDL | TouchEvent.Touches [i] | |
GetTouchbyid | | SDL | Touch.Indentifer (om dit zelf uit te zoeken) | |
PPAPI -methode | Neemt threads aan | Emscripten | Web API | Beperkingen |
Creëren | | GAT | Composition Event | |
GetText | | GAT | CompositionEvent.Data | |
GetsegmentNumber | | GAT | Gap - geen direct equivalent | Deze gegevens kunnen mogelijk worden opgehaald uit compositionEvent.data. |
GetSegmentOffset | | GAT | Gap - geen direct equivalent | |
GetTargetSegment | | GAT | Gap - geen direct equivalent | |
Getselection | | GAT | Gap - geen direct equivalent | |
Ppb_instance
PPAPI -methode | Neemt threads aan | Emscripten | Web API | Beperkingen |
Bindgraphics | | SDL | Canvas.getContext (moot als binding is automatisch). | |
Isfullframe | | GAT | Gap - geen equivalent aan handlers van het mime -type. | NaCl -apps kunnen worden geregistreerd om een bepaald MIME -type te verwerken en het hele document te bezitten. |
Didcreëren | | N.v.t | <element> [Key] | Met algemene DOM -toegang kunt u tagattributen vissen |
Diddestroy | | N.v.t | N.v.t | Niet geactiveerd voor NaCl |
DidchangeView | | N.v.t | Element 'Resize' evenement | |
Didchangefocus | | N.v.t | Element 'focus', 'focusin', 'focusout' gebeurtenissen | |
Handlee lading | | N.v.t | Gap - geen manier om te registreren als handler van het mime -type | NaCl -modules via apps + een manifest -invoer kan worden ingesteld om bepaalde mime -typen te verwerken. |
PPAPI -methode | Neemt threads aan | Emscripten | Web API | Beperkingen |
Configureer | | GAT | GetUserMedia () | De beperkingen van getUserMedia () kunnen de configuratiewaarden bieden die u in MediaStreamTrack kunt gebruiken. |
Getattrib | | GAT | MediaStreamTrack.getSettings () | |
Getid | | GAT | MediaStreamTrack.id | |
Heuveld | | GAT | MediaStreamTrack. Readystate | |
GetBuffer | | GAT | Gap - geen equivalent | |
Recyclebuffer | | GAT | Gap - geen equivalent | |
Dichtbij | | GAT | MediaStreamTrack.stop () | |
PPAPI -methode | Neemt threads aan | Emscripten | Web API | Beperkingen |
Creëren | | GAT | Canvas vangen | Canvas Capture biedt de mogelijkheid om programmatisch videoframes te introduceren. |
Configureer | | GAT | ApplyConstraints (), GetUserMedia () | Gap (gedeeltelijk) - De omvang van de beschikbare configuraties in de web -API kan verschillen van de PPAPI. |
Getattrib | | GAT | MediaStreamsettings.width | |
| | GAT | MediaStreamsettings.Height | |
| | GAT | Gap - Geen equivalent aan pp_mediaStreamVideotrack_attrib_buffered_frames | MediaStream kan niet worden voorgeladen, dus het zal nooit bufferen: https://www.w3.org/tr/mediacapture-streams/#mediasstreams-in-media-elements |
| | GAT | Gap - geen equivalent aan pp_mediaStreamVideotrack_attrib_format | |
Getid | | GAT | MediaStreamTrack.id | |
Heuveld | | GAT | MediaStreamTrack. Readystate | |
GetFrame | | GAT | Gap - geen equivalent | |
Recyclrame | | GAT | Gap - geen equivalent | |
Dichtbij | | GAT | MediaStreamTrack.stop () | |
GetemptyFrame | | GAT | Gap - geen equivalent | |
Putframe | | GAT | Gap - geen equivalent | |
Ppb_messageloop
PPAPI -methode | Neemt threads aan | Emscripten | Web API | Beperkingen |
Creëren | | N.v.t | Meestal betwisten, krijgen werknemers een impliciete evenementenlus. | |
GetFormainThread | | N.v.t | Meestal betwisten, krijgen werknemers een impliciete evenementenlus. | |
GetCurrent | | N.v.t | Meestal betwisten, krijgen werknemers een impliciete evenementenlus. | |
Attachtocurrentthread | | N.v.t | Meestal betwisten, krijgen werknemers een impliciete evenementenlus. | |
Loop | | N.v.t | Meestal betwisten, krijgen werknemers een impliciete evenementenlus. | |
Postwerk | | N.v.t | Meestal betwisten, krijgen werknemers een impliciete evenementenlus. | |
Postquit | | N.v.t | Meestal betwisten, krijgen werknemers een impliciete evenementenlus. | |
Ppb_messaging
PPAPI -methode | Neemt threads aan | Emscripten | Web API | Beperkingen |
Na de message | | N.v.t | Window.PostMessage | |
RegisterMessageHandler | | N.v.t | Window.AddEventListener | |
Unregistermessagehandler | | N.v.t | Window.RemoveEventListener | |
PPB_MouseCursor
PPAPI -methode | Neemt threads aan | Emscripten | Web API | Beperkingen |
Setcursor | | SDL | Element.style.cursor | Dezelfde set voorraadcursors worden ondersteund. Aangepaste cursors kunnen worden gedaan met URL (..). Dynamische aangepaste cursors kunnen worden gedaan met data uris. CSS3 ondersteunt het specificeren van de hotspot. |
PPB_MuisVergrendeling
PPAPI -methode | Neemt threads aan | Emscripten | Web API | Beperkingen |
Lockmouse | | SDL | Element.RequestPointerlock | |
Ontgrendelen | | SDL | Element.exitpointerlock | |
Ppb_opengles2
PPAPI -methode | Neemt threads aan | Emscripten | Web API | Beperkingen |
Verschillende methoden | | OpenGles | Dicht bij WebGL 1.0 in functionaliteit. | |
| X | | Offscreencanvas | |
PPB_TextInputController
PPAPI -methode | Neemt threads aan | Emscripten | Web API | Beperkingen |
SetTextInputType | | GAT | Gap - mogelijk gevuld door Input Method Editor API | Sommige ontwikkelaars willen graag op deze manier kunnen hint, of bij voorkeur de mogelijkheid om IME -gebeurtenissen / uitvoerinline in een canvas te onderscheppen en weer te geven. |
Updatecaretpositie | | GAT | Gap - mogelijk gevuld door Input Method Editor API | https://www.w3.org/tr/ime-api/ |
AnnulerencompositionText | | GAT | Gap - mogelijk gevuld door Input Method Editor API | https://www.w3.org/tr/ime-api/ |
Updatesurroundtext | | GAT | Gap - mogelijk gevuld door Input Method Editor API | https://www.w3.org/tr/ime-api/ |
PPB_URLLader
PPAPI -methode | Neemt threads aan | Emscripten | Web API | Beperkingen |
Creëren | | insluiten | new xmlhttpRequest (); | |
Open | | insluiten | Xmlhttprequest.open | |
Followedirect | | insluiten | Request.Redirect | |
| | GAT | Gap - geen XMLHTTPRequest -equivalent | |
Getuploadprogress | | insluiten | XMLHTTPREQUEST 'voortgangsgebeurtenis | |
| | GAT | Fetchobserver | Nog niet gespecificeerd of geïmplementeerd; https://github.com/whatwg/fetch/issues/607 |
GetDownloadProgress | | insluiten | XMLHTTPREQUEST 'voortgangsgebeurtenis | |
| | GAT | Fetchobserver | Nog niet gespecificeerd of geïmplementeerd; https://github.com/whatwg/fetch/issues/607 |
GetResponseInfo | | insluiten | Xmlhttprequest.getallResponseHeaders | |
| | insluiten | Reactie ophalen.* | |
ReadResponse Body | | insluiten | Xmlhttprequest.response | |
| | insluiten | Lichaam.* (Reactie is een lichaam) | |
FinishStreamingTofile | | insluiten | Gap - geen direct equivalent | XMLHTTPREQUEST en ophalen, nemen beide streaming aan het geheugen aan, in plaats van rechtstreeks naar een opslag. |
Dichtbij | | insluiten | Xmlhttprequest.abort | |
| | GAT | Fetch API: abortsignal en abortcontroller | |
PPB_URLRequestInfo
PPAPI -methode | Neemt threads aan | Emscripten | Web API | Beperkingen |
Creëren | | insluiten | Xmlhttprequest | |
| | insluiten | Ophalen verzoek | |
Setproperty | | GAT | Gap - geen direct equivalent voor xmlhttprequest | XMLHTTPREQUEST biedt geen directe manieren om de limiet per vraag te stellen na omleidingen, stream naar een bestand, stel referentier- of referentiebeleid in. |
| | insluiten | Verzoek.* | |
AppendDatatobody | | insluiten | Xmlhttprequest.Send | Gap - Beide moeten het hele lichaam hebben, in plaats van een brok. |
| | insluiten | fetch (.., Opties: Body) | |
Appendfiletobody | | GAT | fetch () Upload streaming | https://www.chromestatus.com/features/5274139738767360 |
| | N.v.t | <vorm> | U kunt ook lezen met FileReader en Upload, maar dat lijkt meer op ApendDatatobody |
PPB_URLResponsInfo
PPAPI -methode | Neemt threads aan | Emscripten | Web API | Beperkingen |
GetProperty | | insluiten | Xmlhttprequest.getallResponseHeaders + Anderen | |
| | insluiten | Reactie ophalen.* | |
GetBodyasfileref | | insluiten | Ophalen respons (lichaam) .Blob () | Aangenomen dat de opslaglaag de overdracht optimaliseert. |
PPB_Var
PPAPI -methode | Neemt threads aan | Emscripten | Web API | Beperkingen |
Varfromutf8 | | insluiten | Textdecoder.decode | |
Vartoutf8 | | insluiten | Textencoder.encode | |
VarfromResource | | N.v.t | N.v.t | |
Vartoresource | | N.v.t | N.v.t | |
PPB_VarArray
PPAPI -methode | Neemt threads aan | Emscripten | Web API | Beperkingen |
Krijgen | | insluiten | Array [i] | |
Set | | insluiten | Array [i] = x | |
Getsgte | | insluiten | Array.lengte | |
Setlengte | | insluiten | Array.length = n | |
PPB_VarArrayBuffer
PPAPI -methode | Neemt threads aan | Emscripten | Web API | Beperkingen |
Creëren | | insluiten | nieuwe arraybuffer (n) | |
Byteleengt | | insluiten | Arraybuffer.byteleength | |
Kaart | | GAT | Gap - geen direct equivalent | ASM.JS / WADM -modules kunnen geen regio's van een arraybuffer in kaart brengen, behalve hun enkele lineaire geheugenhoop. Toekomstige meerdere herinneringen of geheugenmapping kunnen dit verbeteren. |
Onrust | | GAT | Gap - geen direct equivalent | |
PPB_VarDictionary
PPAPI -methode | Neemt threads aan | Emscripten | Web API | Beperkingen |
Creëren | | insluiten | {} | |
Krijgen | | insluiten | <object> [i] | |
Set | | insluiten | <object> [i] = x | |
Verwijderen | | insluiten | verwijder <object> [i] | |
Haskey | | insluiten | x in <object> | |
Getkeys | | insluiten | voor (k in <object>) {} | Geen letterlijk equivalent, maar het kan worden gebouwd. |
PPB_VideoDecoder
PPAPI -methode | Neemt threads aan | Emscripten | Web API | Beperkingen |
Creëren | | GAT | Gap - zou worden behandeld met de voorgestelde WebCodecs API met behulp van VideodeCoder () | https://github.com/wicg/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latentie-streaming-or-cloud-gaming |
Initialiseren | | GAT | Gap - zou worden afgehandeld met de voorgestelde WebCodecs API met behulp van VideodeCoder () initialisatieparameters (VideodeCoderInitParameters) | https://github.com/wicg/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latentie-streaming-or-cloud-gaming |
Decoderen | | GAT | Gap - zou worden afgehandeld met de voorgestelde WebCodecs API met behulp van ReadableTream.Pipethrough (VideodeCoder) | https://github.com/wicg/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latentie-streaming-or-cloud-gaming |
GetPicture | | GAT | Gap - zou worden afgehandeld met de voorgestelde WebCodecs API met behulp van ReadableStream.Pipethrough (VideodeCoder) .Pipeto (VideotrackWriter (). Writable) | https://github.com/wicg/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latentie-streaming-or-cloud-gaming |
Recyclepicte | | GAT | Gap - zou worden afgehandeld met de voorgestelde WebCodecs API. Het huidige ontwerp zal de foto's automatisch recyclen en het decoderingsproces op gang houden. | https://github.com/wicg/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latentie-streaming-or-cloud-gaming |
Spoelen | | GAT | Gap - zou worden afgehandeld met de voorgestelde WebCodecs API. De API wordt Flush () genoemd, maar er is nog steeds discussie over hoe deze zal worden gesequenced met betrekking tot decodeeroproepen. | https://github.com/wicg/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latentie-streaming-or-cloud-gaming |
Opnieuw instellen | | GAT | Gap - zou worden afgehandeld met de voorgestelde WebCodecs API door de videoodecoderinstantie te vernietigen en een nieuwe te maken. Dit zal niet zo efficiënt zijn als een speciale resetmethode, maar de semantiek voor een reset () API wordt nog steeds besproken. | https://github.com/wicg/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latentie-streaming-or-cloud-gaming |
Ppb_videoencoder
PPAPI -methode | Neemt threads aan | Emscripten | Web API | Beperkingen |
Creëren | | GAT | Gap - zou worden afgehandeld met de voorgestelde WebCodecs API met behulp van VideoEncoder () | |
GetPortedProfiles | | GAT | Gap (gedeeltelijk) - navigator.mediacapabilities.encodingInfo () | De ondersteunde profielen moeten één voor één worden gecontroleerd. |
Initialiseren | | GAT | Gap - zou worden afgehandeld met de voorgestelde WebCodecs API met behulp van Initialisatieparameters van VideoEncoder () | |
GetFrames -equired | | GAT | Gap - geen equivalent | Het is onwaarschijnlijk dat de framepool die intern wordt gebruikt door de Web Codecs API wordt blootgesteld. |
GetframecodeSize | | GAT | Gap - geen equivalent | Het is onwaarschijnlijk dat de framepool die intern wordt gebruikt door de Web Codecs API wordt blootgesteld. |
GetVideoframe | | GAT | Gap - zou worden afgehandeld met de voorgestelde WebCodecs API met behulp van ReadableTream.Pipethrough (VideoEncoder). Dit zou de gegevens rechtstreeks in de leesbare stream coderen in plaats van een enkel frame te pakken om te vullen met gegevens vóór het coderen. | |
Coderen | | GAT | Gap - zou worden afgehandeld met de voorgestelde WebCodecs API met behulp van ReadableTream.Pipethrough (VideoEncoder) | |
GetBitStreambuffer | | GAT | Gap - zou worden afgehandeld met de voorgestelde WebCodecs API. Het huidige ontwerp gaat automatisch door de gecodeerde bitstream -buffer die doorgaat. | De WebCodecs API gaat momenteel ervan uit dat Bitstream Buffer kan worden gekopieerd in plaats van samengevoegd, dus het hoeft niet te worden gerecycled. |
RecyclebitstreamBuffer | | GAT | Gap - zou worden afgehandeld met de voorgestelde WebCodecs API. Het huidige ontwerp zal de buffer automatisch recyclen om het coderingsproces op gang te houden. | Dit zal in de toekomst waarschijnlijk niet veranderen, omdat de implicaties van de prestaties kleiner zijn. |
RequestEncoDingParametersChange | | GAT | Gap - zou worden afgehandeld door de voorgestelde Web Codecs API. Bepaalde parameters zullen de mogelijkheid hebben om meteen te worden gewijzigd, terwijl anderen vereisen dat de encoder wordt afgebroken. | |
Dichtbij | | GAT | Gap - zou worden afgehandeld met de voorgestelde WebCodecs API met behulp van VideoEncoder.close () | |
Ppb_videoframe
PPAPI -methode | Neemt threads aan | Emscripten | Web API | Beperkingen |
Getimestamp | | GAT | Gap - zou worden afgehandeld met de voorgestelde WebCodecs API. | |
Settimestamp | | GAT | Gap - zou worden afgehandeld met de voorgestelde WebCodecs API. | |
GetFormat | | GAT | Gap - zou worden afgehandeld met de voorgestelde WebCodecs API. | |
Getsize | | GAT | Gap - zou worden afgehandeld met de voorgestelde WebCodecs API. | |
GetDatabuffer | | GAT | Gap - zou worden afgehandeld met de voorgestelde WebCodecs API. | |
GetDatabufferize | | GAT | Gap - zou worden afgehandeld met de voorgestelde WebCodecs API. | |
PPB_VIEW
PPAPI -methode | Neemt threads aan | Emscripten | Web API | Beperkingen |
Getrect | | insluiten | Element.GetBoundingClientRect | |
Isfullscreen | | insluiten | Document.fullscreenabled | Heeft betrekking op documenteren in plaats van slechts één element. |
Is van het visbaar | | insluiten | Kruispunt | |
ISPAGEVISIBLE | | insluiten | Document.VisibilityState | |
GetCliprect | | insluiten | Kruispunt | |
GetDevicesCale | | insluiten | Window.DevicePixelRatio | |
GetcssScale | | insluiten | <element> .GetBoundingClientRect (). Breedte / <Element> .offsetWidth | |
GetScrolloffset | | insluiten | <element> .scrolltop / <element> .scrolllleft | |
Ppb_websocket
PPAPI -methode | Neemt threads aan | Emscripten | Web API | Beperkingen |
Creëren | | GAT | Websocket.websocket | |
Verbinden | | GAT | WebSocket.Websocket (URL, ...) Websocket 'Open' -evenement | |
Dichtbij | | GAT | Websocket.close | |
Ontvangstmessage | | GAT | Websocket 'Message' Event Websocket 'Fout' Evenement Websocket 'Sluiten' Evenement | |
Sendmessage | | GAT | Websocket.Send | |
GetBufferedamount | | GAT | Websocket.BufferedAmount | |
GetClosecode | | GAT | Closeevent.Code | |
GetCloserseason | | GAT | Closeevent.Reason | |
GetClosewasClean | | GAT | Closeevent.waSclean | |
Getextensions | | GAT | Websocket.extensions | |
GetProtocol | | GAT | Websocket.protocol | |
Getreadystate | | GAT | Websocket.readystate | |
GetUrl | | GAT | Websocket.url | |
Ppp_graphics3d
PPAPI -methode | Neemt threads aan | Emscripten | Web API | Beperkingen |
Graphics3dContextLost | | SDL | CANVAS 'WebGlContextLost' -gebeurtenis | |
PPAPI -methode | Neemt threads aan | Emscripten | Web API | Beperkingen |
HandleinputEvent | | SDL | Element.addEventListener | |
PPP_Instance
PPAPI -methode | Neemt threads aan | Emscripten | Web API | Beperkingen |
Didcreëren | | N.v.t | <element> [Key] | Met algemene DOM -toegang kunt u tagattributen vissen |
Diddestroy | | N.v.t | N.v.t | Niet geactiveerd voor NaCl |
DidchangeView | | N.v.t | Element 'Resize' evenement | |
Didchangefocus | | N.v.t | Element 'focus', 'focusin', 'focusout' gebeurtenissen | |
Handlee lading | | N.v.t | Gap - geen manier om te registreren als handler van het mime -type | NaCl -modules via apps + een manifest -invoer kan worden ingesteld om bepaalde mime -typen te verwerken. |
PPP_MessageHandler
PPAPI -methode | Neemt threads aan | Emscripten | Web API | Beperkingen |
Handlemering | | insluiten | Bericht 'bericht' bericht 'bericht' bericht 'Bericht' | |
Handgreepblockingmessage | | N.v.t | Gap - geen direct equivalent | Soortgelijke synchronisatie kan worden uitgevoerd met de hoofddraad met atomics. WAIT. Dit werd toegevoegd ter ondersteuning van emulatie van synchrone plug -in API's. |
PPP_Berichten
PPAPI -methode | Neemt threads aan | Emscripten | Web API | Beperkingen |
Handlemering | | insluiten | Bericht 'bericht' bericht 'bericht' bericht 'Bericht' | |
PPP_MouseLock
PPAPI -methode | Neemt threads aan | Emscripten | Web API | Beperkingen |
Mouslocklost | | SDL | Element 'PointerLockchange', 'PointerLockerror' gebeurtenissen | |
PPAPI (apps)
Ppb_hostresolver
PPAPI -methode | Neemt threads aan | Emscripten | Web API | Beperkingen |
Creëren | X | GAT | Gap (gedeeltelijk) - Geen direct equivalent | |
Oplossen | X | GAT | Gap (gedeeltelijk) - Geen direct equivalent | |
GetCanonicalName | X | GAT | Gap (gedeeltelijk) - Geen direct equivalent | |
GetNetAddressCount | X | GAT | Gap (gedeeltelijk) - Geen direct equivalent | |
GetNetAddress | X | GAT | Gap (gedeeltelijk) - Geen direct equivalent | |
Ppb_netaddress
PPAPI -methode | Neemt threads aan | Emscripten | Web API | Beperkingen |
CreateFromipv4Address | X | GAT | Gap (gedeeltelijk) - Geen direct equivalent | |
CreateFromipv6Address | X | GAT | Gap (gedeeltelijk) - Geen direct equivalent | |
Getfamily | X | GAT | Gap (gedeeltelijk) - Geen direct equivalent | |
Beschrijfasstring | X | GAT | Gap (gedeeltelijk) - Geen direct equivalent | |
BeschrijfeAsipv4Address | X | GAT | Gap (gedeeltelijk) - Geen direct equivalent | |
Beschrijfeasipv6adress | X | GAT | Gap (gedeeltelijk) - Geen direct equivalent | |
Ppb_networkList
PPAPI -methode | Neemt threads aan | Emscripten | Web API | Beperkingen |
GetCount | X | GAT | Gap - geen direct equivalent | |
GetName | X | GAT | Gap - geen direct equivalent | |
GetType | X | GAT | Gap - geen direct equivalent | |
GetState | X | GAT | Gap - geen direct equivalent | |
Getipaddress | X | GAT | Gap - geen direct equivalent | |
GetDisplayName | X | GAT | Gap - geen direct equivalent | |
Getmtu | X | GAT | Gap - geen direct equivalent | |
PPB_NetwerkMonitor
PPAPI -methode | Neemt threads aan | Emscripten | Web API | Beperkingen |
Creëren | X | GAT | Gap - geen direct equivalent | |
UpdateNetWorkList | X | GAT | Gap - geen direct equivalent | |
PPB_NetwerkProxy
PPAPI -methode | Neemt threads aan | Emscripten | Web API | Beperkingen |
GetProxyForurl | X | GAT | Gap - geen direct equivalent | |
Ppb_tcpsocket en ppb_udpsocket
Er is geen directe 1: 1 mapping voor migratie. In plaats daarvan hebben we hieronder enkele gebruikersscenario's geschetst en wat het aanbevolen migratiepad is.
Use case | Aanbevelingen |
Scherm delen | getDisplayMedia en WebRTC ( demo ) |
Laden van een lokale server om het bandbreedtegebruik te minimaliseren | XHR, Fetch, Streams, Service Worker, Cache API's |
Laden vanuit een lokaal exemplaar van een web -app / verbinding maken met een lokale exemplaar van een web -app | WeBrtc |
Chatten | Websocket * |
Realtime audio/videocommunicatie | WeBrtc |
Samenwerking | Websocket * |
Realtime multiplayer -games | WebTransport ** tenzij p2p in welk geval weBrtc (of WebTransport via RTCICEransport) |
Realtime interactieve streaming | WebTransport ** |
Communiceren met Legacy Server | Proxyserver of middleware om protocolconversie uit te voeren. Feedback to bit.ly/network-api-gaps |
*: Of WebTransport in de toekomst
**: zie Chromestatus voor beschikbaarheid