ประกาศการเลิกใช้งาน (P)NaCl
เนื่องด้วยแรงขับเคลื่อนของการรองรับ WebAssembly ในเบราว์เซอร์ต่างๆ เราจึงวางแผนที่จะมุ่งเน้นไปที่โค้ดเนทีฟสำหรับ WebAssembly ในอนาคต และวางแผนที่จะยกเลิกการรองรับ PNaCl ในไตรมาสที่ 4 ของปี 2019 (ยกเว้นแอป Chrome) เราเชื่อว่าระบบนิเวศที่มีชีวิตชีวาของ WebAssembly เหมาะสําหรับเว็บแอปประสิทธิภาพสูงทั้งใหม่และที่มีอยู่มากกว่า และการใช้งาน PNaCl มีจำนวนต่ำมากจนสมควรเลิกใช้งาน
ตั้งแต่ Chrome 76 เป็นต้นไป PNaCl ในเว็บแบบเปิดได้ย้ายไปอยู่หลังการทดลองใช้แหล่งที่มา ซึ่งเป็นกลไกสำหรับนักพัฒนาเว็บในการลงทะเบียนและรับสิทธิ์เข้าถึงฟีเจอร์ที่ไม่ได้เปิดไว้โดยค่าเริ่มต้น
โดยปกติแล้วสถานะนี้จะแสดงฟีเจอร์ใหม่ที่เสนอ แต่ในกรณีนี้แสดงฟีเจอร์ที่กำลังจะเลิกใช้งาน
นักพัฒนาแอปสามารถลงทะเบียนในคอนโซลช่วงทดลองใช้จากต้นทาง
แล้วรับโทเค็นซึ่งนำไปฝังในหน้าและเปิดใช้ฟีเจอร์ดังกล่าวได้โดยที่ผู้ใช้ไม่จำเป็นต้องใช้ Flag
(ดูรายละเอียดเพิ่มเติมได้ที่คู่มือที่ลิงก์) ช่วงทดลองใช้มีกำหนดเวลาสิ้นสุดไปจนถึง Chrome 78 โดยประมาณจนถึงเดือนธันวาคม 2019
การเปลี่ยนแปลงนี้ไม่ได้มีจุดประสงค์ให้ส่งผลต่อ NaCl หรือ PNaCl ในแอปหรือส่วนขยายของ Chrome และขั้นตอน "enable-nacl"
Flag ใน chrome://flags ยังใช้เพื่อเปิดใช้ PNaCl ในเครื่องสำหรับการทดสอบได้
(แฟล็กนี้ยังคงมีฟังก์ชันปัจจุบันสำหรับการเปิดใช้ NaCl ที่ไม่ใช่ PNaCl ในแบบ "เนทีฟ" ในหน้าใดก็ได้)
นอกจากนี้เรายังได้ประกาศการเลิกใช้งานไตรมาสที่ 1 ปี 2018 ของ
แอป Chrome
นอก ChromeOS
สำหรับ Use Case ส่วนใหญ่ของ (P)NaCl เราขอแนะนำให้เปลี่ยนไปใช้ Emscripten จาก NaCl SDK
การย้ายข้อมูลมีแนวโน้มที่จะดำเนินการได้ค่อนข้างง่ายหากแอปพลิเคชันของคุณย้ายข้อมูลไปยัง Linux ได้ ใช้ SDL หรือ POSIX API
แม้ว่าเราจะไม่รองรับ NaCl / Pepper API โดยตรง แต่เราได้พยายามแสดงรายการ Web API ที่เทียบเท่า
สำหรับกรณีที่ย้ายข้อมูลยากขึ้น โปรดติดต่อมาที่ native-client-discuss@googlegroups.com
การย้ายข้อมูล API
เราได้ระบุสถานะของการใช้แทนแพลตฟอร์มเว็บสำหรับแต่ละแพลตฟอร์มไว้ที่นี่
ของ API ที่เปิดเผยต่อ (P)NaCl
นอกจากนี้ ตารางจะแสดงรายการไลบรารีหรือตัวเลือกใน Emscripten
ที่มีการแทนที่ใกล้เคียงที่สุด
เราคาดว่าจะเพิ่มการรองรับชุดข้อความหน่วยความจำที่ใช้ร่วมกันใน WebAssembly ในปี 2017 เนื่องจากชุดข้อความมีความสําคัญต่อการจับคู่กรณีการใช้งานที่น่าสนใจที่สุดของ (P)NaCl รายการการย้ายข้อมูลที่ถือว่าเป็นการรองรับชุดข้อความที่กำลังจะเข้ามา
จะทำเครื่องหมายไว้ด้านล่าง หากการควบคุมการไหลของข้อมูลของแอปพลิเคชันอาศัย API แบบบล็อกเป็นหลัก คุณอาจพบว่าจำเป็นต้องมีการรองรับเธรดเพื่อให้พอร์ตได้อย่างสะดวก
แม้ว่าเราจะพยายามทำให้ถูกต้องในตารางนี้
ก็ไม่มีข้อผิดพลาดหรือการละเว้นใดๆ ต้องสงสัย
หากพบปัญหา โปรดติดต่อเราที่ native-client-discuss@googlegroups.com
PPAPI
PPB_Audio
วิธีการ PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
สร้าง |
x |
SDL (บางส่วน) |
GAP (บางส่วน) - AudioWorkletNode เทียบเท่า ROUGHLY |
AudioWorkletSpec พร้อมแล้ว แต่ AudioDeviceClient อาจเหมาะกับ API นี้มากกว่า ชุมชนยังคงระบุ AudioDeviceClient อยู่ Worklet อาจไม่เทียบเท่าคร่าวๆ สำหรับ API นี้ |
GetCurrentConfig |
|
SDL |
AudioContext* (รับการตั้งค่าที่ส่งผ่าน) |
|
StartPlayback |
|
SDL |
AudioBufferSourceNode.start |
|
StopPlayback |
|
SDL |
AudioBufferSourceNode.stop |
|
PPB_AudioBuffer
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
GetTimestamp |
|
SDL |
AudioBufferSourceNode.start (พารามิเตอร์) |
ส่งทุกครั้งแทนที่จะติดอยู่กับบัฟเฟอร์ |
SetTimestamp |
|
SDL |
AudioBufferSourceNode.start (พารามิเตอร์) |
|
GetSampleRate |
|
SDL |
AudioBuffer.sampleRate |
|
GetSampleSize |
|
GAP |
GAP - WebAudio ใช้เฉพาะจำนวนลอยตัว 32 บิต ส่วน PPAPI ใช้จำนวนเต็ม 16 บิต |
ในทางทฤษฎี PPAPI รองรับการสุ่มตัวอย่างหลายขนาด ในทางปฏิบัติ ระบบรองรับเฉพาะตัวอย่างแบบ 16 บิตเท่านั้น ขออภัย นักพัฒนาแอปได้ขอขนาดตัวอย่าง 16 บิตเพื่อประหยัดการใช้หน่วยความจำ ข้อมูลจำเพาะของ Web Audio เวอร์ชันถัดไปจะใช้การรองรับตัวอย่าง 16 บิต คุณสามารถใช้การเพิ่มประสิทธิภาพสำหรับ AudioBuffer คล้ายกับของ Firefox โดยใช้บัฟเฟอร์ 16 บิตสำหรับเสียงที่มาจาก decodeAudioData |
GetNumberOfChannels |
|
SDL |
AudioBuffer.numberOfChannels |
|
GetDataBuffer |
|
SDL |
AudioBuffer.getChannelData |
|
GetBufferSize |
|
SDL |
AudioBuffer.length |
|
PPB_AudioConfig
วิธีการ PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
CreateStereo16Bit |
|
GAP |
GAP - รองรับเฉพาะตัวอย่างจำนวนลอยตัว 32 บิต |
ข้อมูลจำเพาะของ Web Audio เวอร์ชันถัดไปจะใช้การรองรับตัวอย่าง 16 บิต |
GetSampleRate |
|
SDL |
AudioContext.sampleRate |
|
GetSampleFrameCount |
|
SDL |
AudioBuffer.length |
|
RecommendSampleRate |
|
SDL |
AudioContext.sampleRate (จากคอนสตรัคต์เริ่มต้น) |
โดย AudioContext จะมีอัตราการสุ่มตัวอย่างที่ต้องการซึ่งตรงกับอัตราตัวอย่างจริงของอุปกรณ์เสียงฮาร์ดแวร์โดยค่าเริ่มต้น |
RecommendSampleFrameCount |
|
GAP |
GAP - จะจัดการด้วย AudioDeviceClient ที่วางแผนไว้ |
มีปัญหาที่ยังไม่ได้รับการแก้ไขเพื่ออนุญาตขนาดที่ผู้ใช้ระบุ แต่ยังคงอยู่ในระหว่างการกำหนด วิธีจัดการที่ดีที่สุดน่าจะเป็นการใช้ AudioDeviceClient ซึ่งบอกได้ขนาดที่เหมาะสมสำหรับฮาร์ดแวร์หนึ่งๆ |
PPB_Console
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
บันทึก |
|
Utime |
console.log/warn/error/... |
|
LogWithSource |
|
GAP |
GAP |
Console API ถือว่าเป็น API ที่ทดแทนได้อย่างสมบูรณ์เพียงพอ เว้นแต่นักพัฒนาซอฟต์แวร์จะระบุ Use Case ที่เฉพาะเจาะจงสำหรับฟังก์ชันการทำงานที่ LogWithSource มีให้ คุณสามารถใช้แผนที่แหล่งที่มาของเครื่องมือสำหรับนักพัฒนาเว็บเพื่อแก้ไขข้อบกพร่อง JavaScript ที่เปลี่ยนรูปแบบแล้วในภาษาต้นฉบับ |
PPB_Core
วิธีการ PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
getTime |
|
utime |
Date().getTime() ใหม่ |
|
getTimeTicks |
|
utime |
Date().getTime() ใหม่ |
|
IsMainThread |
|
GAP |
window.document !== ไม่ระบุ |
|
CallOnMainThread |
|
GAP |
Worker.postMessage + Atomics.wait |
สร้างการซิงค์ข้อมูลที่เทียบเท่ากันได้ |
PPB_FileIO
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
สร้าง |
|
FS (บางส่วน) |
window.chooseFileSystemEntries() |
การสร้างและการเปิดจะใช้ต่างกัน แต่ส่วนต่างๆ มีประสิทธิภาพเท่ากัน |
เปิด |
|
FS (บางส่วน) |
window.chooseFileSystemEntries() |
|
การค้นหา |
|
FS (บางส่วน) |
Blob.size, FileSystemHandle.getFile(), FileSystemHandle.getDirectory(), File.lastModified |
GAP (บางส่วน) - คุณใช้ Blob.type เพื่อตรวจสอบประเภท MIME ได้ด้วย ไม่สามารถระบุประเภทระบบไฟล์ เวลาสร้าง และเวลาเข้าถึงล่าสุดด้วย Native File System API |
แตะ |
|
FS (บางส่วน) |
FileSystemDirectoryHandle.getFile("name", {create: true}) |
|
อ่าน |
|
FS (บางส่วน) |
Blob.slice().arrayBuffer() |
|
เขียน |
|
FS (บางส่วน) |
FileSystemWriter.write() |
|
SetLength |
|
FS (บางส่วน) |
FileSystemWriter.truncate() |
|
แบบยึดเพดานด้วยฐาน |
|
GAP (บางส่วน) |
GAP (บางส่วน) - ระบบจะล้างไฟล์เมื่อมีการเรียกใช้ FileSystemWrite.close() |
ทั้งนี้ เราออกแบบให้เพราะไฟล์ Native File System API ปรากฏอยู่ในระบบปฏิบัติการ ดังนั้นจึงต้องมีการตรวจสอบ Google Safe Browsing ก่อนที่ข้อมูลจะแสดงในระบบปฏิบัติการ |
ปิด |
|
FS (บางส่วน) |
FileSystemWriter.close() |
ไม่ยกเลิกการดำเนินการที่รอดำเนินการ แต่จะล้างข้อมูลที่เขียนไว้จนถึงดิสก์ |
ReadToArray |
|
GAP |
Blob.slice().arrayBuffer() หรือ Blob.arrayBuffer() |
อนุญาตการอ่านช่วงย่อยหลายช่วงพร้อมกัน |
PPB_FileRef
วิธีการ PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
สร้าง |
|
FS (บางส่วน) |
FileSystemDirectoryHandle.getFile("name", {create: true}) |
|
GetFileSystemType |
|
FS (บางส่วน) |
FileSystem.type |
|
GetName |
|
FS (บางส่วน) |
File.name |
|
GetPath |
|
FS (บางส่วน) |
GAP (บางส่วน) - เมื่อใช้ Native File System API คุณจะระบุเส้นทางแบบสัมพัทธ์ของไฟล์จากการอ้างอิงไปยังไดเรกทอรีที่มีไฟล์ได้โดยใช้ FileSystemHandle.resolve(FileSystemHandle) |
ระบุเส้นทางสัมบูรณ์ของไฟล์ไม่ได้ และผู้ใช้ต้องให้สิทธิ์เข้าถึงไดเรกทอรีที่มีไฟล์ |
GetParent |
|
FS (บางส่วน) |
GAP (บางส่วน) - เมื่อใช้ File System API เดิม คุณจะกำหนดเส้นทางแบบสัมพัทธ์ของไฟล์ได้จากการอ้างอิงไปยังไดเรกทอรีที่มีไฟล์โดยใช้ FileSystemHandle.resolve(FileSystemHandle) |
ผู้ใช้ต้องให้สิทธิ์เข้าถึงไดเรกทอรีที่มีไฟล์ |
MakeDirectory |
|
FS (บางส่วน) |
FileSystemHandle.getDirectory(..., {createIfNotExists: true}) |
|
แตะ |
|
FS (บางส่วน) |
FileSystemDirectoryHandle.getFile("name", {create: true}) |
แก้ไขเวลาได้ด้วยการเขียน |
ลบ |
|
FS (บางส่วน) |
FileSystemDirectoryHandle.removeEntry() |
ไดเรกทอรีไม่จำเป็นต้องว่างเปล่า ซึ่งต่างจาก PPAPI |
เปลี่ยนชื่อ |
|
FS (บางส่วน) |
GAP (บางส่วน) - เมื่อใช้ Native File System API ระบบสามารถเขียนไฟล์โดยใช้ชื่อใหม่โดยใช้ FileSystemFileHandle.getFile() สำหรับชื่อใหม่และ FileSystemFileHandle.createWriter().write() ที่มีเนื้อหาของไฟล์เก่า จากนั้น FileSystemDirectoryHandle.removeEntry() เพื่อลบไฟล์เก่า |
ไม่มี API โดยตรงที่จะดำเนินการนี้ในขั้นตอนเดียวใน Native File System API |
การค้นหา |
|
GAP (บางส่วน) |
Blob.size, FileSystemHandle.getFile(), FileSystemHandle.getDirectory(), File.lastModified |
GAP (บางส่วน) - Blob.type สามารถใช้ในการตรวจสอบประเภท MIME ได้เช่นกัน ไม่สามารถระบุประเภทระบบไฟล์ เวลาที่สร้าง และเวลาเข้าถึงล่าสุดได้ด้วย Native File System API |
ReadDirectoryEntries |
|
FS (บางส่วน) |
FileSystemDirectoryHandle.getEntries() |
|
PPB_FileSystem
วิธีการ PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
สร้าง |
|
FS (บางส่วน) |
window.requestFileSystem |
JS API ทําทั้ง 2 อย่างในขั้นตอนเดียว |
เปิด |
|
GAP |
window.requestFileSystem |
JS API ทําทั้ง 2 อย่างในขั้นตอนเดียว |
GetType |
|
GAP |
FileSystem.type |
|
PPB_Fullscreen
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
IsFullScreen |
|
html5.h |
Document.fullscreenEnabled |
|
SetFullscreen |
|
html5.h |
Document.requestFullscreen |
|
GetScreenSize |
|
html5.h |
Document.exitFullscreen |
|
PPB_Gamepad
วิธีการ PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
ตัวอย่าง |
|
SDL |
เกมแพด* |
ออบเจ็กต์ Gamepad จะแสดงการประทับเวลาซึ่งสัมพันธ์กับ navigationStart จะได้รับการอัปเดตเมื่อได้รับข้อมูลจากฮาร์ดแวร์ https://www.w3.org/TR/gamepad/#gamepad-interface |
PPB_Graphics2D
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
สร้าง |
|
SDL |
Canvas.getContext('2d') |
|
อธิบาย |
|
SDL |
Canvas.clientWidth + Canvas.clientHeight |
|
PaintImageData |
|
SDL |
CanvasRenderingContext2D.putImageData |
|
เลื่อน |
|
GAP |
CanvasRenderingContext2D.scrollIntoView, CanvasRenderingContext2D.drawImage |
GAP (บางส่วน) - สามารถใช้ได้โดยวาดภาพพิมพ์แคนวาสลงบนภาพพิมพ์แคนวาสนั้นเอง โดยมีการเลื่อนตำแหน่งโดยใช้ drawImage แล้วเติมส่วนที่เหลือ |
ReplaceContents |
|
SDL |
CanvasRenderingContext2D.drawImage |
|
แบบยึดเพดานด้วยฐาน |
|
GAP |
ไม่มีค่าเทียบเท่าโดยตรง |
GAP (บางส่วน) -
จะมีการล้างแบบโดยนัยที่ส่วนท้ายของโค้ดการวาดเสมอ ไม่น่าเป็นไปได้
เพื่อเปลี่ยนแปลง อย่างไรก็ตาม การใช้
OffscreenCanvas
และ
ImageBitmapRenderingContext
มีฟังก์ชันการทำงานที่คล้ายกัน |
SetScale |
|
SDL |
CanvasRenderingContext2D.scale |
|
GetScale |
|
SDL |
CanvasRenderingContext2D.currentTransform |
|
SetLayerTransform |
|
SDL |
CanvasRenderingContext2D.setTransform
CanvasRenderingContext2D.scale
CanvasRenderingContext2D.translate |
|
PPB_Graphics3D
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
GetAttribMaxValue |
|
OpenGL ES 3.0 |
WebGL 2.0 |
GAP (บางส่วน) - WebGL 2.0 และการเปิดเผย OpenGL ES 3.0 ของ Emscripten รองรับ Framebuffers แบบหลายตัวอย่างที่ผู้ใช้กำหนดเอง ซึ่งคุณสามารถตั้งค่าพารามิเตอร์ทั้งหมดที่สามารถกำหนดค่าผ่าน PPAPI ได้ |
สร้าง |
|
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 |
ไม่มีค่าเทียบเท่าโดยตรง |
GAP (บางส่วน) -
การล้างข้อมูลโดยนัยที่ส่วนท้ายของโค้ดการวาดจะยังคงอยู่เสมอ ซึ่งไม่น่าจะมีการเปลี่ยนแปลง อย่างไรก็ตาม การรวม
OffscreenCanvas
กับ
ImageBitmapRenderingContext
จะให้ฟังก์ชันการทำงานที่คล้ายกัน |
PPB_ImageData
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
GetNativeImageDataFormat |
|
SDL |
ImageData กำหนดลำดับ RGBA |
|
IsImageDataFormatSupported |
|
SDL |
ImageData กำหนดลำดับ RGBA |
|
สร้าง |
|
SDL |
CanvasRenderingContext2d.createImageData |
|
อธิบาย |
|
SDL |
ImageData ไม่มี Stride เสมอ |
|
แผนที่ |
|
SDL |
ImageData.data |
|
ยกเลิกการแมป |
|
SDL |
ImageData.data |
|
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
RequestInputEvents |
|
SDL |
ไม่มีรายการที่ตรงกันโดยตรง |
การที่ไม่มีฟีเจอร์นี้อาจมีความเกี่ยวข้องน้อยกว่าเนื่องจาก JS / Wasm ทำงานในเทรดหลัก และกรองกิจกรรมได้อย่างถูกกว่าโดยไม่เกิดกระบวนการข้ามกระบวนการ |
RequestFilteringInputEvents |
|
SDL |
เหตุการณ์* เมาส์* แป้น* ลูกล้อ* การสัมผัส* การเขียน |
|
|
|
SDL |
Element.addEventListener |
|
ClearInputEventRequest |
|
SDL |
Element.removeEventListener |
|
GetType |
|
SDL |
องค์ประกอบสืบทอดคลาสกิจกรรม |
|
GetTimeStamp |
|
SDL |
Event.timeStamp |
|
GetModifiers |
|
SDL |
*Event.altKey/shiftKey/metaKey/ctrlKey |
|
วิธีการ PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
สร้าง |
|
SDL |
MouseEvent |
|
GetButton |
|
SDL |
MouseEvent.button |
|
GetPosition |
|
SDL |
MouseEvent.client*/page*/offset* |
|
GetClickCount |
|
SDL |
dblclick เทียบกับ "mousedown" กิจกรรม |
|
GetMovement |
|
SDL |
MouseEvent.movement* |
|
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
สร้าง |
|
SDL |
WheelEvent |
|
GetDelta |
|
SDL |
WheelEvent.delta* |
|
GetTicks |
|
GAP |
GAP - deltaMode มีข้อมูลนี้อยู่แต่ไม่สมบูรณ์ |
มีการพูดคุยเกี่ยวกับการใช้ WheelEvent.deltaMode API: https://github.com/w3c/uievents/issues/181#issuecomment-537811017 |
GetScrollByPage |
|
GAP |
GAP - deltaMode มีข้อมูลนี้อยู่แต่ไม่สมบูรณ์ |
มีการพูดคุยเกี่ยวกับการใช้ WheelEvent.deltaMode API: https://github.com/w3c/uievents/issues/181#issuecomment-537811017 |
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
สร้าง |
|
SDL |
KeyboardEvent |
|
GetKeyCode |
|
SDL |
KeyboardEvent.keyCode |
|
GetCharacterText |
|
SDL |
KeyboardEvent.key |
|
GetCode |
|
SDL |
KeyboardEvent.code |
|
วิธีการ PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
สร้าง |
|
SDL |
TouchEvent |
|
AddTouchPoint |
|
SDL |
TouchEvent.touches.push |
|
GetTouchCount |
|
SDL |
TouchEvent.touches.length |
|
GetTouchByIndex |
|
SDL |
TouchEvent.touches[i] |
|
GetTouchById |
|
SDL |
Touch.indentifer (เพื่อหาคำตอบเอง) |
|
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
สร้าง |
|
GAP |
CompositionEvent |
|
GetText |
|
GAP |
CompositionEvent.data |
|
GetSegmentNumber |
|
GAP |
GAP - ไม่มีรายการที่เทียบเท่าโดยตรง |
ข้อมูลนี้อาจดึงมาจาก CompositionEvent.data |
GetSegmentOffset |
|
GAP |
GAP - ไม่มีรายการที่เทียบเท่าโดยตรง |
|
GetTargetSegment |
|
GAP |
GAP - ไม่มีค่าเทียบเท่าโดยตรง |
|
GetSelection |
|
GAP |
GAP - ไม่มีค่าเทียบเท่าโดยตรง |
|
PPB_Instance
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
BindGraphics |
|
SDL |
Canvas.getContext (ไม่เกี่ยวข้องเนื่องจากมีการเชื่อมโยงโดยอัตโนมัติ) |
|
IsFullFrame |
|
GAP |
GAP - ไม่เทียบเท่ากับเครื่องจัดการประเภท MIME |
แอป NaCl สามารถลงทะเบียนเพื่อจัดการประเภท MIME บางประเภทและเป็นเจ้าของเอกสารทั้งฉบับได้ |
DidCreate |
|
ไม่มี |
<Element>[key] |
การเข้าถึง DOM ทั่วไปช่วยให้คุณกรองแอตทริบิวต์ของแท็กได้ |
DidDestroy |
|
ไม่มี |
ไม่มี |
ไม่ได้ทริกเกอร์สําหรับ NaCl |
DidChangeView |
|
ไม่มี |
เหตุการณ์ "resize" ขององค์ประกอบ |
|
DidChangeFocus |
|
ไม่มี |
เหตุการณ์ "focus", "focusin", "focusout" ขององค์ประกอบ |
|
HandleDocumentLoad |
|
ไม่มี |
GAP - ไม่มีวิธีลงทะเบียนเป็นเครื่องจัดการประเภท MIME |
คุณสามารถตั้งค่าโมดูล NaCl ผ่านแอป + รายการไฟล์ Manifest เพื่อจัดการกับประเภท MIME บางประเภทได้ |
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
กำหนดค่า |
|
GAP |
getUserMedia() |
ข้อจำกัดจาก getUserMedia() สามารถระบุค่าการกำหนดค่าที่จะใช้ใน MediaStreamTrack |
GetAttrib |
|
GAP |
MediaStreamTrack.getSettings() |
|
GetId |
|
GAP |
MediaStreamTrack.id |
|
HasEnded |
|
GAP |
MediaStreamTrack.readyState |
|
GetBuffer |
|
GAP |
GAP - ไม่มีค่าเทียบเท่า |
|
RecycleBuffer |
|
GAP |
GAP - ไม่มีค่าเทียบเท่า |
|
ปิด |
|
GAP |
MediaStreamTrack.stop() |
|
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
สร้าง |
|
GAP |
การจับภาพ Canvas |
Canvas Capture ช่วยให้คุณสามารถแนะนำเฟรมวิดีโอแบบเป็นโปรแกรมได้ |
กำหนดค่า |
|
GAP |
applyConstraints(), getUserMedia() |
GAP (บางส่วน) - ขอบเขตการกําหนดค่าที่มีใน Web API อาจแตกต่างจาก PPAPI |
GetAttrib |
|
GAP |
MediaStreamSettings.width |
|
|
|
GAP |
MediaStreamSettings.height |
|
|
|
GAP |
GAP - ไม่เทียบเท่ากับ PP_MEDIASTREAMVIDEOTRACK_ATTRIB_BUFFERED_FRAMES |
MediaStream ไม่สามารถโหลดล่วงหน้าได้ ดังนั้นจึงไม่มีบัฟเฟอร์: https://www.w3.org/TR/mediacapture-streams/#mediastreams-in-media-elements |
|
|
GAP |
GAP - ไม่เทียบเท่ากับ PP_MEDIASTREAMVIDEOTRACK_ATTRIB_FORMAT |
|
GetId |
|
GAP |
MediaStreamTrack.id |
|
HasEnded |
|
GAP |
MediaStreamTrack.readyState |
|
GetFrame |
|
GAP |
GAP - ไม่มีค่าเทียบเท่า |
|
RecycleFrame |
|
GAP |
GAP - ไม่มีค่าเทียบเท่า |
|
ปิด |
|
GAP |
MediaStreamTrack.stop() |
|
GetEmptyFrame |
|
GAP |
GAP - ไม่มีรายการที่เทียบเท่า |
|
PutFrame |
|
GAP |
GAP - ไม่มีค่าเทียบเท่า |
|
PPB_MessageLoop
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
สร้าง |
|
ไม่มี |
ส่วนใหญ่ไม่เกี่ยวข้อง เวิร์กเกอร์จะได้รับลูปเหตุการณ์โดยนัย |
|
GetForMainThread |
|
ไม่มี |
ส่วนใหญ่ไม่เกี่ยวข้อง เวิร์กเกอร์จะได้รับลูปเหตุการณ์โดยนัย |
|
GetCurrent |
|
ไม่มี |
ส่วนใหญ่แล้วผู้ปฏิบัติงานจะเห็นลูปเหตุการณ์แบบไม่เจาะจงปลายทาง |
|
AttachToCurrentThread |
|
ไม่มี |
ส่วนใหญ่ไม่เกี่ยวข้อง เวิร์กเกอร์จะได้รับลูปเหตุการณ์โดยนัย |
|
เรียกใช้ |
|
ไม่มี |
ส่วนใหญ่แล้วผู้ปฏิบัติงานจะเห็นลูปเหตุการณ์แบบไม่เจาะจงปลายทาง |
|
PostWork |
|
ไม่มี |
ส่วนใหญ่แล้วผู้ปฏิบัติงานจะเห็นลูปเหตุการณ์แบบไม่เจาะจงปลายทาง |
|
PostQuit |
|
ไม่มี |
ส่วนใหญ่แล้วผู้ปฏิบัติงานจะเห็นลูปเหตุการณ์แบบไม่เจาะจงปลายทาง |
|
PPB_Messaging
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
PostMessage |
|
ไม่มี |
Window.postMessage |
|
RegisterMessageHandler |
|
ไม่มี |
Window.addEventListener |
|
UnregisterMessageHandler |
|
ไม่มี |
Window.removeEventListener |
|
PPB_MouseCursor
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
SetCursor |
|
SDL |
Element.style.cursor |
รองรับเคอร์เซอร์หุ้นชุดเดียวกัน
คุณสามารถใช้เคอร์เซอร์ที่กำหนดเองกับ URL(..) ได้
เคอร์เซอร์ที่กำหนดเองแบบไดนามิกทำได้ด้วย URI ข้อมูล
CSS3 รองรับการระบุฮอตสปอต |
PPB_MouseLock
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
LockMouse |
|
SDL |
Element.requestPointerLock |
|
UnlockMouse |
|
SDL |
Element.exitPointerLock |
|
PPB_OpenGLES2
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
หลายวิธี |
|
OpenGLES |
ใกล้กับ WebGL 1.0 ในฟังก์ชันการทำงาน |
|
|
x |
|
OffscreenCanvas |
|
PPB_TextInputController
วิธีการ PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
SetTextInputType |
|
GAP |
GAP - อาจมีการเติมโดย Input Method Editor API |
นักพัฒนาซอฟต์แวร์บางรายต้องการให้คำแนะนำในลักษณะนี้ หรือโดยเฉพาะอย่างยิ่ง ความสามารถในการสกัดกั้นและแสดงเหตุการณ์ / เอาต์พุต IME ในบรรทัดภายใน Canvas ได้ |
UpdateCaretPosition |
|
GAP |
GAP - อาจมีการเติมโดย Input Method Editor API |
https://www.w3.org/TR/ime-api/ |
CancelCompositionText |
|
GAP |
GAP - อาจมีการเติมโดย Input Method Editor API |
https://www.w3.org/TR/ime-api/ |
UpdateSurroundingText |
|
GAP |
GAP - อาจมีการเติมโดย Input Method Editor API |
https://www.w3.org/TR/ime-api/ |
PPB_URLLoader
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
สร้าง |
|
embind |
XMLHttpRequest(); ใหม่ |
|
เปิด |
|
embind |
XMLHttpRequest.open |
|
FollowRedirect |
|
embind |
Request.redirect |
|
|
|
GAP |
GAP - ไม่มีรายการที่เทียบเท่า XMLHTTPRequest |
|
GetUploadProgress |
|
embind |
"ความคืบหน้า" ของ XMLHttpRequest กิจกรรม |
|
|
|
GAP |
FetchObserver |
ยังไม่ได้ระบุหรือใช้งาน https://github.com/whatwg/fetch/issues/607 |
GetDownloadProgress |
|
embind |
"ความคืบหน้า" ของ XMLHttpRequest กิจกรรม |
|
|
|
GAP |
FetchObserver |
ยังไม่ได้ระบุหรือใช้งาน https://github.com/whatwg/fetch/issues/607 |
GetResponseInfo |
|
embind |
XMLHttpRequest.getAllResponseHeaders |
|
|
|
embind |
ดึงข้อมูลคำตอบ* |
|
ReadResponseBody |
|
embind |
XMLHttpRequest.response |
|
|
|
embind |
เนื้อความ* (คำตอบคือเนื้อหา) |
|
FinishStreamingToFile |
|
embind |
GAP - ไม่มีรายการที่เทียบเท่าโดยตรง |
ทั้ง XMLHttpRequest และ Fetch ถือว่าสตรีมไปยังหน่วยความจำแทนที่จะสตรีมไปยังพื้นที่เก็บข้อมูลโดยตรง |
ปิด |
|
embind |
XMLHttpRequest.abort |
|
|
|
GAP |
Fetch API: AbortSignal และ AbortController |
|
PPB_URLRequestInfo
วิธีการ PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
สร้าง |
|
embind |
XMLHttpRequest |
|
|
|
embind |
คำขอดึงข้อมูล |
|
SetProperty |
|
GAP |
GAP - ไม่มีบริการเทียบเท่าโดยตรงสำหรับ XMLHttpRequest |
XMLHttpRequest ไม่มีวิธีโดยตรงในการจำกัดตามคำขอหลังจากการเปลี่ยนเส้นทาง สตรีมไปยังไฟล์ ตั้งค่านโยบายผู้อ้างอิงหรือข้อมูลรับรอง |
|
|
embind |
ส่งคำขอ* |
|
AppendDataToBody |
|
embind |
XMLHttpRequest.send |
GAP - เนื้อหาทั้งสองต้องประกอบไปด้วยตัวเครื่องทั้งหมด ไม่ใช่เป็นส่วนๆ |
|
|
embind |
fetch(.., options:body) |
|
AppendFileToBody |
|
GAP |
Googlebot() อัปโหลดสตรีมมิง |
https://www.chromestatus.com/features/5274139738767360 |
|
|
ไม่มี |
<form> |
และอ่านด้วย FileReader และอัปโหลดก็ได้ แต่จะคล้ายๆ กับ AppendDataToBody มากกว่า |
PPB_URLResponseInfo
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
GetProperty |
|
embind |
XMLHttpRequest.getAllResponseHeaders + others |
|
|
|
embind |
ดึงข้อมูลคำตอบ* |
|
GetBodyAsFileRef |
|
embind |
ดึงข้อมูลการตอบกลับ (เนื้อหา) .blob() |
ถือว่าเลเยอร์พื้นที่เก็บข้อมูลเพิ่มประสิทธิภาพการโอน |
PPB_Var
วิธีการ PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
VarFromUtf8 |
|
embind |
TextDecoder.decode |
|
VarToUtf8 |
|
embind |
TextEncoder.encode |
|
VarFromResource |
|
ไม่มี |
ไม่มี |
|
VarToResource |
|
ไม่มี |
ไม่มี |
|
PPB_VarArray
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
ดาวน์โหลด |
|
embind |
อาร์เรย์[i] |
|
ตั้งค่า |
|
embind |
อาร์เรย์[i] = x |
|
GetLength |
|
embind |
Array.length |
|
SetLength |
|
embind |
Array.length = n |
|
PPB_VarArrayBuffer
วิธีการ PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
สร้าง |
|
embind |
ArrayBuffer(n) ใหม่ |
|
ByteLength |
|
embind |
ArrayBuffer.byteLength |
|
แผนที่ |
|
GAP |
GAP - ไม่มีค่าเทียบเท่าโดยตรง |
โมดูล Asm.js / Wasm ไม่สามารถแมปส่วนของ ArrayBuffer นอกเหนือจากกองหน่วยความจำเชิงเส้นเดียว
ในอนาคต ความทรงจำหลายรายการหรือการแมปความทรงจำอาจช่วยปรับปรุงเรื่องนี้ได้ |
ยกเลิกการแมป |
|
GAP |
GAP - ไม่มีรายการที่เทียบเท่าโดยตรง |
|
PPB_VarDictionary
วิธีการ PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
สร้าง |
|
embind |
{} |
|
ดาวน์โหลด |
|
embind |
<Object>[i] |
|
ตั้งค่า |
|
embind |
<Object>[i] = x |
|
ลบ |
|
embind |
ลบ <ออบเจ็กต์>[i] |
|
HasKey |
|
embind |
x ใน <Object> |
|
GetKeys |
|
embind |
for (k ใน <Object>) {} |
ไม่มีค่าเทียบเท่า แต่สิ่งนั้นเป็นสิ่งที่สร้างขึ้นได้ |
PPB_VideoDecoder
วิธีการ PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
สร้าง |
|
GAP |
GAP - จัดการด้วย WebCodecs API ที่เสนอโดยใช้ VideoDecoder() |
https://github.com/WICG/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-streaming-or-cloud-gaming |
เริ่มต้น |
|
GAP |
GAP - จะจัดการด้วย WebCodecs API ที่เสนอโดยใช้พารามิเตอร์การเริ่มต้น VideoDecoder() (VideoDecoderInitParameters) |
https://github.com/WICG/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-streaming-or-cloud-gaming |
Decode |
|
GAP |
GAP - จัดการด้วย WebCodecs API ที่เสนอโดยใช้ ReadableStream.pipeThrough(VideoDecoder) |
https://github.com/WICG/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-streaming-or-cloud-gaming |
GetPicture |
|
GAP |
GAP - จัดการด้วย WebCodecs API ที่เสนอโดยใช้ 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 |
RecyclePicture |
|
GAP |
GAP - จัดการด้วย WebCodecs API ที่เสนอ การออกแบบปัจจุบันจะรีไซเคิลรูปภาพโดยอัตโนมัติและดำเนินการถอดรหัสต่อไป |
https://github.com/WICG/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-streaming-or-cloud-gaming |
แบบยึดเพดานด้วยฐาน |
|
GAP |
GAP - จัดการด้วย WebCodecs API ที่เสนอ API นี้จะเรียกว่า Flush() แต่ยังคงมีการหารือกันอยู่ว่าจะเรียงลำดับอย่างไรในส่วนที่เกี่ยวข้องกับการถอดรหัสการเรียก |
https://github.com/WICG/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-streaming-or-cloud-gaming |
รีเซ็ต |
|
GAP |
GAP - จัดการด้วย WebCodecs API ที่เสนอโดยทำลายอินสแตนซ์ VideoDecoder แล้วสร้างอินสแตนซ์ใหม่ วิธีการนี้จะไม่มีประสิทธิภาพเท่ากับวิธีการรีเซ็ตโดยเฉพาะ แต่ความหมายของ API สำหรับการรีเซ็ต() ยังคงมีการกล่าวถึงอยู่ |
https://github.com/WICG/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-streaming-or-cloud-gaming |
PPB_VideoEncoder
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
สร้าง |
|
GAP |
GAP - จัดการด้วย WebCodecs API ที่เสนอโดยใช้ VideoEncoder() |
|
GetSupportedProfiles |
|
GAP |
GAP (บางส่วน) - navigator.mediaCapabilities.encodingInfo() |
โดยต้องเลือกโปรไฟล์ที่รองรับทีละรายการ |
เริ่มต้น |
|
GAP |
GAP - ได้รับการจัดการด้วย WebCodecs API ที่เสนอโดยใช้พารามิเตอร์การเริ่มต้น VideoEncoder() |
|
GetFramesRequired |
|
GAP |
GAP - ไม่มีค่าเทียบเท่า |
ไม่น่าจะมีการแสดงพูลเฟรมที่ Web Codecs API ใช้ภายใน |
GetFrameCodedSize |
|
GAP |
GAP - ไม่มีค่าเทียบเท่า |
เป็นไปได้ยากที่ Web Codecs API ที่ใช้ภายในจะถูกเปิดเผย |
GetVideoFrame |
|
GAP |
GAP - จะจัดการด้วย WebCodecs API ที่เสนอโดยใช้ ReadableStream.pipeThrough(VideoEncoder) ซึ่งจะเข้ารหัสข้อมูลในสตรีมที่อ่านได้โดยตรงแทนที่จะจับเฟรมเดียวเพื่อเติมข้อมูลก่อนเข้ารหัส |
|
เข้ารหัส |
|
GAP |
GAP - จัดการด้วย WebCodecs API ที่เสนอโดยใช้ ReadableStream.pipeThrough(VideoEncoder) |
|
GetBitstreamBuffer |
|
GAP |
GAP - จัดการด้วย WebCodecs API ที่เสนอ การออกแบบปัจจุบันจะผ่านบัฟเฟอร์บิตสตรีมที่เข้ารหัสซึ่งส่งผ่านผ่านโดยอัตโนมัติ |
ปัจจุบัน WebCodecs API ถือว่าสามารถคัดลอกบัฟเฟอร์บิตสตรีมแทนการรวมไว้ด้วยกันได้ จึงไม่จำเป็นต้องรีไซเคิล |
RecycleBitstreamBuffer |
|
GAP |
GAP - จัดการด้วย WebCodecs API ที่เสนอ การออกแบบในปัจจุบันจะนำบัฟเฟอร์ใหม่ไปรีไซเคิลโดยอัตโนมัติเพื่อให้กระบวนการเข้ารหัสดำเนินต่อไป |
ข้อมูลนี้ไม่น่าจะมีการเปลี่ยนแปลงในอนาคตเนื่องจากผลกระทบด้านประสิทธิภาพมีน้อยลง |
RequestEncodingParametersChange |
|
GAP |
GAP - ได้รับการจัดการโดย Web Codecs API ที่เสนอ พารามิเตอร์บางตัวสามารถเปลี่ยนแปลงได้ทันที แต่บางรายการก็ต้องถอดโปรแกรมเปลี่ยนไฟล์ออก |
|
ปิด |
|
GAP |
GAP - จัดการด้วย WebCodecs API ที่เสนอโดยใช้ VideoEncoder.Close() |
|
PPB_VideoFrame
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
GetTimestamp |
|
GAP |
GAP - จัดการด้วย WebCodecs API ที่เสนอ |
|
SetTimestamp |
|
GAP |
GAP - ได้รับการจัดการด้วย WebCodecs API ที่เสนอ |
|
GetFormat |
|
GAP |
GAP - จัดการด้วย WebCodecs API ที่เสนอ |
|
GetSize |
|
GAP |
GAP - จัดการด้วย WebCodecs API ที่เสนอ |
|
GetDataBuffer |
|
GAP |
GAP - ได้รับการจัดการด้วย WebCodecs API ที่เสนอ |
|
GetDataBufferSize |
|
GAP |
GAP - ได้รับการจัดการด้วย WebCodecs API ที่เสนอ |
|
PPB_View
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
GetRect |
|
embind |
Element.getBoundingClientRect |
|
IsFullscreen |
|
embind |
Document.fullScreenEnabled |
เกี่ยวข้องกับเอกสาร ไม่ใช่เพียงองค์ประกอบเดียว |
IsVisible |
|
embind |
IntersectionObserver |
|
IsPageVisible |
|
embind |
document.visibilityState |
|
GetClipRect |
|
embind |
IntersectionObserver |
|
GetDeviceScale |
|
embind |
window.devicePixelRatio |
|
GetCSSScale |
|
embind |
<Element>.getBoundingClientRect().width / <Element>.offsetWidth |
|
GetScrollOffset |
|
embind |
<Element>.scrollTop / <Element>.scrollLeft |
|
PPB_WebSocket
วิธีการ PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
สร้าง |
|
GAP |
WebSocket.WebSocket |
|
เชื่อมต่อ |
|
GAP |
WebSocket.WebSocket(URL, ...)
WebSocket "เปิด" กิจกรรม |
|
ปิด |
|
GAP |
WebSocket.close |
|
ReceiveMessage |
|
GAP |
"ข้อความ" ของ WebSocket กิจกรรม
"ข้อผิดพลาด" WebSocket กิจกรรม
WebSocket "ปิด" กิจกรรม |
|
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 |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
กราฟิก 3 มิติของบริบทสูญหาย |
|
SDL |
Canvas "webglcontextlost" กิจกรรม |
|
วิธีการ PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
HandleInputEvent |
|
SDL |
Element.addEventListener |
|
PPP_Instance
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
DidCreate |
|
ไม่มี |
<Element>[key] |
การเข้าถึง DOM ทั่วไปช่วยให้คุณกรองแอตทริบิวต์ของแท็กได้ |
DidDestroy |
|
ไม่มี |
ไม่มี |
ไม่ได้ทริกเกอร์สําหรับ NaCl |
DidChangeView |
|
ไม่มี |
เหตุการณ์ "resize" ขององค์ประกอบ |
|
DidChangeFocus |
|
ไม่มี |
เหตุการณ์ "focus", "focusin", "focusout" ขององค์ประกอบ |
|
HandleDocumentLoad |
|
ไม่มี |
GAP - ไม่มีวิธีลงทะเบียนเป็นเครื่องจัดการประเภท MIME |
คุณสามารถตั้งค่าโมดูล NaCl ผ่านแอป + รายการไฟล์ Manifest เพื่อจัดการกับประเภท MIME บางประเภทได้ |
PPP_MessageHandler
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
HandleMessage |
|
embind |
"message" ใน MessagePort กิจกรรม
"ข้อความ" ในหน้าต่าง กิจกรรม |
|
HandleBlockingMessage |
|
ไม่มี |
GAP - ไม่มีรายการที่เทียบเท่าโดยตรง |
การซิงค์ข้อมูลที่คล้ายกันจะทำได้จากเทรดหลักด้วย Atomics.Wait เราได้เพิ่มตัวเลือกนี้เพื่อรองรับการจําลอง API ของปลั๊กอินแบบซิงค์ |
PPP_Messaging
วิธีการ PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
HandleMessage |
|
embind |
"message" ใน MessagePort กิจกรรม
"ข้อความ" ในหน้าต่าง กิจกรรม |
|
PPP_MouseLock
วิธีการ PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
MouseLockLost |
|
SDL |
องค์ประกอบ "pointerlockchange", "pointerlockerror" กิจกรรม |
|
IRT
PPB_Audio
วิธีการ PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
สร้าง |
x |
SDL (บางส่วน) |
GAP (บางส่วน) - AudioWorkletNode เทียบเท่า ROUGHLY |
AudioWorkletSpec พร้อมแล้ว แต่ AudioDeviceClient อาจเหมาะกับ API นี้มากกว่า ชุมชนยังคงระบุ AudioDeviceClient อยู่ Worklet อาจไม่เทียบเท่าคร่าวๆ สำหรับ API นี้ |
GetCurrentConfig |
|
SDL |
AudioContext* (รับการตั้งค่าที่ส่งผ่าน) |
|
StartPlayback |
|
SDL |
AudioBufferSourceNode.start |
|
StopPlayback |
|
SDL |
AudioBufferSourceNode.stop |
|
PPB_AudioBuffer
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
GetTimestamp |
|
SDL |
AudioBufferSourceNode.start (พารามิเตอร์) |
ส่งทุกครั้งแทนที่จะติดอยู่กับบัฟเฟอร์ |
SetTimestamp |
|
SDL |
AudioBufferSourceNode.start (พารามิเตอร์) |
|
GetSampleRate |
|
SDL |
AudioBuffer.sampleRate |
|
GetSampleSize |
|
GAP |
GAP - WebAudio ใช้เฉพาะจำนวนลอยตัว 32 บิต ส่วน PPAPI ใช้จำนวนเต็ม 16 บิต |
ในทางทฤษฎี PPAPI รองรับการสุ่มตัวอย่างหลายขนาด ในทางปฏิบัติ ระบบรองรับเฉพาะตัวอย่างแบบ 16 บิตเท่านั้น ขออภัย นักพัฒนาแอปได้ขอขนาดตัวอย่าง 16 บิตเพื่อประหยัดการใช้หน่วยความจำ ข้อมูลจำเพาะของ Web Audio เวอร์ชันถัดไปจะใช้การรองรับตัวอย่าง 16 บิต คุณสามารถใช้การเพิ่มประสิทธิภาพสำหรับ AudioBuffer คล้ายกับของ Firefox โดยใช้บัฟเฟอร์ 16 บิตสำหรับเสียงที่มาจาก decodeAudioData |
GetNumberOfChannels |
|
SDL |
AudioBuffer.numberOfChannels |
|
GetDataBuffer |
|
SDL |
AudioBuffer.getChannelData |
|
GetBufferSize |
|
SDL |
AudioBuffer.length |
|
PPB_AudioConfig
วิธีการ PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
CreateStereo16Bit |
|
GAP |
GAP - รองรับเฉพาะตัวอย่างจำนวนลอยตัว 32 บิต |
ข้อมูลจำเพาะของ Web Audio เวอร์ชันถัดไปจะใช้การรองรับตัวอย่าง 16 บิต |
GetSampleRate |
|
SDL |
AudioContext.sampleRate |
|
GetSampleFrameCount |
|
SDL |
AudioBuffer.length |
|
RecommendSampleRate |
|
SDL |
AudioContext.sampleRate (จากคอนสตรัคต์เริ่มต้น) |
โดย AudioContext จะมีอัตราการสุ่มตัวอย่างที่ต้องการซึ่งตรงกับอัตราตัวอย่างจริงของอุปกรณ์เสียงฮาร์ดแวร์โดยค่าเริ่มต้น |
RecommendSampleFrameCount |
|
GAP |
GAP - จะจัดการด้วย AudioDeviceClient ที่วางแผนไว้ |
มีปัญหาที่ยังไม่ได้รับการแก้ไขเพื่ออนุญาตขนาดที่ผู้ใช้ระบุ แต่ยังคงอยู่ในระหว่างการกำหนด วิธีจัดการที่ดีที่สุดน่าจะเป็นการใช้ AudioDeviceClient ซึ่งบอกได้ขนาดที่เหมาะสมสำหรับฮาร์ดแวร์หนึ่งๆ |
PPB_Console
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
บันทึก |
|
Utime |
console.log/warn/error/... |
|
LogWithSource |
|
GAP |
GAP |
Console API ถือว่าเป็น API ที่ทดแทนได้อย่างสมบูรณ์เพียงพอ เว้นแต่นักพัฒนาซอฟต์แวร์จะระบุ Use Case ที่เฉพาะเจาะจงสำหรับฟังก์ชันการทำงานที่ LogWithSource มีให้ คุณสามารถใช้แผนที่แหล่งที่มาของเครื่องมือสำหรับนักพัฒนาเว็บเพื่อแก้ไขข้อบกพร่อง JavaScript ที่เปลี่ยนรูปแบบแล้วในภาษาต้นฉบับ |
PPB_Core
วิธีการ PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
getTime |
|
utime |
Date().getTime() ใหม่ |
|
getTimeTicks |
|
utime |
Date().getTime() ใหม่ |
|
IsMainThread |
|
GAP |
window.document !== ไม่ระบุ |
|
CallOnMainThread |
|
GAP |
Worker.postMessage + Atomics.wait |
สร้างการซิงค์ข้อมูลที่เทียบเท่ากันได้ |
PPB_FileIO
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
สร้าง |
|
FS (บางส่วน) |
window.chooseFileSystemEntries() |
การสร้างและการเปิดจะใช้ต่างกัน แต่ส่วนต่างๆ มีประสิทธิภาพเท่ากัน |
เปิด |
|
FS (บางส่วน) |
window.chooseFileSystemEntries() |
|
การค้นหา |
|
FS (บางส่วน) |
Blob.size, FileSystemHandle.getFile(), FileSystemHandle.getDirectory(), File.lastModified |
GAP (บางส่วน) - คุณใช้ Blob.type เพื่อตรวจสอบประเภท MIME ได้ด้วย ไม่สามารถระบุประเภทระบบไฟล์ เวลาสร้าง และเวลาเข้าถึงล่าสุดด้วย Native File System API |
แตะ |
|
FS (บางส่วน) |
FileSystemDirectoryHandle.getFile("name", {create: true}) |
|
อ่าน |
|
FS (บางส่วน) |
Blob.slice().arrayBuffer() |
|
เขียน |
|
FS (บางส่วน) |
FileSystemWriter.write() |
|
SetLength |
|
FS (บางส่วน) |
FileSystemWriter.truncate() |
|
แบบยึดเพดานด้วยฐาน |
|
GAP (บางส่วน) |
GAP (บางส่วน) - ระบบจะล้างไฟล์เมื่อมีการเรียกใช้ FileSystemWrite.close() |
ทั้งนี้ เราออกแบบให้เพราะไฟล์ Native File System API ปรากฏอยู่ในระบบปฏิบัติการ ดังนั้นจึงต้องมีการตรวจสอบ Google Safe Browsing ก่อนที่ข้อมูลจะแสดงในระบบปฏิบัติการ |
ปิด |
|
FS (บางส่วน) |
FileSystemWriter.close() |
ไม่ยกเลิกการดำเนินการที่รอดำเนินการ แต่จะล้างข้อมูลที่เขียนไว้จนถึงดิสก์ |
ReadToArray |
|
GAP |
Blob.slice().arrayBuffer() หรือ Blob.arrayBuffer() |
อนุญาตการอ่านช่วงย่อยหลายช่วงพร้อมกัน |
PPB_FileRef
วิธีการ PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
สร้าง |
|
FS (บางส่วน) |
FileSystemDirectoryHandle.getFile("name", {create: true}) |
|
GetFileSystemType |
|
FS (บางส่วน) |
FileSystem.type |
|
GetName |
|
FS (บางส่วน) |
File.name |
|
GetPath |
|
FS (บางส่วน) |
GAP (บางส่วน) - เมื่อใช้ Native File System API คุณจะระบุเส้นทางแบบสัมพัทธ์ของไฟล์จากการอ้างอิงไปยังไดเรกทอรีที่มีไฟล์ได้โดยใช้ FileSystemHandle.resolve(FileSystemHandle) |
ระบุเส้นทางสัมบูรณ์ของไฟล์ไม่ได้ และผู้ใช้ต้องให้สิทธิ์เข้าถึงไดเรกทอรีที่มีไฟล์ |
GetParent |
|
FS (บางส่วน) |
GAP (บางส่วน) - เมื่อใช้ File System API เดิม คุณจะกำหนดเส้นทางแบบสัมพัทธ์ของไฟล์ได้จากการอ้างอิงไปยังไดเรกทอรีที่มีไฟล์โดยใช้ FileSystemHandle.resolve(FileSystemHandle) |
ผู้ใช้ต้องให้สิทธิ์เข้าถึงไดเรกทอรีที่มีไฟล์ |
MakeDirectory |
|
FS (บางส่วน) |
FileSystemHandle.getDirectory(..., {createIfNotExists: true}) |
|
แตะ |
|
FS (บางส่วน) |
FileSystemDirectoryHandle.getFile("name", {create: true}) |
แก้ไขเวลาได้ด้วยการเขียน |
ลบ |
|
FS (บางส่วน) |
FileSystemDirectoryHandle.removeEntry() |
ไดเรกทอรีไม่จำเป็นต้องว่างเปล่า ซึ่งต่างจาก PPAPI |
เปลี่ยนชื่อ |
|
FS (บางส่วน) |
GAP (บางส่วน) - เมื่อใช้ Native File System API ระบบสามารถเขียนไฟล์โดยใช้ชื่อใหม่โดยใช้ FileSystemFileHandle.getFile() สำหรับชื่อใหม่และ FileSystemFileHandle.createWriter().write() ที่มีเนื้อหาของไฟล์เก่า จากนั้น FileSystemDirectoryHandle.removeEntry() เพื่อลบไฟล์เก่า |
ไม่มี API โดยตรงที่จะดำเนินการนี้ในขั้นตอนเดียวใน Native File System API |
การค้นหา |
|
GAP (บางส่วน) |
Blob.size, FileSystemHandle.getFile(), FileSystemHandle.getDirectory(), File.lastModified |
GAP (บางส่วน) - Blob.type สามารถใช้ในการตรวจสอบประเภท MIME ได้เช่นกัน ไม่สามารถระบุประเภทระบบไฟล์ เวลาที่สร้าง และเวลาเข้าถึงล่าสุดได้ด้วย Native File System API |
ReadDirectoryEntries |
|
FS (บางส่วน) |
FileSystemDirectoryHandle.getEntries() |
|
PPB_FileSystem
วิธีการ PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
สร้าง |
|
FS (บางส่วน) |
window.requestFileSystem |
JS API ทําทั้ง 2 อย่างในขั้นตอนเดียว |
เปิด |
|
GAP |
window.requestFileSystem |
JS API ทําทั้ง 2 อย่างในขั้นตอนเดียว |
GetType |
|
GAP |
FileSystem.type |
|
PPB_Fullscreen
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
IsFullScreen |
|
html5.h |
Document.fullscreenEnabled |
|
SetFullscreen |
|
html5.h |
Document.requestFullscreen |
|
GetScreenSize |
|
html5.h |
Document.exitFullscreen |
|
PPB_Gamepad
วิธีการ PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
ตัวอย่าง |
|
SDL |
เกมแพด* |
ออบเจ็กต์ Gamepad จะแสดงการประทับเวลาซึ่งสัมพันธ์กับ navigationStart จะได้รับการอัปเดตเมื่อได้รับข้อมูลจากฮาร์ดแวร์ https://www.w3.org/TR/gamepad/#gamepad-interface |
PPB_Graphics2D
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
สร้าง |
|
SDL |
Canvas.getContext('2d') |
|
อธิบาย |
|
SDL |
Canvas.clientWidth + Canvas.clientHeight |
|
PaintImageData |
|
SDL |
CanvasRenderingContext2D.putImageData |
|
เลื่อน |
|
GAP |
CanvasRenderingContext2D.scrollIntoView, CanvasRenderingContext2D.drawImage |
GAP (บางส่วน) - สามารถใช้ได้โดยวาดภาพพิมพ์แคนวาสลงบนภาพพิมพ์แคนวาสนั้นเอง โดยมีการเลื่อนตำแหน่งโดยใช้ drawImage แล้วเติมส่วนที่เหลือ |
ReplaceContents |
|
SDL |
CanvasRenderingContext2D.drawImage |
|
แบบยึดเพดานด้วยฐาน |
|
GAP |
ไม่มีค่าเทียบเท่าโดยตรง |
GAP (บางส่วน) -
การล้างข้อมูลโดยนัยที่ส่วนท้ายของโค้ดการวาดจะยังคงอยู่เสมอ ซึ่งไม่น่าจะมีการเปลี่ยนแปลง อย่างไรก็ตาม การรวม OffscreenCanvas
กับ ImageBitmapRenderingContext
จะให้ฟังก์ชันการทำงานที่คล้ายกัน |
SetScale |
|
SDL |
CanvasRenderingContext2D.scale |
|
GetScale |
|
SDL |
CanvasRenderingContext2D.currentTransform |
|
SetLayerTransform |
|
SDL |
CanvasRenderingContext2D.setTransform
CanvasRenderingContext2D.scale
CanvasRenderingContext2D.translate |
|
PPB_Graphics3D
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
GetAttribMaxValue |
|
OpenGL ES 3.0 |
WebGL 2.0 |
GAP (บางส่วน) - WebGL 2.0 และการเปิดเผย OpenGL ES 3.0 ของ Emscripten รองรับ Framebuffers แบบหลายตัวอย่างที่ผู้ใช้กำหนดเอง ซึ่งคุณสามารถตั้งค่าพารามิเตอร์ทั้งหมดที่สามารถกำหนดค่าผ่าน PPAPI ได้ |
สร้าง |
|
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 |
ไม่มีค่าเทียบเท่าโดยตรง |
GAP (บางส่วน) -
จะมีการล้างแบบโดยนัยที่ส่วนท้ายของโค้ดการวาดเสมอ ไม่น่าเป็นไปได้
เพื่อเปลี่ยนแปลง อย่างไรก็ตาม การใช้
OffscreenCanvas
และ
ImageBitmapRenderingContext
มีฟังก์ชันการทำงานที่คล้ายกัน |
PPB_ImageData
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
GetNativeImageDataFormat |
|
SDL |
ImageData กำหนดลำดับ RGBA |
|
IsImageDataFormatSupported |
|
SDL |
ImageData กำหนดลำดับ RGBA |
|
สร้าง |
|
SDL |
CanvasRenderingContext2d.createImageData |
|
อธิบาย |
|
SDL |
ImageData ไม่มี Stride เสมอ |
|
แผนที่ |
|
SDL |
ImageData.data |
|
ยกเลิกการแมป |
|
SDL |
ImageData.data |
|
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
RequestInputEvents |
|
SDL |
ไม่มีรายการที่ตรงกันโดยตรง |
การที่ไม่มีฟีเจอร์นี้อาจมีความเกี่ยวข้องน้อยกว่าเนื่องจาก JS / Wasm ทำงานในเทรดหลัก และกรองกิจกรรมได้อย่างถูกกว่าโดยไม่เกิดกระบวนการข้ามกระบวนการ |
RequestFilteringInputEvents |
|
SDL |
เหตุการณ์* เมาส์* แป้น* ลูกล้อ* การสัมผัส* การเขียน |
|
|
|
SDL |
Element.addEventListener |
|
ClearInputEventRequest |
|
SDL |
Element.removeEventListener |
|
GetType |
|
SDL |
องค์ประกอบสืบทอดคลาสกิจกรรม |
|
GetTimeStamp |
|
SDL |
Event.timeStamp |
|
GetModifiers |
|
SDL |
*Event.altKey/shiftKey/metaKey/ctrlKey |
|
วิธีการ PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
สร้าง |
|
SDL |
MouseEvent |
|
GetButton |
|
SDL |
MouseEvent.button |
|
GetPosition |
|
SDL |
MouseEvent.client*/page*/offset* |
|
GetClickCount |
|
SDL |
dblclick เทียบกับ "mousedown" กิจกรรม |
|
GetMovement |
|
SDL |
MouseEvent.movement* |
|
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
สร้าง |
|
SDL |
WheelEvent |
|
GetDelta |
|
SDL |
WheelEvent.delta* |
|
GetTicks |
|
GAP |
GAP - deltaMode มีข้อมูลนี้อยู่แต่ไม่สมบูรณ์ |
มีการพูดคุยเกี่ยวกับการใช้ WheelEvent.deltaMode API: https://github.com/w3c/uievents/issues/181#issuecomment-537811017 |
GetScrollByPage |
|
GAP |
GAP - deltaMode มีข้อมูลนี้อยู่แต่ไม่สมบูรณ์ |
มีการพูดคุยเกี่ยวกับการใช้ WheelEvent.deltaMode API: https://github.com/w3c/uievents/issues/181#issuecomment-537811017 |
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
สร้าง |
|
SDL |
KeyboardEvent |
|
GetKeyCode |
|
SDL |
KeyboardEvent.keyCode |
|
GetCharacterText |
|
SDL |
KeyboardEvent.key |
|
GetCode |
|
SDL |
KeyboardEvent.code |
|
วิธีการ PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
สร้าง |
|
SDL |
TouchEvent |
|
AddTouchPoint |
|
SDL |
TouchEvent.touches.push |
|
GetTouchCount |
|
SDL |
TouchEvent.touches.length |
|
GetTouchByIndex |
|
SDL |
TouchEvent.touches[i] |
|
GetTouchById |
|
SDL |
Touch.indentifer (เพื่อหาคำตอบเอง) |
|
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
สร้าง |
|
GAP |
CompositionEvent |
|
GetText |
|
GAP |
CompositionEvent.data |
|
GetSegmentNumber |
|
GAP |
GAP - ไม่มีรายการที่เทียบเท่าโดยตรง |
ข้อมูลนี้อาจดึงมาจาก CompositionEvent.data |
GetSegmentOffset |
|
GAP |
GAP - ไม่มีรายการที่เทียบเท่าโดยตรง |
|
GetTargetSegment |
|
GAP |
GAP - ไม่มีค่าเทียบเท่าโดยตรง |
|
GetSelection |
|
GAP |
GAP - ไม่มีค่าเทียบเท่าโดยตรง |
|
PPB_Instance
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
BindGraphics |
|
SDL |
Canvas.getContext (ไม่เกี่ยวข้องเนื่องจากมีการเชื่อมโยงโดยอัตโนมัติ) |
|
IsFullFrame |
|
GAP |
GAP - ไม่เทียบเท่ากับเครื่องจัดการประเภท MIME |
แอป NaCl สามารถลงทะเบียนเพื่อจัดการประเภท MIME บางประเภทและเป็นเจ้าของเอกสารทั้งฉบับได้ |
DidCreate |
|
ไม่มี |
<Element>[key] |
การเข้าถึง DOM ทั่วไปช่วยให้คุณกรองแอตทริบิวต์ของแท็กได้ |
DidDestroy |
|
ไม่มี |
ไม่มี |
ไม่ได้ทริกเกอร์สําหรับ NaCl |
DidChangeView |
|
ไม่มี |
เหตุการณ์ "resize" ขององค์ประกอบ |
|
DidChangeFocus |
|
ไม่มี |
เหตุการณ์ "focus", "focusin", "focusout" ขององค์ประกอบ |
|
HandleDocumentLoad |
|
ไม่มี |
GAP - ไม่มีวิธีลงทะเบียนเป็นเครื่องจัดการประเภท MIME |
คุณสามารถตั้งค่าโมดูล NaCl ผ่านแอป + รายการไฟล์ Manifest เพื่อจัดการกับประเภท MIME บางประเภทได้ |
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
กำหนดค่า |
|
GAP |
getUserMedia() |
ข้อจำกัดจาก getUserMedia() สามารถระบุค่าการกำหนดค่าที่จะใช้ใน MediaStreamTrack |
GetAttrib |
|
GAP |
MediaStreamTrack.getSettings() |
|
GetId |
|
GAP |
MediaStreamTrack.id |
|
HasEnded |
|
GAP |
MediaStreamTrack.readyState |
|
GetBuffer |
|
GAP |
GAP - ไม่มีค่าเทียบเท่า |
|
RecycleBuffer |
|
GAP |
GAP - ไม่มีค่าเทียบเท่า |
|
ปิด |
|
GAP |
MediaStreamTrack.stop() |
|
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
สร้าง |
|
GAP |
การจับภาพ Canvas |
Canvas Capture ช่วยให้คุณสามารถแนะนำเฟรมวิดีโอแบบเป็นโปรแกรมได้ |
กำหนดค่า |
|
GAP |
applyConstraints(), getUserMedia() |
GAP (บางส่วน) - ขอบเขตการกําหนดค่าที่มีใน Web API อาจแตกต่างจาก PPAPI |
GetAttrib |
|
GAP |
MediaStreamSettings.width |
|
|
|
GAP |
MediaStreamSettings.height |
|
|
|
GAP |
GAP - ไม่เทียบเท่ากับ PP_MEDIASTREAMVIDEOTRACK_ATTRIB_BUFFERED_FRAMES |
MediaStream ไม่สามารถโหลดล่วงหน้าได้ ดังนั้นจึงไม่มีบัฟเฟอร์: https://www.w3.org/TR/mediacapture-streams/#mediastreams-in-media-elements |
|
|
GAP |
GAP - ไม่เทียบเท่ากับ PP_MEDIASTREAMVIDEOTRACK_ATTRIB_FORMAT |
|
GetId |
|
GAP |
MediaStreamTrack.id |
|
HasEnded |
|
GAP |
MediaStreamTrack.readyState |
|
GetFrame |
|
GAP |
GAP - ไม่มีค่าเทียบเท่า |
|
RecycleFrame |
|
GAP |
GAP - ไม่มีค่าเทียบเท่า |
|
ปิด |
|
GAP |
MediaStreamTrack.stop() |
|
GetEmptyFrame |
|
GAP |
GAP - ไม่มีรายการที่เทียบเท่า |
|
PutFrame |
|
GAP |
GAP - ไม่มีค่าเทียบเท่า |
|
PPB_MessageLoop
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
สร้าง |
|
ไม่มี |
ส่วนใหญ่ไม่เกี่ยวข้อง เวิร์กเกอร์จะได้รับลูปเหตุการณ์โดยนัย |
|
GetForMainThread |
|
ไม่มี |
ส่วนใหญ่ไม่เกี่ยวข้อง เวิร์กเกอร์จะได้รับลูปเหตุการณ์โดยนัย |
|
GetCurrent |
|
ไม่มี |
ส่วนใหญ่แล้วผู้ปฏิบัติงานจะเห็นลูปเหตุการณ์แบบไม่เจาะจงปลายทาง |
|
AttachToCurrentThread |
|
ไม่มี |
ส่วนใหญ่ไม่เกี่ยวข้อง เวิร์กเกอร์จะได้รับลูปเหตุการณ์โดยนัย |
|
เรียกใช้ |
|
ไม่มี |
ส่วนใหญ่แล้วผู้ปฏิบัติงานจะเห็นลูปเหตุการณ์แบบไม่เจาะจงปลายทาง |
|
PostWork |
|
ไม่มี |
ส่วนใหญ่แล้วผู้ปฏิบัติงานจะเห็นลูปเหตุการณ์แบบไม่เจาะจงปลายทาง |
|
PostQuit |
|
ไม่มี |
ส่วนใหญ่แล้วผู้ปฏิบัติงานจะเห็นลูปเหตุการณ์แบบไม่เจาะจงปลายทาง |
|
PPB_Messaging
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
PostMessage |
|
ไม่มี |
Window.postMessage |
|
RegisterMessageHandler |
|
ไม่มี |
Window.addEventListener |
|
UnregisterMessageHandler |
|
ไม่มี |
Window.removeEventListener |
|
PPB_MouseCursor
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
SetCursor |
|
SDL |
Element.style.cursor |
รองรับเคอร์เซอร์หุ้นชุดเดียวกัน
คุณสามารถใช้เคอร์เซอร์ที่กำหนดเองกับ URL(..) ได้
เคอร์เซอร์ที่กำหนดเองแบบไดนามิกทำได้ด้วย URI ข้อมูล
CSS3 รองรับการระบุฮอตสปอต |
PPB_MouseLock
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
LockMouse |
|
SDL |
Element.requestPointerLock |
|
UnlockMouse |
|
SDL |
Element.exitPointerLock |
|
PPB_OpenGLES2
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
หลายวิธี |
|
OpenGLES |
ใกล้กับ WebGL 1.0 ในฟังก์ชันการทำงาน |
|
|
x |
|
OffscreenCanvas |
|
PPB_TextInputController
วิธีการ PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
SetTextInputType |
|
GAP |
GAP - อาจมีการเติมโดย Input Method Editor API |
นักพัฒนาซอฟต์แวร์บางรายต้องการให้คำแนะนำในลักษณะนี้ หรือโดยเฉพาะอย่างยิ่ง ความสามารถในการสกัดกั้นและแสดงเหตุการณ์ / เอาต์พุต IME ในบรรทัดภายใน Canvas ได้ |
UpdateCaretPosition |
|
GAP |
GAP - อาจมีการเติมโดย Input Method Editor API |
https://www.w3.org/TR/ime-api/ |
CancelCompositionText |
|
GAP |
GAP - อาจมีการเติมโดย Input Method Editor API |
https://www.w3.org/TR/ime-api/ |
UpdateSurroundingText |
|
GAP |
GAP - อาจมีการเติมโดย Input Method Editor API |
https://www.w3.org/TR/ime-api/ |
PPB_URLLoader
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
สร้าง |
|
embind |
XMLHttpRequest(); ใหม่ |
|
เปิด |
|
embind |
XMLHttpRequest.open |
|
FollowRedirect |
|
embind |
Request.redirect |
|
|
|
GAP |
GAP - ไม่มีรายการที่เทียบเท่า XMLHTTPRequest |
|
GetUploadProgress |
|
embind |
"ความคืบหน้า" ของ XMLHttpRequest กิจกรรม |
|
|
|
GAP |
FetchObserver |
ยังไม่ได้ระบุหรือใช้งาน https://github.com/whatwg/fetch/issues/607 |
GetDownloadProgress |
|
embind |
"ความคืบหน้า" ของ XMLHttpRequest กิจกรรม |
|
|
|
GAP |
FetchObserver |
ยังไม่ได้ระบุหรือใช้งาน https://github.com/whatwg/fetch/issues/607 |
GetResponseInfo |
|
embind |
XMLHttpRequest.getAllResponseHeaders |
|
|
|
embind |
ดึงข้อมูลคำตอบ* |
|
ReadResponseBody |
|
embind |
XMLHttpRequest.response |
|
|
|
embind |
เนื้อความ* (คำตอบคือเนื้อหา) |
|
FinishStreamingToFile |
|
embind |
GAP - ไม่มีรายการที่เทียบเท่าโดยตรง |
ทั้ง XMLHttpRequest และ Fetch ถือว่าสตรีมไปยังหน่วยความจำแทนที่จะสตรีมไปยังพื้นที่เก็บข้อมูลโดยตรง |
ปิด |
|
embind |
XMLHttpRequest.abort |
|
|
|
GAP |
Fetch API: AbortSignal และ AbortController |
|
PPB_URLRequestInfo
วิธีการ PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
สร้าง |
|
embind |
XMLHttpRequest |
|
|
|
embind |
คำขอดึงข้อมูล |
|
SetProperty |
|
GAP |
GAP - ไม่มีบริการเทียบเท่าโดยตรงสำหรับ XMLHttpRequest |
XMLHttpRequest ไม่มีวิธีโดยตรงในการจำกัดตามคำขอหลังจากการเปลี่ยนเส้นทาง สตรีมไปยังไฟล์ ตั้งค่านโยบายผู้อ้างอิงหรือข้อมูลรับรอง |
|
|
embind |
ส่งคำขอ* |
|
AppendDataToBody |
|
embind |
XMLHttpRequest.send |
GAP - เนื้อหาทั้งสองต้องประกอบไปด้วยตัวเครื่องทั้งหมด ไม่ใช่เป็นส่วนๆ |
|
|
embind |
fetch(.., options:body) |
|
AppendFileToBody |
|
GAP |
Googlebot() อัปโหลดสตรีมมิง |
https://www.chromestatus.com/features/5274139738767360 |
|
|
ไม่มี |
<form> |
และอ่านด้วย FileReader และอัปโหลดก็ได้ แต่จะคล้ายๆ กับ AppendDataToBody มากกว่า |
PPB_URLResponseInfo
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
GetProperty |
|
embind |
XMLHttpRequest.getAllResponseHeaders + others |
|
|
|
embind |
ดึงข้อมูลคำตอบ* |
|
GetBodyAsFileRef |
|
embind |
ดึงข้อมูลการตอบกลับ (เนื้อหา) .blob() |
ถือว่าเลเยอร์พื้นที่เก็บข้อมูลเพิ่มประสิทธิภาพการโอน |
PPB_Var
วิธีการ PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
VarFromUtf8 |
|
embind |
TextDecoder.decode |
|
VarToUtf8 |
|
embind |
TextEncoder.encode |
|
VarFromResource |
|
ไม่มี |
ไม่มี |
|
VarToResource |
|
ไม่มี |
ไม่มี |
|
PPB_VarArray
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
ดาวน์โหลด |
|
embind |
อาร์เรย์[i] |
|
ตั้งค่า |
|
embind |
อาร์เรย์[i] = x |
|
GetLength |
|
embind |
Array.length |
|
SetLength |
|
embind |
Array.length = n |
|
PPB_VarArrayBuffer
วิธีการ PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
สร้าง |
|
embind |
ArrayBuffer(n) ใหม่ |
|
ByteLength |
|
embind |
ArrayBuffer.byteLength |
|
แผนที่ |
|
GAP |
GAP - ไม่มีค่าเทียบเท่าโดยตรง |
โมดูล Asm.js / Wasm ไม่สามารถแมปส่วนของ ArrayBuffer นอกเหนือจากกองหน่วยความจำเชิงเส้นเดียว
ในอนาคต ความทรงจำหลายรายการหรือการแมปความทรงจำอาจช่วยปรับปรุงเรื่องนี้ได้ |
ยกเลิกการแมป |
|
GAP |
GAP - ไม่มีรายการที่เทียบเท่าโดยตรง |
|
PPB_VarDictionary
วิธีการ PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
สร้าง |
|
embind |
{} |
|
ดาวน์โหลด |
|
embind |
<Object>[i] |
|
ตั้งค่า |
|
embind |
<Object>[i] = x |
|
ลบ |
|
embind |
ลบ <ออบเจ็กต์>[i] |
|
HasKey |
|
embind |
x ใน <Object> |
|
GetKeys |
|
embind |
for (k ใน <Object>) {} |
ไม่มีค่าเทียบเท่า แต่สิ่งนั้นเป็นสิ่งที่สร้างขึ้นได้ |
PPB_VideoDecoder
วิธีการ PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
สร้าง |
|
GAP |
GAP - จัดการด้วย WebCodecs API ที่เสนอโดยใช้ VideoDecoder() |
https://github.com/WICG/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-streaming-or-cloud-gaming |
เริ่มต้น |
|
GAP |
GAP - จะจัดการด้วย WebCodecs API ที่เสนอโดยใช้พารามิเตอร์การเริ่มต้น VideoDecoder() (VideoDecoderInitParameters) |
https://github.com/WICG/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-streaming-or-cloud-gaming |
Decode |
|
GAP |
GAP - จัดการด้วย WebCodecs API ที่เสนอโดยใช้ ReadableStream.pipeThrough(VideoDecoder) |
https://github.com/WICG/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-streaming-or-cloud-gaming |
GetPicture |
|
GAP |
GAP - จัดการด้วย WebCodecs API ที่เสนอโดยใช้ 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 |
RecyclePicture |
|
GAP |
GAP - จัดการด้วย WebCodecs API ที่เสนอ การออกแบบปัจจุบันจะรีไซเคิลรูปภาพโดยอัตโนมัติและดำเนินการถอดรหัสต่อไป |
https://github.com/WICG/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-streaming-or-cloud-gaming |
แบบยึดเพดานด้วยฐาน |
|
GAP |
GAP - จัดการด้วย WebCodecs API ที่เสนอ API นี้จะเรียกว่า Flush() แต่ยังคงมีการหารือกันอยู่ว่าจะเรียงลำดับอย่างไรในส่วนที่เกี่ยวข้องกับการถอดรหัสการเรียก |
https://github.com/WICG/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-streaming-or-cloud-gaming |
รีเซ็ต |
|
GAP |
GAP - จัดการด้วย WebCodecs API ที่เสนอโดยทำลายอินสแตนซ์ VideoDecoder แล้วสร้างอินสแตนซ์ใหม่ วิธีการนี้จะไม่มีประสิทธิภาพเท่ากับวิธีการรีเซ็ตโดยเฉพาะ แต่ความหมายของ API สำหรับการรีเซ็ต() ยังคงมีการกล่าวถึงอยู่ |
https://github.com/WICG/web-codecs/blob/master/explainer.md#example-of-decode-for-low-latency-live-streaming-or-cloud-gaming |
PPB_VideoEncoder
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
สร้าง |
|
GAP |
GAP - จัดการด้วย WebCodecs API ที่เสนอโดยใช้ VideoEncoder() |
|
GetSupportedProfiles |
|
GAP |
GAP (บางส่วน) - navigator.mediaCapabilities.encodingInfo() |
โดยต้องเลือกโปรไฟล์ที่รองรับทีละรายการ |
เริ่มต้น |
|
GAP |
GAP - ได้รับการจัดการด้วย WebCodecs API ที่เสนอโดยใช้พารามิเตอร์การเริ่มต้น VideoEncoder() |
|
GetFramesRequired |
|
GAP |
GAP - ไม่มีค่าเทียบเท่า |
ไม่น่าจะมีการแสดงพูลเฟรมที่ Web Codecs API ใช้ภายใน |
GetFrameCodedSize |
|
GAP |
GAP - ไม่มีค่าเทียบเท่า |
เป็นไปได้ยากที่ Web Codecs API ที่ใช้ภายในจะถูกเปิดเผย |
GetVideoFrame |
|
GAP |
GAP - จะจัดการด้วย WebCodecs API ที่เสนอโดยใช้ ReadableStream.pipeThrough(VideoEncoder) ซึ่งจะเข้ารหัสข้อมูลในสตรีมที่อ่านได้โดยตรงแทนที่จะจับเฟรมเดียวเพื่อเติมข้อมูลก่อนเข้ารหัส |
|
เข้ารหัส |
|
GAP |
GAP - จัดการด้วย WebCodecs API ที่เสนอโดยใช้ ReadableStream.pipeThrough(VideoEncoder) |
|
GetBitstreamBuffer |
|
GAP |
GAP - จัดการด้วย WebCodecs API ที่เสนอ การออกแบบปัจจุบันจะผ่านบัฟเฟอร์บิตสตรีมที่เข้ารหัสซึ่งส่งผ่านผ่านโดยอัตโนมัติ |
ปัจจุบัน WebCodecs API ถือว่าสามารถคัดลอกบัฟเฟอร์บิตสตรีมแทนการรวมไว้ด้วยกันได้ จึงไม่จำเป็นต้องรีไซเคิล |
RecycleBitstreamBuffer |
|
GAP |
GAP - จัดการด้วย WebCodecs API ที่เสนอ การออกแบบในปัจจุบันจะนำบัฟเฟอร์ใหม่ไปรีไซเคิลโดยอัตโนมัติเพื่อให้กระบวนการเข้ารหัสดำเนินต่อไป |
ข้อมูลนี้ไม่น่าจะมีการเปลี่ยนแปลงในอนาคตเนื่องจากผลกระทบด้านประสิทธิภาพมีน้อยลง |
RequestEncodingParametersChange |
|
GAP |
GAP - ได้รับการจัดการโดย Web Codecs API ที่เสนอ พารามิเตอร์บางตัวสามารถเปลี่ยนแปลงได้ทันที แต่บางรายการก็ต้องถอดโปรแกรมเปลี่ยนไฟล์ออก |
|
ปิด |
|
GAP |
GAP - จัดการด้วย WebCodecs API ที่เสนอโดยใช้ VideoEncoder.Close() |
|
PPB_VideoFrame
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
GetTimestamp |
|
GAP |
GAP - จัดการด้วย WebCodecs API ที่เสนอ |
|
SetTimestamp |
|
GAP |
GAP - ได้รับการจัดการด้วย WebCodecs API ที่เสนอ |
|
GetFormat |
|
GAP |
GAP - จัดการด้วย WebCodecs API ที่เสนอ |
|
GetSize |
|
GAP |
GAP - จัดการด้วย WebCodecs API ที่เสนอ |
|
GetDataBuffer |
|
GAP |
GAP - ได้รับการจัดการด้วย WebCodecs API ที่เสนอ |
|
GetDataBufferSize |
|
GAP |
GAP - ได้รับการจัดการด้วย WebCodecs API ที่เสนอ |
|
PPB_View
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
GetRect |
|
embind |
Element.getBoundingClientRect |
|
IsFullscreen |
|
embind |
Document.fullScreenEnabled |
เกี่ยวข้องกับเอกสาร ไม่ใช่เพียงองค์ประกอบเดียว |
IsVisible |
|
embind |
IntersectionObserver |
|
IsPageVisible |
|
embind |
document.visibilityState |
|
GetClipRect |
|
embind |
IntersectionObserver |
|
GetDeviceScale |
|
embind |
window.devicePixelRatio |
|
GetCSSScale |
|
embind |
<Element>.getBoundingClientRect().width / <Element>.offsetWidth |
|
GetScrollOffset |
|
embind |
<Element>.scrollTop / <Element>.scrollLeft |
|
PPB_WebSocket
วิธีการ PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
สร้าง |
|
GAP |
WebSocket.WebSocket |
|
เชื่อมต่อ |
|
GAP |
WebSocket.WebSocket(URL, ...)
WebSocket "เปิด" กิจกรรม |
|
ปิด |
|
GAP |
WebSocket.close |
|
ReceiveMessage |
|
GAP |
"ข้อความ" ของ WebSocket กิจกรรม
"ข้อผิดพลาด" WebSocket กิจกรรม
WebSocket "ปิด" กิจกรรม |
|
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 |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
กราฟิก 3 มิติของบริบทสูญหาย |
|
SDL |
Canvas "webglcontextlost" กิจกรรม |
|
วิธีการ PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
HandleInputEvent |
|
SDL |
Element.addEventListener |
|
PPP_Instance
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
DidCreate |
|
ไม่มี |
<Element>[key] |
การเข้าถึง DOM ทั่วไปช่วยให้คุณกรองแอตทริบิวต์ของแท็กได้ |
DidDestroy |
|
ไม่มี |
ไม่มี |
ไม่ได้ทริกเกอร์สําหรับ NaCl |
DidChangeView |
|
ไม่มี |
เหตุการณ์ "resize" ขององค์ประกอบ |
|
DidChangeFocus |
|
ไม่มี |
เหตุการณ์ "focus", "focusin", "focusout" ขององค์ประกอบ |
|
HandleDocumentLoad |
|
ไม่มี |
GAP - ไม่มีวิธีลงทะเบียนเป็นเครื่องจัดการประเภท MIME |
คุณสามารถตั้งค่าโมดูล NaCl ผ่านแอป + รายการไฟล์ Manifest เพื่อจัดการกับประเภท MIME บางประเภทได้ |
PPP_MessageHandler
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
HandleMessage |
|
embind |
"message" ใน MessagePort กิจกรรม
"ข้อความ" ในหน้าต่าง กิจกรรม |
|
HandleBlockingMessage |
|
ไม่มี |
GAP - ไม่มีรายการที่เทียบเท่าโดยตรง |
การซิงค์ข้อมูลที่คล้ายกันจะทำได้จากเทรดหลักด้วย Atomics.Wait เราได้เพิ่มตัวเลือกนี้เพื่อรองรับการจําลอง API ของปลั๊กอินแบบซิงค์ |
PPP_Messaging
วิธีการ PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
HandleMessage |
|
embind |
"message" ใน MessagePort กิจกรรม
"ข้อความ" ในหน้าต่าง กิจกรรม |
|
PPP_MouseLock
วิธีการ PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
MouseLockLost |
|
SDL |
เหตุการณ์ "pointerlockchange", "pointerlockerror" ขององค์ประกอบ |
|
PPAPI (แอป)
PPB_HostResolver
วิธีการ PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
สร้าง |
x |
GAP |
GAP (บางส่วน) - ไม่มีรายการที่เทียบเท่าโดยตรง |
|
แก้ปัญหา |
x |
GAP |
GAP (บางส่วน) - ไม่มีรายการที่เทียบเท่าโดยตรง |
|
GetCanonicalName |
x |
GAP |
GAP (บางส่วน) - ไม่มีค่าเทียบเท่าโดยตรง |
|
GetNetAddressCount |
x |
GAP |
GAP (บางส่วน) - ไม่มีค่าเทียบเท่าโดยตรง |
|
GetNetAddress |
x |
GAP |
GAP (บางส่วน) - ไม่มีรายการที่เทียบเท่าโดยตรง |
|
PPB_NetAddress
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
CreateFromIPv4Address |
x |
GAP |
GAP (บางส่วน) - ไม่มีรายการที่เทียบเท่าโดยตรง |
|
CreateFromIPv6Address |
x |
GAP |
GAP (บางส่วน) - ไม่มีค่าเทียบเท่าโดยตรง |
|
GetFamily |
x |
GAP |
GAP (บางส่วน) - ไม่มีค่าเทียบเท่าโดยตรง |
|
DescribeAsString |
x |
GAP |
GAP (บางส่วน) - ไม่มีรายการที่เทียบเท่าโดยตรง |
|
DescribeAsIPv4Address |
x |
GAP |
GAP (บางส่วน) - ไม่มีค่าเทียบเท่าโดยตรง |
|
DescribeAsIPv6Address |
x |
GAP |
GAP (บางส่วน) - ไม่มีค่าเทียบเท่าโดยตรง |
|
PPB_NetworkList
เมธอด PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
GetCount |
x |
GAP |
GAP - ไม่มีค่าเทียบเท่าโดยตรง |
|
GetName |
x |
GAP |
GAP - ไม่มีรายการที่เทียบเท่าโดยตรง |
|
GetType |
x |
GAP |
GAP - ไม่มีรายการที่เทียบเท่าโดยตรง |
|
GetState |
x |
GAP |
GAP - ไม่มีรายการที่เทียบเท่าโดยตรง |
|
GetIpAddress |
x |
GAP |
GAP - ไม่มีค่าเทียบเท่าโดยตรง |
|
GetDisplayName |
x |
GAP |
GAP - ไม่มีรายการที่เทียบเท่าโดยตรง |
|
GetMTU |
x |
GAP |
GAP - ไม่มีค่าเทียบเท่าโดยตรง |
|
PPB_NetworkMonitor
วิธีการ PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
สร้าง |
x |
GAP |
GAP - ไม่มีค่าเทียบเท่าโดยตรง |
|
UpdateNetworkList |
x |
GAP |
GAP - ไม่มีค่าเทียบเท่าโดยตรง |
|
PPB_NetworkProxy
วิธีการ PPAPI |
คาดว่าเป็นเทรด |
เอ็มสคริปต์ |
Web API |
ข้อจำกัด |
GetProxyForURL |
x |
GAP |
GAP - ไม่มีรายการที่เทียบเท่าโดยตรง |
|
PPB_TCPSocket และ PPB_UDPSocket
ไม่มีการแมปแบบ 1:1 โดยตรงสำหรับการย้ายข้อมูล แต่เราได้สรุปบางส่วน
สถานการณ์ของผู้ใช้ด้านล่างนี้และเส้นทางการย้ายข้อมูลที่แนะนำ
กรณีการใช้งาน |
คำแนะนำ |
การแชร์หน้าจอ |
getDisplayMedia และ
WebRTC (
การสาธิต)
|
กำลังโหลดจาก
เซิร์ฟเวอร์ภายในเพื่อลดการใช้แบนด์วิดท์ |
XHR, Fetch, Streams, Service Worker, API แคช |
กำลังโหลดจาก
อินสแตนซ์ในเครื่องของเว็บแอป / การเชื่อมต่อกับอินสแตนซ์ในเครื่องของเว็บแอป |
WebRTC |
แชท |
WebSocket*
|
เรียลไทม์
การสื่อสารด้วยเสียง/วิดีโอ |
WebRTC |
การทำงานร่วมกัน |
WebSocket*
|
เกมผู้เล่นหลายคนแบบเรียลไทม์ |
WebTransport**
เว้นแต่จะเป็น P2P ในกรณีนี้จะเป็น WebRTC (หรือ WebTransport ผ่าน RTCIceTransport)
|
เรียลไทม์
สตรีมมิงแบบอินเทอร์แอกทีฟ |
WebTransport**
|
การสื่อสารกับเซิร์ฟเวอร์เดิม |
พร็อกซีเซิร์ฟเวอร์หรือมิดเดิลแวร์ที่จะทำการแปลงโปรโตคอล ข้อเสนอแนะสำหรับ
bit.ly/network-api-gaps
|
*: หรือ WebTransport ในอนาคต
**: ดูความพร้อมให้บริการได้ที่ chromestatus