test_serviceworker_interfaces.js (30418B)
1 /* eslint-disable mozilla/no-comparison-or-assignment-inside-ok */ 2 3 importScripts("../../tests/mochitest/general/interface_exposure_checker.js"); 4 5 // This is a list of all interfaces that are exposed to workers. 6 // Please only add things to this list with great care and proper review 7 // from the associated module peers. 8 9 // This file lists global interfaces we want exposed and verifies they 10 // are what we intend. Each entry in the arrays below can either be a 11 // simple string with the interface name, or an object with a 'name' 12 // property giving the interface name as a string, and additional 13 // properties which qualify the exposure of that interface. For example: 14 // 15 // [ 16 // "AGlobalInterface", // secure context only 17 // { name: "DesktopOnlyThing", desktop: true }, 18 // { name: "DisabledEverywhere", disabled: true }, 19 // { name: "ExperimentalThing", release: false }, 20 // { name: "ReallyExperimentalThing", nightly: true }, 21 // ]; 22 // 23 // Note that the items are alphabetically sorted. This is a requirement. 24 // See createInterfaceMap() in interface_exposure_checker.js for a complete 25 // list of properties. 26 27 // IMPORTANT: Do not change this list without review from 28 // a JavaScript Engine peer! 29 let wasmGlobalEntry = { 30 name: "WebAssembly", 31 insecureContext: true, 32 disabled: !getJSTestingFunctions().wasmIsSupportedByHardware(), 33 }; 34 let wasmGlobalInterfaces = [ 35 { name: "CompileError", insecureContext: true }, 36 { name: "Exception", insecureContext: true }, 37 { name: "Function", insecureContext: true, nightly: true }, 38 { name: "Global", insecureContext: true }, 39 { name: "Instance", insecureContext: true }, 40 { name: "JSTag", insecureContext: true }, 41 { name: "LinkError", insecureContext: true }, 42 { name: "Memory", insecureContext: true }, 43 { name: "Module", insecureContext: true }, 44 { name: "RuntimeError", insecureContext: true }, 45 { name: "Table", insecureContext: true }, 46 { name: "Tag", insecureContext: true }, 47 { name: "compile", insecureContext: true }, 48 { name: "compileStreaming", insecureContext: true }, 49 { name: "instantiate", insecureContext: true }, 50 { name: "instantiateStreaming", insecureContext: true }, 51 { name: "validate", insecureContext: true }, 52 ]; 53 // IMPORTANT: Do not change this list without review from 54 // a JavaScript Engine peer! 55 let ecmaGlobals = [ 56 "AggregateError", 57 "Array", 58 "ArrayBuffer", 59 "AsyncDisposableStack", 60 "Atomics", 61 "BigInt", 62 "BigInt64Array", 63 "BigUint64Array", 64 "Boolean", 65 "DataView", 66 "Date", 67 "DisposableStack", 68 "Error", 69 "EvalError", 70 "FinalizationRegistry", 71 "Float16Array", 72 "Float32Array", 73 "Float64Array", 74 "Function", 75 "Infinity", 76 "Int16Array", 77 "Int32Array", 78 "Int8Array", 79 "InternalError", 80 "Intl", 81 "Iterator", 82 "JSON", 83 "Map", 84 "Math", 85 "NaN", 86 "Number", 87 "Object", 88 "Promise", 89 "Proxy", 90 "RangeError", 91 "ReferenceError", 92 "Reflect", 93 "RegExp", 94 "Set", 95 { name: "SharedArrayBuffer", crossOriginIsolated: true }, 96 "String", 97 "SuppressedError", 98 "Symbol", 99 "SyntaxError", 100 "Temporal", 101 "TypeError", 102 "URIError", 103 "Uint16Array", 104 "Uint32Array", 105 "Uint8Array", 106 "Uint8ClampedArray", 107 "WeakMap", 108 "WeakRef", 109 "WeakSet", 110 wasmGlobalEntry, 111 "decodeURI", 112 "decodeURIComponent", 113 "encodeURI", 114 "encodeURIComponent", 115 "escape", 116 "eval", 117 "globalThis", 118 "isFinite", 119 "isNaN", 120 "parseFloat", 121 "parseInt", 122 "undefined", 123 "unescape", 124 ]; 125 // IMPORTANT: Do not change the list above without review from 126 // a JavaScript Engine peer! 127 128 // IMPORTANT: Do not change the list below without review from a DOM peer! 129 let interfaceNamesInGlobalScope = [ 130 // IMPORTANT: Do not change this list without review from a DOM peer! 131 "AbortController", 132 // IMPORTANT: Do not change this list without review from a DOM peer! 133 "AbortSignal", 134 // IMPORTANT: Do not change this list without review from a DOM peer! 135 "Blob", 136 // IMPORTANT: Do not change this list without review from a DOM peer! 137 "BroadcastChannel", 138 // IMPORTANT: Do not change this list without review from a DOM peer! 139 "ByteLengthQueuingStrategy", 140 // IMPORTANT: Do not change this list without review from a DOM peer! 141 "Cache", 142 // IMPORTANT: Do not change this list without review from a DOM peer! 143 "CacheStorage", 144 // IMPORTANT: Do not change this list without review from a DOM peer! 145 "CanvasGradient", 146 // IMPORTANT: Do not change this list without review from a DOM peer! 147 "CanvasPattern", 148 // IMPORTANT: Do not change this list without review from a DOM peer! 149 "Client", 150 // IMPORTANT: Do not change this list without review from a DOM peer! 151 "Clients", 152 // IMPORTANT: Do not change this list without review from a DOM peer! 153 "CloseEvent", 154 // IMPORTANT: Do not change this list without review from a DOM peer! 155 "CompressionStream", 156 // IMPORTANT: Do not change this list without review from a DOM peer! 157 "CookieStore", 158 // IMPORTANT: Do not change this list without review from a DOM peer! 159 "CookieStoreManager", 160 // IMPORTANT: Do not change this list without review from a DOM peer! 161 "CountQueuingStrategy", 162 // IMPORTANT: Do not change this list without review from a DOM peer! 163 "Crypto", 164 // IMPORTANT: Do not change this list without review from a DOM peer! 165 "CryptoKey", 166 // IMPORTANT: Do not change this list without review from a DOM peer! 167 "CustomEvent", 168 // IMPORTANT: Do not change this list without review from a DOM peer! 169 "DOMException", 170 // IMPORTANT: Do not change this list without review from a DOM peer! 171 "DOMMatrix", 172 // IMPORTANT: Do not change this list without review from a DOM peer! 173 "DOMMatrixReadOnly", 174 // IMPORTANT: Do not change this list without review from a DOM peer! 175 "DOMPoint", 176 // IMPORTANT: Do not change this list without review from a DOM peer! 177 "DOMPointReadOnly", 178 // IMPORTANT: Do not change this list without review from a DOM peer! 179 "DOMQuad", 180 // IMPORTANT: Do not change this list without review from a DOM peer! 181 "DOMRect", 182 // IMPORTANT: Do not change this list without review from a DOM peer! 183 "DOMRectReadOnly", 184 // IMPORTANT: Do not change this list without review from a DOM peer! 185 "DOMStringList", 186 // IMPORTANT: Do not change this list without review from a DOM peer! 187 "DecompressionStream", 188 // IMPORTANT: Do not change this list without review from a DOM peer! 189 "Directory", 190 // IMPORTANT: Do not change this list without review from a DOM peer! 191 "ErrorEvent", 192 // IMPORTANT: Do not change this list without review from a DOM peer! 193 "Event", 194 // IMPORTANT: Do not change this list without review from a DOM peer! 195 "EventSource", 196 // IMPORTANT: Do not change this list without review from a DOM peer! 197 "EventTarget", 198 // IMPORTANT: Do not change this list without review from a DOM peer! 199 "ExtendableCookieChangeEvent", 200 // IMPORTANT: Do not change this list without review from a DOM peer! 201 "ExtendableEvent", 202 // IMPORTANT: Do not change this list without review from a DOM peer! 203 "ExtendableMessageEvent", 204 // IMPORTANT: Do not change this list without review from a DOM peer! 205 "FetchEvent", 206 // IMPORTANT: Do not change this list without review from a DOM peer! 207 "File", 208 // IMPORTANT: Do not change this list without review from a DOM peer! 209 "FileList", 210 // IMPORTANT: Do not change this list without review from a DOM peer! 211 "FileReader", 212 // IMPORTANT: Do not change this list without review from a DOM peer! 213 { name: "FileSystemDirectoryHandle" }, 214 // IMPORTANT: Do not change this list without review from a DOM peer! 215 { name: "FileSystemFileHandle" }, 216 // IMPORTANT: Do not change this list without review from a DOM peer! 217 { name: "FileSystemHandle" }, 218 // IMPORTANT: Do not change this list without review from a DOM peer! 219 { name: "FileSystemWritableFileStream" }, 220 // IMPORTANT: Do not change this list without review from a DOM peer! 221 "FontFace", 222 // IMPORTANT: Do not change this list without review from a DOM peer! 223 "FontFaceSet", 224 // IMPORTANT: Do not change this list without review from a DOM peer! 225 "FontFaceSetLoadEvent", 226 // IMPORTANT: Do not change this list without review from a DOM peer! 227 "FormData", 228 // IMPORTANT: Do not change this list without review from a DOM peer! 229 { name: "GPU", earlyBetaOrEarlier: true }, 230 { name: "GPU", windows: true }, 231 { name: "GPU", mac: true, aarch64: true }, 232 // IMPORTANT: Do not change this list without review from a DOM peer! 233 { name: "GPUAdapter", earlyBetaOrEarlier: true }, 234 { name: "GPUAdapter", windows: true }, 235 { name: "GPUAdapter", mac: true, aarch64: true }, 236 // IMPORTANT: Do not change this list without review from a DOM peer! 237 { name: "GPUAdapterInfo", earlyBetaOrEarlier: true }, 238 { name: "GPUAdapterInfo", windows: true }, 239 { name: "GPUAdapterInfo", mac: true, aarch64: true }, 240 // IMPORTANT: Do not change this list without review from a DOM peer! 241 { name: "GPUBindGroup", earlyBetaOrEarlier: true }, 242 { name: "GPUBindGroup", windows: true }, 243 { name: "GPUBindGroup", mac: true, aarch64: true }, 244 // IMPORTANT: Do not change this list without review from a DOM peer! 245 { name: "GPUBindGroupLayout", earlyBetaOrEarlier: true }, 246 { name: "GPUBindGroupLayout", windows: true }, 247 { name: "GPUBindGroupLayout", mac: true, aarch64: true }, 248 // IMPORTANT: Do not change this list without review from a DOM peer! 249 { name: "GPUBuffer", earlyBetaOrEarlier: true }, 250 { name: "GPUBuffer", windows: true }, 251 { name: "GPUBuffer", mac: true, aarch64: true }, 252 // IMPORTANT: Do not change this list without review from a DOM peer! 253 { name: "GPUBufferUsage", earlyBetaOrEarlier: true }, 254 { name: "GPUBufferUsage", windows: true }, 255 { name: "GPUBufferUsage", mac: true, aarch64: true }, 256 // IMPORTANT: Do not change this list without review from a DOM peer! 257 { name: "GPUCanvasContext", earlyBetaOrEarlier: true }, 258 { name: "GPUCanvasContext", windows: true }, 259 { name: "GPUCanvasContext", mac: true, aarch64: true }, 260 // IMPORTANT: Do not change this list without review from a DOM peer! 261 { name: "GPUColorWrite", earlyBetaOrEarlier: true }, 262 { name: "GPUColorWrite", windows: true }, 263 { name: "GPUColorWrite", mac: true, aarch64: true }, 264 // IMPORTANT: Do not change this list without review from a DOM peer! 265 { name: "GPUCommandBuffer", earlyBetaOrEarlier: true }, 266 { name: "GPUCommandBuffer", windows: true }, 267 { name: "GPUCommandBuffer", mac: true, aarch64: true }, 268 // IMPORTANT: Do not change this list without review from a DOM peer! 269 { name: "GPUCommandEncoder", earlyBetaOrEarlier: true }, 270 { name: "GPUCommandEncoder", windows: true }, 271 { name: "GPUCommandEncoder", mac: true, aarch64: true }, 272 // IMPORTANT: Do not change this list without review from a DOM peer! 273 { name: "GPUCompilationInfo", earlyBetaOrEarlier: true }, 274 { name: "GPUCompilationInfo", windows: true }, 275 { name: "GPUCompilationInfo", mac: true, aarch64: true }, 276 // IMPORTANT: Do not change this list without review from a DOM peer! 277 { name: "GPUCompilationMessage", earlyBetaOrEarlier: true }, 278 { name: "GPUCompilationMessage", windows: true }, 279 { name: "GPUCompilationMessage", mac: true, aarch64: true }, 280 // IMPORTANT: Do not change this list without review from a DOM peer! 281 { name: "GPUComputePassEncoder", earlyBetaOrEarlier: true }, 282 { name: "GPUComputePassEncoder", windows: true }, 283 { name: "GPUComputePassEncoder", mac: true, aarch64: true }, 284 // IMPORTANT: Do not change this list without review from a DOM peer! 285 { name: "GPUComputePipeline", earlyBetaOrEarlier: true }, 286 { name: "GPUComputePipeline", windows: true }, 287 { name: "GPUComputePipeline", mac: true, aarch64: true }, 288 // IMPORTANT: Do not change this list without review from a DOM peer! 289 { name: "GPUDevice", earlyBetaOrEarlier: true }, 290 { name: "GPUDevice", windows: true }, 291 { name: "GPUDevice", mac: true, aarch64: true }, 292 // IMPORTANT: Do not change this list without review from a DOM peer! 293 { name: "GPUDeviceLostInfo", earlyBetaOrEarlier: true }, 294 { name: "GPUDeviceLostInfo", windows: true }, 295 { name: "GPUDeviceLostInfo", mac: true, aarch64: true }, 296 // IMPORTANT: Do not change this list without review from a DOM peer! 297 { name: "GPUError", earlyBetaOrEarlier: true }, 298 { name: "GPUError", windows: true }, 299 { name: "GPUError", mac: true, aarch64: true }, 300 // IMPORTANT: Do not change this list without review from a DOM peer! 301 { name: "GPUExternalTexture", earlyBetaOrEarlier: true }, 302 { name: "GPUExternalTexture", windows: true }, 303 { name: "GPUExternalTexture", mac: true, aarch64: true }, 304 // IMPORTANT: Do not change this list without review from a DOM peer! 305 { name: "GPUInternalError", earlyBetaOrEarlier: true }, 306 { name: "GPUInternalError", windows: true }, 307 { name: "GPUInternalError", mac: true, aarch64: true }, 308 // IMPORTANT: Do not change this list without review from a DOM peer! 309 { name: "GPUMapMode", earlyBetaOrEarlier: true }, 310 { name: "GPUMapMode", windows: true }, 311 { name: "GPUMapMode", mac: true, aarch64: true }, 312 // IMPORTANT: Do not change this list without review from a DOM peer! 313 { name: "GPUOutOfMemoryError", earlyBetaOrEarlier: true }, 314 { name: "GPUOutOfMemoryError", windows: true }, 315 { name: "GPUOutOfMemoryError", mac: true, aarch64: true }, 316 // IMPORTANT: Do not change this list without review from a DOM peer! 317 { name: "GPUPipelineError", earlyBetaOrEarlier: true }, 318 { name: "GPUPipelineError", windows: true }, 319 { name: "GPUPipelineError", mac: true, aarch64: true }, 320 // IMPORTANT: Do not change this list without review from a DOM peer! 321 { name: "GPUPipelineLayout", earlyBetaOrEarlier: true }, 322 { name: "GPUPipelineLayout", windows: true }, 323 { name: "GPUPipelineLayout", mac: true, aarch64: true }, 324 // IMPORTANT: Do not change this list without review from a DOM peer! 325 { name: "GPUQuerySet", earlyBetaOrEarlier: true }, 326 { name: "GPUQuerySet", windows: true }, 327 { name: "GPUQuerySet", mac: true, aarch64: true }, 328 // IMPORTANT: Do not change this list without review from a DOM peer! 329 { name: "GPUQueue", earlyBetaOrEarlier: true }, 330 { name: "GPUQueue", windows: true }, 331 { name: "GPUQueue", mac: true, aarch64: true }, 332 // IMPORTANT: Do not change this list without review from a DOM peer! 333 { name: "GPURenderBundle", earlyBetaOrEarlier: true }, 334 { name: "GPURenderBundle", windows: true }, 335 { name: "GPURenderBundle", mac: true, aarch64: true }, 336 // IMPORTANT: Do not change this list without review from a DOM peer! 337 { name: "GPURenderBundleEncoder", earlyBetaOrEarlier: true }, 338 { name: "GPURenderBundleEncoder", windows: true }, 339 { name: "GPURenderBundleEncoder", mac: true, aarch64: true }, 340 // IMPORTANT: Do not change this list without review from a DOM peer! 341 { name: "GPURenderPassEncoder", earlyBetaOrEarlier: true }, 342 { name: "GPURenderPassEncoder", windows: true }, 343 { name: "GPURenderPassEncoder", mac: true, aarch64: true }, 344 // IMPORTANT: Do not change this list without review from a DOM peer! 345 { name: "GPURenderPipeline", earlyBetaOrEarlier: true }, 346 { name: "GPURenderPipeline", windows: true }, 347 { name: "GPURenderPipeline", mac: true, aarch64: true }, 348 // IMPORTANT: Do not change this list without review from a DOM peer! 349 { name: "GPUSampler", earlyBetaOrEarlier: true }, 350 { name: "GPUSampler", windows: true }, 351 { name: "GPUSampler", mac: true, aarch64: true }, 352 // IMPORTANT: Do not change this list without review from a DOM peer! 353 { name: "GPUShaderModule", earlyBetaOrEarlier: true }, 354 { name: "GPUShaderModule", windows: true }, 355 { name: "GPUShaderModule", mac: true, aarch64: true }, 356 // IMPORTANT: Do not change this list without review from a DOM peer! 357 { name: "GPUShaderStage", earlyBetaOrEarlier: true }, 358 { name: "GPUShaderStage", windows: true }, 359 { name: "GPUShaderStage", mac: true, aarch64: true }, 360 // IMPORTANT: Do not change this list without review from a DOM peer! 361 { name: "GPUSupportedFeatures", earlyBetaOrEarlier: true }, 362 { name: "GPUSupportedFeatures", windows: true }, 363 { name: "GPUSupportedFeatures", mac: true, aarch64: true }, 364 // IMPORTANT: Do not change this list without review from a DOM peer! 365 { name: "GPUSupportedLimits", earlyBetaOrEarlier: true }, 366 { name: "GPUSupportedLimits", windows: true }, 367 { name: "GPUSupportedLimits", mac: true, aarch64: true }, 368 // IMPORTANT: Do not change this list without review from a DOM peer! 369 { name: "GPUTexture", earlyBetaOrEarlier: true }, 370 { name: "GPUTexture", windows: true }, 371 { name: "GPUTexture", mac: true, aarch64: true }, 372 // IMPORTANT: Do not change this list without review from a DOM peer! 373 { name: "GPUTextureUsage", earlyBetaOrEarlier: true }, 374 { name: "GPUTextureUsage", windows: true }, 375 { name: "GPUTextureUsage", mac: true, aarch64: true }, 376 // IMPORTANT: Do not change this list without review from a DOM peer! 377 { name: "GPUTextureView", earlyBetaOrEarlier: true }, 378 { name: "GPUTextureView", windows: true }, 379 { name: "GPUTextureView", mac: true, aarch64: true }, 380 // IMPORTANT: Do not change this list without review from a DOM peer! 381 { name: "GPUUncapturedErrorEvent", earlyBetaOrEarlier: true }, 382 { name: "GPUUncapturedErrorEvent", windows: true }, 383 { name: "GPUUncapturedErrorEvent", mac: true, aarch64: true }, 384 // IMPORTANT: Do not change this list without review from a DOM peer! 385 { name: "GPUValidationError", earlyBetaOrEarlier: true }, 386 { name: "GPUValidationError", windows: true }, 387 { name: "GPUValidationError", mac: true, aarch64: true }, 388 // IMPORTANT: Do not change this list without review from a DOM peer! 389 "Headers", 390 // IMPORTANT: Do not change this list without review from a DOM peer! 391 "IDBCursor", 392 // IMPORTANT: Do not change this list without review from a DOM peer! 393 "IDBCursorWithValue", 394 // IMPORTANT: Do not change this list without review from a DOM peer! 395 "IDBDatabase", 396 // IMPORTANT: Do not change this list without review from a DOM peer! 397 "IDBFactory", 398 // IMPORTANT: Do not change this list without review from a DOM peer! 399 "IDBIndex", 400 // IMPORTANT: Do not change this list without review from a DOM peer! 401 "IDBKeyRange", 402 // IMPORTANT: Do not change this list without review from a DOM peer! 403 "IDBObjectStore", 404 // IMPORTANT: Do not change this list without review from a DOM peer! 405 "IDBOpenDBRequest", 406 // IMPORTANT: Do not change this list without review from a DOM peer! 407 "IDBRequest", 408 // IMPORTANT: Do not change this list without review from a DOM peer! 409 "IDBTransaction", 410 // IMPORTANT: Do not change this list without review from a DOM peer! 411 "IDBVersionChangeEvent", 412 // IMPORTANT: Do not change this list without review from a DOM peer! 413 "ImageBitmap", 414 // IMPORTANT: Do not change this list without review from a DOM peer! 415 "ImageBitmapRenderingContext", 416 // IMPORTANT: Do not change this list without review from a DOM peer! 417 "ImageData", 418 // IMPORTANT: Do not change this list without review from a DOM peer! 419 "Lock", 420 // IMPORTANT: Do not change this list without review from a DOM peer! 421 "LockManager", 422 // IMPORTANT: Do not change this list without review from a DOM peer! 423 "MediaCapabilities", 424 // IMPORTANT: Do not change this list without review from a DOM peer! 425 "MessageChannel", 426 // IMPORTANT: Do not change this list without review from a DOM peer! 427 "MessageEvent", 428 // IMPORTANT: Do not change this list without review from a DOM peer! 429 "MessagePort", 430 // IMPORTANT: Do not change this list without review from a DOM peer! 431 "NavigationPreloadManager", 432 // IMPORTANT: Do not change this list without review from a DOM peer! 433 { name: "NetworkInformation", disabled: true }, 434 // IMPORTANT: Do not change this list without review from a DOM peer! 435 "Notification", 436 // IMPORTANT: Do not change this list without review from a DOM peer! 437 "NotificationEvent", 438 // IMPORTANT: Do not change this list without review from a DOM peer! 439 "OffscreenCanvas", 440 // IMPORTANT: Do not change this list without review from a DOM peer! 441 "OffscreenCanvasRenderingContext2D", 442 // IMPORTANT: Do not change this list without review from a DOM peer! 443 "Path2D", 444 // IMPORTANT: Do not change this list without review from a DOM peer! 445 "Performance", 446 // IMPORTANT: Do not change this list without review from a DOM peer! 447 "PerformanceEntry", 448 // IMPORTANT: Do not change this list without review from a DOM peer! 449 "PerformanceMark", 450 // IMPORTANT: Do not change this list without review from a DOM peer! 451 "PerformanceMeasure", 452 // IMPORTANT: Do not change this list without review from a DOM peer! 453 "PerformanceObserver", 454 // IMPORTANT: Do not change this list without review from a DOM peer! 455 "PerformanceObserverEntryList", 456 // IMPORTANT: Do not change this list without review from a DOM peer! 457 "PerformanceResourceTiming", 458 // IMPORTANT: Do not change this list without review from a DOM peer! 459 "PerformanceServerTiming", 460 // IMPORTANT: Do not change this list without review from a DOM peer! 461 "PermissionStatus", 462 // IMPORTANT: Do not change this list without review from a DOM peer! 463 "Permissions", 464 // IMPORTANT: Do not change this list without review from a DOM peer! 465 "ProgressEvent", 466 // IMPORTANT: Do not change this list without review from a DOM peer! 467 "PromiseRejectionEvent", 468 // IMPORTANT: Do not change this list without review from a DOM peer! 469 "PushEvent", 470 // IMPORTANT: Do not change this list without review from a DOM peer! 471 "PushManager", 472 // IMPORTANT: Do not change this list without review from a DOM peer! 473 "PushMessageData", 474 // IMPORTANT: Do not change this list without review from a DOM peer! 475 "PushSubscription", 476 // IMPORTANT: Do not change this list without review from a DOM peer! 477 "PushSubscriptionChangeEvent", 478 // IMPORTANT: Do not change this list without review from a DOM peer! 479 "PushSubscriptionOptions", 480 // IMPORTANT: Do not change this list without review from a DOM peer! 481 "ReadableByteStreamController", 482 // IMPORTANT: Do not change this list without review from a DOM peer! 483 "ReadableStream", 484 // IMPORTANT: Do not change this list without review from a DOM peer! 485 "ReadableStreamBYOBReader", 486 // IMPORTANT: Do not change this list without review from a DOM peer! 487 "ReadableStreamBYOBRequest", 488 // IMPORTANT: Do not change this list without review from a DOM peer! 489 "ReadableStreamDefaultController", 490 // IMPORTANT: Do not change this list without review from a DOM peer! 491 "ReadableStreamDefaultReader", 492 // IMPORTANT: Do not change this list without review from a DOM peer! 493 "Request", 494 // IMPORTANT: Do not change this list without review from a DOM peer! 495 "Response", 496 // IMPORTANT: Do not change this list without review from a DOM peer! 497 "Scheduler", 498 // IMPORTANT: Do not change this list without review from a DOM peer! 499 "ServiceWorker", 500 // IMPORTANT: Do not change this list without review from a DOM peer! 501 "ServiceWorkerContainer", 502 // IMPORTANT: Do not change this list without review from a DOM peer! 503 "ServiceWorkerGlobalScope", 504 // IMPORTANT: Do not change this list without review from a DOM peer! 505 "ServiceWorkerRegistration", 506 // IMPORTANT: Do not change this list without review from a DOM peer! 507 { name: "StorageManager", fennec: false }, 508 // IMPORTANT: Do not change this list without review from a DOM peer! 509 "SubtleCrypto", 510 // IMPORTANT: Do not change this list without review from a DOM peer! 511 "TaskController", 512 // IMPORTANT: Do not change this list without review from a DOM peer! 513 "TaskPriorityChangeEvent", 514 // IMPORTANT: Do not change this list without review from a DOM peer! 515 "TaskSignal", 516 // IMPORTANT: Do not change this list without review from a DOM peer! 517 "TextDecoder", 518 // IMPORTANT: Do not change this list without review from a DOM peer! 519 "TextDecoderStream", 520 // IMPORTANT: Do not change this list without review from a DOM peer! 521 "TextEncoder", 522 // IMPORTANT: Do not change this list without review from a DOM peer! 523 "TextEncoderStream", 524 // IMPORTANT: Do not change this list without review from a DOM peer! 525 "TextMetrics", 526 // IMPORTANT: Do not change this list without review from a DOM peer! 527 "TransformStream", 528 // IMPORTANT: Do not change this list without review from a DOM peer! 529 "TransformStreamDefaultController", 530 // IMPORTANT: Do not change this list without review from a DOM peer! 531 { name: "TrustedHTML", insecureContext: true }, 532 // IMPORTANT: Do not change this list without review from a DOM peer! 533 { name: "TrustedScript", insecureContext: true }, 534 // IMPORTANT: Do not change this list without review from a DOM peer! 535 { name: "TrustedScriptURL", insecureContext: true }, 536 // IMPORTANT: Do not change this list without review from a DOM peer! 537 { name: "TrustedTypePolicy", insecureContext: true }, 538 // IMPORTANT: Do not change this list without review from a DOM peer! 539 { name: "TrustedTypePolicyFactory", insecureContext: true }, 540 // IMPORTANT: Do not change this list without review from a DOM peer! 541 "URL", 542 // IMPORTANT: Do not change this list without review from a DOM peer! 543 "URLPattern", 544 // IMPORTANT: Do not change this list without review from a DOM peer! 545 "URLSearchParams", 546 // IMPORTANT: Do not change this list without review from a DOM peer! 547 { name: "WGSLLanguageFeatures", earlyBetaOrEarlier: true }, 548 { name: "WGSLLanguageFeatures", windows: true }, 549 { name: "WGSLLanguageFeatures", mac: true, aarch64: true }, 550 // IMPORTANT: Do not change this list without review from a DOM peer! 551 "WebGL2RenderingContext", 552 // IMPORTANT: Do not change this list without review from a DOM peer! 553 "WebGLActiveInfo", 554 // IMPORTANT: Do not change this list without review from a DOM peer! 555 "WebGLBuffer", 556 // IMPORTANT: Do not change this list without review from a DOM peer! 557 "WebGLContextEvent", 558 // IMPORTANT: Do not change this list without review from a DOM peer! 559 "WebGLFramebuffer", 560 // IMPORTANT: Do not change this list without review from a DOM peer! 561 "WebGLProgram", 562 // IMPORTANT: Do not change this list without review from a DOM peer! 563 "WebGLQuery", 564 // IMPORTANT: Do not change this list without review from a DOM peer! 565 "WebGLRenderbuffer", 566 // IMPORTANT: Do not change this list without review from a DOM peer! 567 "WebGLRenderingContext", 568 // IMPORTANT: Do not change this list without review from a DOM peer! 569 "WebGLSampler", 570 // IMPORTANT: Do not change this list without review from a DOM peer! 571 "WebGLShader", 572 // IMPORTANT: Do not change this list without review from a DOM peer! 573 "WebGLShaderPrecisionFormat", 574 // IMPORTANT: Do not change this list without review from a DOM peer! 575 "WebGLSync", 576 // IMPORTANT: Do not change this list without review from a DOM peer! 577 "WebGLTexture", 578 // IMPORTANT: Do not change this list without review from a DOM peer! 579 "WebGLTransformFeedback", 580 // IMPORTANT: Do not change this list without review from a DOM peer! 581 "WebGLUniformLocation", 582 // IMPORTANT: Do not change this list without review from a DOM peer! 583 "WebGLVertexArrayObject", 584 // IMPORTANT: Do not change this list without review from a DOM peer! 585 "WebSocket", 586 // IMPORTANT: Do not change this list without review from a DOM peer! 587 "WebTransport", 588 // IMPORTANT: Do not change this list without review from a DOM peer! 589 "WebTransportBidirectionalStream", 590 // IMPORTANT: Do not change this list without review from a DOM peer! 591 "WebTransportDatagramDuplexStream", 592 // IMPORTANT: Do not change this list without review from a DOM peer! 593 "WebTransportError", 594 // IMPORTANT: Do not change this list without review from a DOM peer! 595 "WebTransportReceiveStream", 596 // IMPORTANT: Do not change this list without review from a DOM peer! 597 "WebTransportSendStream", 598 // IMPORTANT: Do not change this list without review from a DOM peer! 599 "WindowClient", 600 // IMPORTANT: Do not change this list without review from a DOM peer! 601 "WorkerGlobalScope", 602 // IMPORTANT: Do not change this list without review from a DOM peer! 603 "WorkerLocation", 604 // IMPORTANT: Do not change this list without review from a DOM peer! 605 "WorkerNavigator", 606 // IMPORTANT: Do not change this list without review from a DOM peer! 607 "WritableStream", 608 // IMPORTANT: Do not change this list without review from a DOM peer! 609 "WritableStreamDefaultController", 610 // IMPORTANT: Do not change this list without review from a DOM peer! 611 "WritableStreamDefaultWriter", 612 // IMPORTANT: Do not change this list without review from a DOM peer! 613 "clients", 614 // IMPORTANT: Do not change this list without review from a DOM peer! 615 "console", 616 // IMPORTANT: Do not change this list without review from a DOM peer! 617 "cookieStore", 618 // IMPORTANT: Do not change this list without review from a DOM peer! 619 "onactivate", 620 // IMPORTANT: Do not change this list without review from a DOM peer! 621 "oncookiechange", 622 // IMPORTANT: Do not change this list without review from a DOM peer! 623 "onfetch", 624 // IMPORTANT: Do not change this list without review from a DOM peer! 625 "oninstall", 626 // IMPORTANT: Do not change this list without review from a DOM peer! 627 "onmessage", 628 // IMPORTANT: Do not change this list without review from a DOM peer! 629 "onmessageerror", 630 // IMPORTANT: Do not change this list without review from a DOM peer! 631 "onnotificationclick", 632 // IMPORTANT: Do not change this list without review from a DOM peer! 633 "onnotificationclose", 634 // IMPORTANT: Do not change this list without review from a DOM peer! 635 "onpush", 636 // IMPORTANT: Do not change this list without review from a DOM peer! 637 "onpushsubscriptionchange", 638 // IMPORTANT: Do not change this list without review from a DOM peer! 639 "registration", 640 // IMPORTANT: Do not change this list without review from a DOM peer! 641 "skipWaiting", 642 // IMPORTANT: Do not change this list without review from a DOM peer! 643 ]; 644 // IMPORTANT: Do not change the list above without review from a DOM peer! 645 646 // List of functions defined on the global by the test harness or this test 647 // file. 648 let testFunctions = [ 649 "ok", 650 "is", 651 "workerTestArrayEquals", 652 "workerTestDone", 653 "workerTestGetHelperData", 654 "workerTestGetStorageManager", 655 "entryDisabled", 656 "createInterfaceMap", 657 "runTest", 658 ]; 659 660 workerTestGetHelperData(function (data) { 661 runTest("self", self, { 662 data, 663 testFunctions, 664 interfaceGroups: [ecmaGlobals, interfaceNamesInGlobalScope], 665 }); 666 if (WebAssembly && !entryDisabled(wasmGlobalEntry, data)) { 667 runTest("WebAssembly", WebAssembly, { 668 data, 669 interfaceGroups: [wasmGlobalInterfaces], 670 }); 671 } 672 workerTestDone(); 673 });