diff --git a/audio-worklet/basic/audio-worklet-node-options/index.html b/audio-worklet/basic/audio-worklet-node-options/index.html
index 6e084dcd6..71dce786e 100644
--- a/audio-worklet/basic/audio-worklet-node-options/index.html
+++ b/audio-worklet/basic/audio-worklet-node-options/index.html
@@ -134,7 +134,7 @@
Using Options for AudioWorkletNode
2010-2024 Chromium authors
- (60e8630)
+ (b817c71)
diff --git a/audio-worklet/basic/bit-crusher/index.html b/audio-worklet/basic/bit-crusher/index.html
index b244b1322..4fbbbe77c 100644
--- a/audio-worklet/basic/bit-crusher/index.html
+++ b/audio-worklet/basic/bit-crusher/index.html
@@ -118,7 +118,7 @@ BitCrusher with AudioParam
2010-2024 Chromium authors
- (60e8630)
+ (b817c71)
diff --git a/audio-worklet/basic/handling-errors/index.html b/audio-worklet/basic/handling-errors/index.html
index 7a6bfea48..b5d9ee310 100644
--- a/audio-worklet/basic/handling-errors/index.html
+++ b/audio-worklet/basic/handling-errors/index.html
@@ -118,7 +118,7 @@ Handling Errors
2010-2024 Chromium authors
- (60e8630)
+ (b817c71)
diff --git a/audio-worklet/basic/hello-audio-worklet/index.html b/audio-worklet/basic/hello-audio-worklet/index.html
index 1b74c8f4f..36e01a64a 100644
--- a/audio-worklet/basic/hello-audio-worklet/index.html
+++ b/audio-worklet/basic/hello-audio-worklet/index.html
@@ -117,7 +117,7 @@ Hello Audio Worklet!
2010-2024 Chromium authors
- (60e8630)
+ (b817c71)
diff --git a/audio-worklet/basic/message-port/index.html b/audio-worklet/basic/message-port/index.html
index d18770d7c..4fb9b5c80 100644
--- a/audio-worklet/basic/message-port/index.html
+++ b/audio-worklet/basic/message-port/index.html
@@ -117,7 +117,7 @@ MessagePort
2010-2024 Chromium authors
- (60e8630)
+ (b817c71)
diff --git a/audio-worklet/basic/noise-generator/index.html b/audio-worklet/basic/noise-generator/index.html
index ced27db04..873348d9b 100644
--- a/audio-worklet/basic/noise-generator/index.html
+++ b/audio-worklet/basic/noise-generator/index.html
@@ -118,7 +118,7 @@ Noise generator with modulation
2010-2024 Chromium authors
- (60e8630)
+ (b817c71)
diff --git a/audio-worklet/basic/one-pole-filter/index.html b/audio-worklet/basic/one-pole-filter/index.html
index af3c67d8f..8cf01dad3 100644
--- a/audio-worklet/basic/one-pole-filter/index.html
+++ b/audio-worklet/basic/one-pole-filter/index.html
@@ -118,7 +118,7 @@ One Pole Filter
2010-2024 Chromium authors
- (60e8630)
+ (b817c71)
diff --git a/audio-worklet/basic/volume-meter/index.html b/audio-worklet/basic/volume-meter/index.html
index 8bb87bbc6..7774726f7 100644
--- a/audio-worklet/basic/volume-meter/index.html
+++ b/audio-worklet/basic/volume-meter/index.html
@@ -120,7 +120,7 @@ Volume Meter
2010-2024 Chromium authors
- (60e8630)
+ (b817c71)
diff --git a/audio-worklet/design-pattern/shared-buffer/index.html b/audio-worklet/design-pattern/shared-buffer/index.html
index 191b55d4d..ae476ff92 100644
--- a/audio-worklet/design-pattern/shared-buffer/index.html
+++ b/audio-worklet/design-pattern/shared-buffer/index.html
@@ -122,7 +122,7 @@ AudioWorklet, SharedArrayBuffer, and Worker
2010-2024 Chromium authors
- (60e8630)
+ (b817c71)
diff --git a/audio-worklet/design-pattern/wasm-ring-buffer/index.html b/audio-worklet/design-pattern/wasm-ring-buffer/index.html
index 7b1ad9b7c..938c624ed 100644
--- a/audio-worklet/design-pattern/wasm-ring-buffer/index.html
+++ b/audio-worklet/design-pattern/wasm-ring-buffer/index.html
@@ -119,7 +119,7 @@ Ring Buffer in AudioWorkletProcessor
2010-2024 Chromium authors
- (60e8630)
+ (b817c71)
diff --git a/audio-worklet/design-pattern/wasm-supersaw/index.html b/audio-worklet/design-pattern/wasm-supersaw/index.html
index 9d20b7e34..ea07cdebe 100644
--- a/audio-worklet/design-pattern/wasm-supersaw/index.html
+++ b/audio-worklet/design-pattern/wasm-supersaw/index.html
@@ -130,7 +130,7 @@ WebAssembly Supersaw
2010-2024 Chromium authors
- (60e8630)
+ (b817c71)
diff --git a/audio-worklet/design-pattern/wasm/index.html b/audio-worklet/design-pattern/wasm/index.html
index 5eb75cb01..003671e81 100644
--- a/audio-worklet/design-pattern/wasm/index.html
+++ b/audio-worklet/design-pattern/wasm/index.html
@@ -119,7 +119,7 @@ Audio Worklet and WebAssembly
2010-2024 Chromium authors
- (60e8630)
+ (b817c71)
diff --git a/audio-worklet/free-queue/examples/simple-passthrough/index.html b/audio-worklet/free-queue/examples/simple-passthrough/index.html
index 74c24a55a..0ae34a322 100644
--- a/audio-worklet/free-queue/examples/simple-passthrough/index.html
+++ b/audio-worklet/free-queue/examples/simple-passthrough/index.html
@@ -122,7 +122,7 @@ Simple Passthrough Example
2010-2024 Chromium authors
- (60e8630)
+ (b817c71)
diff --git a/audio-worklet/index.html b/audio-worklet/index.html
index b44edee4c..9bd7a6c7b 100644
--- a/audio-worklet/index.html
+++ b/audio-worklet/index.html
@@ -270,7 +270,7 @@
2010-2024 Chromium authors
- (60e8630)
+ (b817c71)
diff --git a/audio-worklet/migration/spn-recorder/index.html b/audio-worklet/migration/spn-recorder/index.html
index e118d0b26..a0aa8441e 100644
--- a/audio-worklet/migration/spn-recorder/index.html
+++ b/audio-worklet/migration/spn-recorder/index.html
@@ -158,7 +158,7 @@ ScriptProcessorNode Audio Recorder
2010-2024 Chromium authors
- (60e8630)
+ (b817c71)
diff --git a/audio-worklet/migration/worklet-recorder/index.html b/audio-worklet/migration/worklet-recorder/index.html
index 2c2e433be..8df189a09 100644
--- a/audio-worklet/migration/worklet-recorder/index.html
+++ b/audio-worklet/migration/worklet-recorder/index.html
@@ -158,7 +158,7 @@ AudioWorklet Recorder
2010-2024 Chromium authors
- (60e8630)
+ (b817c71)
diff --git a/demos/mld-drum-sampler/index.html b/demos/mld-drum-sampler/index.html
index cb05d07b1..c5e895ed4 100644
--- a/demos/mld-drum-sampler/index.html
+++ b/demos/mld-drum-sampler/index.html
@@ -116,7 +116,7 @@ Web Audio API 드럼머신 만들기
2010-2024 Chromium authors
- (60e8630)
+ (b817c71)
diff --git a/experiments/index.html b/experiments/index.html
index ecbb9fa0d..0ce64c018 100644
--- a/experiments/index.html
+++ b/experiments/index.html
@@ -113,7 +113,7 @@
2010-2024 Chromium authors
- (60e8630)
+ (b817c71)
diff --git a/experiments/webgpuaudio/index.html b/experiments/webgpuaudio/index.html
index 50b700e84..c12104b4f 100644
--- a/experiments/webgpuaudio/index.html
+++ b/experiments/webgpuaudio/index.html
@@ -115,7 +115,7 @@ WebGPUAudio Experiment
2010-2024 Chromium authors
- (60e8630)
+ (b817c71)
diff --git a/index.html b/index.html
index e225c61aa..3775d4d04 100644
--- a/index.html
+++ b/index.html
@@ -258,7 +258,7 @@
2010-2024 Chromium authors
- (60e8630)
+ (b817c71)
diff --git a/tests/index.html b/tests/index.html
index d48e6ba87..3126b84c3 100644
--- a/tests/index.html
+++ b/tests/index.html
@@ -121,7 +121,7 @@
2010-2024 Chromium authors
- (60e8630)
+ (b817c71)
diff --git a/tests/pannernode/index.html b/tests/pannernode/index.html
index 1fcdd95d7..fef2c723a 100644
--- a/tests/pannernode/index.html
+++ b/tests/pannernode/index.html
@@ -131,7 +131,7 @@ Glitches in PannerNode
2010-2024 Chromium authors
- (60e8630)
+ (b817c71)
diff --git a/tests/playwright/pages/audioworklet-addmodule-resolution.html b/tests/playwright/pages/audioworklet-addmodule-resolution.html
new file mode 100644
index 000000000..d199502e6
--- /dev/null
+++ b/tests/playwright/pages/audioworklet-addmodule-resolution.html
@@ -0,0 +1,46 @@
+
+
+
+
+
+ AudioWorklet Add Module Resolution
+
+
+ Audioworklet Add Module Resolution
+ Test if browser doesn't crash upon addModule() call in realtime and offline context construction
+ Port of audioworklet-addmodule-resolution.https.html
+
+
+
+
\ No newline at end of file
diff --git a/tests/playwright/pages/audioworklet-addmodule-resolution/index.html b/tests/playwright/pages/audioworklet-addmodule-resolution/index.html
new file mode 100644
index 000000000..d199502e6
--- /dev/null
+++ b/tests/playwright/pages/audioworklet-addmodule-resolution/index.html
@@ -0,0 +1,46 @@
+
+
+
+
+
+ AudioWorklet Add Module Resolution
+
+
+ Audioworklet Add Module Resolution
+ Test if browser doesn't crash upon addModule() call in realtime and offline context construction
+ Port of audioworklet-addmodule-resolution.https.html
+
+
+
+
\ No newline at end of file
diff --git a/tests/playwright/pages/offline-sine.html b/tests/playwright/pages/offline-sine.html
new file mode 100644
index 000000000..cf4105f66
--- /dev/null
+++ b/tests/playwright/pages/offline-sine.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+ Offline Sine Test
+
+
+ Offline Sine Test
+ Write 441Hz sine wave for 1 second to AudioBuffer using OfflineAudioContext, sampleRate: 44100
+
+
+
+
\ No newline at end of file
diff --git a/tests/playwright/pages/offline-sine/index.html b/tests/playwright/pages/offline-sine/index.html
new file mode 100644
index 000000000..cf4105f66
--- /dev/null
+++ b/tests/playwright/pages/offline-sine/index.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+ Offline Sine Test
+
+
+ Offline Sine Test
+ Write 441Hz sine wave for 1 second to AudioBuffer using OfflineAudioContext, sampleRate: 44100
+
+
+
+
\ No newline at end of file
diff --git a/tests/playwright/pages/processors/dummy-processor.js b/tests/playwright/pages/processors/dummy-processor.js
new file mode 100644
index 000000000..fadd1da6c
--- /dev/null
+++ b/tests/playwright/pages/processors/dummy-processor.js
@@ -0,0 +1,18 @@
+/**
+ * @class DummyProcessor
+ * @extends AudioWorkletProcessor
+ *
+ * This processor class demonstrates the bare-bone structure of the processor.
+ */
+class DummyProcessor extends AudioWorkletProcessor {
+ constructor() {
+ super();
+ }
+
+ process(inputs, outputs, parameters) {
+ // Doesn't do anything here.
+ return true;
+ }
+ }
+
+ registerProcessor('dummy', DummyProcessor);
\ No newline at end of file
diff --git a/tests/playwright/pages/realtime-sine.html b/tests/playwright/pages/realtime-sine.html
new file mode 100644
index 000000000..8cf97c48c
--- /dev/null
+++ b/tests/playwright/pages/realtime-sine.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+ Hello Sine Test
+
+
+ Realtime Sine Test
+ Play 440Hz sine wave for 1 second, 880Hz for 1 second, then stop
+
+
+
+
+
\ No newline at end of file
diff --git a/tests/playwright/pages/realtime-sine/index.html b/tests/playwright/pages/realtime-sine/index.html
new file mode 100644
index 000000000..8cf97c48c
--- /dev/null
+++ b/tests/playwright/pages/realtime-sine/index.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+ Hello Sine Test
+
+
+ Realtime Sine Test
+ Play 440Hz sine wave for 1 second, 880Hz for 1 second, then stop
+
+
+
+
+
\ No newline at end of file
diff --git a/tests/resampler/index.html b/tests/resampler/index.html
index 9a11c12c3..32fd38b81 100644
--- a/tests/resampler/index.html
+++ b/tests/resampler/index.html
@@ -123,7 +123,7 @@ Resampler Verificaiton
2010-2024 Chromium authors
- (60e8630)
+ (b817c71)
diff --git a/tests/setsinkid/index.html b/tests/setsinkid/index.html
index 402d0ba69..09c581337 100644
--- a/tests/setsinkid/index.html
+++ b/tests/setsinkid/index.html
@@ -122,7 +122,7 @@ AudioContext.setSinkId(): Manual Test
2010-2024 Chromium authors
- (60e8630)
+ (b817c71)