From ScriptProcessor
// script.js
button.onclick = async () => {
const microphoneStream = await navigator.mediaDevices.getUserMedia({
audio: true,
});| $ git diff --no-index chrome-webgpureport.txt safari-webgpureport.txt | |
| diff --git a/chrome-webgpureport.txt b/safari-webgpureport.txt | |
| index 67fffd7..3b6ed7c 100644 | |
| --- a/chrome-webgpureport.txt | |
| +++ b/safari-webgpureport.txt | |
| @@ -2,9 +2,9 @@ WebGPU Report | |
| adapter info: | |
| ------------- | |
| -architecture common-3 |
| function connectDevice(device) { | |
| return device.connectGATT() | |
| .then(...) | |
| } | |
| // Simple | |
| permissions.query({ name: 'bluetooth' }) | |
| .then(permission => { | |
| if (permission.state != 'granted') { |
| Start at https://www.savethedate.foo/ | |
| --------- | |
| Puzzle #1 | |
| https://github.com/kzuse201/trailhead/blob/master/idareyou.js | |
| -28.092472,-52.419667 | |
| 5 |
| chrome.action.onClicked.addListener(async () => { | |
| const adapter = await navigator.gpu.requestAdapter(); | |
| const device = await adapter.requestDevice(); | |
| const canvas = new OffscreenCanvas(256, 256); | |
| const context = canvas.getContext("webgpu"); | |
| const format = navigator.gpu.getPreferredCanvasFormat(); | |
| context.configure({ device, format }); | |
| const code = ` |
// script.js
button.onclick = async () => {
const microphoneStream = await navigator.mediaDevices.getUserMedia({
audio: true,
});| // Promise.prototype.finally | |
| fetch('http://foo.bar') | |
| .then(response => console.log(response)) | |
| .catch(error => console.log(error)) | |
| .finally(_ => console.log('finally')) | |
| // try/catch/finally with Async/Await |
| const fs = require("fs"); | |
| const LEGACY_UUIDS = { | |
| "0x180F": "battery_service", | |
| "0x2900": "gatt.characteristic_extended_properties", | |
| "0x2901": "gatt.characteristic_user_description", | |
| "0x2902": "gatt.client_characteristic_configuration", | |
| "0x2903": "gatt.server_characteristic_configuration", | |
| "0x2904": "gatt.characteristic_presentation_format", | |
| "0x2905": "gatt.characteristic_aggregate_format", |
| 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) | |
| 0x09, 0x02, // Usage (Mouse) | |
| 0xA1, 0x01, // Collection (Application) | |
| 0x09, 0x01, // Usage (Pointer) | |
| 0xA1, 0x00, // Collection (Physical) | |
| 0x05, 0x09, // Usage Page (Button) | |
| 0x19, 0x01, // Usage Minimum (0x01) | |
| 0x29, 0x03, // Usage Maximum (0x03) | |
| 0x15, 0x00, // Logical Minimum (0) | |
| 0x25, 0x01, // Logical Maximum (1) |
| diff --git a/third_party/blink/renderer/modules/webgpu/gpu_buffer.cc b/third_party/blink/renderer/modules/webgpu/gpu_buffer.cc | |
| index 9658796f2508..37a106c741f6 100644 | |
| --- a/third_party/blink/renderer/modules/webgpu/gpu_buffer.cc | |
| +++ b/third_party/blink/renderer/modules/webgpu/gpu_buffer.cc | |
| @ -127,6 +131,25 @@ void GPUBuffer::OnMapAsyncCallback(ScriptPromiseResolver* resolver, | |
| WTF::ArrayBufferContents::SharingType::kNotShared); | |
| mapped_buffer_ = DOMArrayBuffer::Create(contents); | |
| + | |
| + auto* script_state = resolver->GetScriptState(); |